]> git.lyx.org Git - lyx.git/blobdiff - src/insets/InsetQuotes.h
#5502 add binding for full screen toggle on mac
[lyx.git] / src / insets / InsetQuotes.h
index a8b1a17fa6c6ce8fc69ed27828dc0037e4885640..0e4f46cbacc56614012099b8f9050ffc807f838d 100644 (file)
 #ifndef INSET_QUOTES_H
 #define INSET_QUOTES_H
 
-
 #include "Inset.h"
 
-#include "support/types.h"
+#include "support/docstring.h"
 
 
 namespace lyx {
 
-class BufferParams;
-class Language;
-class LaTeXFeatures;
-
-
 /** Quotes.
   Used for the various quotes. German, English, French, all either
   double or single **/
-class InsetQuotes : public InsetOld {
+class InsetQuotes : public Inset
+{
 public:
        ///
-       enum quote_language {
+       enum QuoteLanguage {
                ///
-               EnglishQ,
+               EnglishQuotes,
                ///
-               SwedishQ,
+               SwedishQuotes,
                ///
-               GermanQ,
+               GermanQuotes,
                ///
-               PolishQ,
+               PolishQuotes,
                ///
-               FrenchQ,
+               FrenchQuotes,
                ///
-               DanishQ
+               DanishQuotes
        };
        ///
-       enum quote_side {
+       enum QuoteSide {
                ///
-               LeftQ,
+               LeftQuote,
                ///
-               RightQ
+               RightQuote
        };
        ///
-       enum quote_times {
+       enum QuoteTimes {
                ///
-               SingleQ,
+               SingleQuotes,
                ///
-               DoubleQ
+               DoubleQuotes
        };
 
        /** The constructor works like this:
@@ -67,61 +62,60 @@ public:
            \item etc.
          \end{itemize}
          */
-       explicit
-       InsetQuotes(std::string const & str = "eld");
-       /// Create the right quote inset after character c
-       InsetQuotes(char_type c, BufferParams const & params);
+       explicit InsetQuotes(Buffer * buf, std::string const & str = "eld");
        /// Direct access to inner/outer quotation marks
-       InsetQuotes(char_type c, quote_language l, quote_times t);
+       InsetQuotes(Buffer * buf, char_type c, QuoteTimes t);
        ///
-       bool metrics(MetricsInfo &, Dimension &) const;
+       docstring layoutName() const;
+       ///
+       void metrics(MetricsInfo &, Dimension &) const;
        ///
        void draw(PainterInfo & pi, int x, int y) const;
-#if 0
        ///
-       LyXFont const convertFont(LyXFont const & font) const;
-#endif
+       void write(std::ostream &) const;
        ///
-       void write(Buffer const &, std::ostream &) const;
+       void read(Lexer & lex);
        ///
-       void read(Buffer const &, Lexer & lex);
+       void latex(otexstream &, OutputParams const &) const;
        ///
-       int latex(Buffer const &, odocstream &, OutputParams const &) const;
+       int plaintext(odocstringstream & ods, OutputParams const & op,
+                     size_t max_length = INT_MAX) const;
        ///
-       int plaintext(Buffer const &, odocstream &, OutputParams const &) const;
+       int docbook(odocstream &, OutputParams const &) const;
        ///
-       int docbook(Buffer const &, odocstream &, OutputParams const &) const;
+       docstring xhtml(XHTMLStream &, OutputParams const &) const;
 
-       /// the string that is passed to the TOC
-       virtual void textString(Buffer const &, odocstream &) const;
+       /// 
+       void toString(odocstream &) const;
+       ///
+       void forOutliner(docstring &, size_t maxlen) const;
 
        ///
        void validate(LaTeXFeatures &) const;
        ///
-       InsetBase::Code lyxCode() const;
-       // should this inset be handled like a normal character
+       InsetCode lyxCode() const { return QUOTE_CODE; }
+       /// should this inset be handled like a normal character
        bool isChar() const { return true; }
 
 private:
-       virtual std::auto_ptr<InsetBase> doClone() const;
+       ///
+       Inset * clone() const { return new InsetQuotes(*this); }
 
+       /// Decide whether we need left or right quotation marks
+       void setSide(char_type c);
        ///
-       quote_language language_;
+       void parseString(std::string const &);
        ///
-       quote_side side_;
+       docstring displayString() const;
        ///
-       quote_times times_;
+       docstring getQuoteEntity() const;
 
-       /** The parameters of the constructor are the language, the
-           side and the multiplicity of the quote.
-        */
-       InsetQuotes(quote_language l, quote_side s, quote_times t);
-       /// Decide whether we need left or right quotation marks
-       void getPosition(char_type c);
        ///
-       void parseString(std::string const &);
+       QuoteLanguage language_;
+       ///
+       QuoteSide side_;
        ///
-       lyx::docstring const dispString(Language const *) const;
+       QuoteTimes times_;
 };
 
 } // namespace lyx