]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetLine.h
Enable InsetQuote in verbatim and Hebrew
[lyx.git] / src / insets / InsetLine.h
index 77123ac0492696c91f9b94dc4a516be3f2a0437a..f518297445dd1b70d0145246c1a215fe1dc15b24 100644 (file)
@@ -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.
  */
 #define INSET_LINE_H
 
 
-#include "Inset.h"
+#include "InsetCommand.h"
 
 
 namespace lyx {
 
-class InsetLine : public Inset {
-public:
+class LaTeXFeatures;
 
-       InsetLine() {}
+class InsetLine : public InsetCommand
+{
+public:
+       InsetLine(Buffer * buf, InsetCommandParams const &);
 
-       Inset::Code lyxCode() const { return Inset::LINE_CODE; }
+       /// 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"; }
+       //@}
 
-       bool metrics(MetricsInfo &, Dimension &) const;
+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(Buffer const &, odocstream &,
-                 OutputParams const &) const;
-
-       int plaintext(Buffer const &, odocstream &,
-                     OutputParams const &) const;
-
-       int docbook(Buffer const &, odocstream &,
-                   OutputParams const &) const;
-
-       void read(Buffer const &, Lexer & lex);
-
-       void write(Buffer const & buf, std::ostream & os) const;
-       /// We don't need \begin_inset and \end_inset
-       bool directWrite() const { return true; }
-
-       bool display() const { return true; }
-       ///
-       void validate(LaTeXFeatures & features) const;
-private:
-       virtual std::auto_ptr<Inset> doClone() const
-       {
-               return std::auto_ptr<Inset>(new InsetLine);
-       }
+       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_;
+       //@}
 };