X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetLine.h;h=f518297445dd1b70d0145246c1a215fe1dc15b24;hb=62af7ee772f16f154225d2d0b65d77f4376b6001;hp=c8af93291b8f839e550f28a71ea0ea7157d87ae5;hpb=1becd75946b6cc36735bc51c0a7f8603c075c7ce;p=lyx.git diff --git a/src/insets/InsetLine.h b/src/insets/InsetLine.h index c8af93291b..f518297445 100644 --- a/src/insets/InsetLine.h +++ b/src/insets/InsetLine.h @@ -4,7 +4,9 @@ * This file is part of LyX, the document processor. * Licence details can be found in the file COPYING. * - * \author André Pönitz + * \author Abdelrazak Younes + * \author André Pönitz + * \author Uwe Stöhr * * Full author contact details are available in file CREDITS. */ @@ -13,39 +15,53 @@ #define INSET_LINE_H -#include "Inset.h" +#include "InsetCommand.h" namespace lyx { -class InsetLine : public Inset { +class LaTeXFeatures; + +class InsetLine : public InsetCommand +{ public: + InsetLine(Buffer * buf, InsetCommandParams const &); - InsetLine() {} + /// InsetCommand inherited methods. + //@{ + docstring screenLabel() const; + static ParamInfo const & findInfo(std::string const &); + static std::string defaultCommand() { return "rule"; } + static bool isCompatibleCommand(std::string const & s) + { return s == "rule"; } + //@} - InsetCode lyxCode() const { return LINE_CODE; } +private: + /// Inset inherited methods. + //@{ + InsetCode lyxCode() const { return LINE_CODE; } + int docbook(odocstream &, OutputParams const &) const; + /// Does nothing at the moment. + docstring xhtml(XHTMLStream &, OutputParams const &) const; + bool hasSettings() const { return true; } void metrics(MetricsInfo &, Dimension &) const; - void draw(PainterInfo & pi, int x, int y) const; - - int latex(odocstream &, OutputParams const &) const; - - int plaintext(odocstream &, OutputParams const &) const; - - int docbook(odocstream &, OutputParams const &) const; - - void read(Lexer & lex); - - void write(std::ostream & os) const; - /// We don't need \begin_inset and \end_inset - bool directWrite() const { return true; } - - DisplayType display() const { return AlignCenter; } - /// - void validate(LaTeXFeatures & features) const; -private: + void latex(otexstream &, OutputParams const &) const; + int plaintext(odocstringstream & ods, OutputParams const & op, + size_t max_length = INT_MAX) const; + void doDispatch(Cursor & cur, FuncRequest & cmd); + bool getStatus(Cursor & cur, FuncRequest const & cmd, FuncStatus &) const; Inset * clone() const { return new InsetLine(*this); } + //@} + + /// cached line height and offset. + /// These value are independent of the BufferView size and thus + /// can be shared between views. + //@{ + mutable int height_; + mutable int offset_; + //@} };