X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2FInsetQuotes.h;h=f9dd5aeafa789cd98cdbc77db267c0bb5c13b39e;hb=239b9919ffe28338d789e6dc9122228f77ab77a7;hp=57f3fef1c2e1e229ab552d136a64b3b925b4bc61;hpb=1ed70d10fdfa64186c1b640bc83158d94fd1f2f3;p=lyx.git diff --git a/src/insets/InsetQuotes.h b/src/insets/InsetQuotes.h index 57f3fef1c2..f9dd5aeafa 100644 --- a/src/insets/InsetQuotes.h +++ b/src/insets/InsetQuotes.h @@ -5,6 +5,7 @@ * Licence details can be found in the file COPYING. * * \author Jean-Marc Lasgouttes + * \author Jürgen Spitzmüller * * Full author contact details are available in file CREDITS. */ @@ -22,8 +23,7 @@ namespace lyx { /** Quotes. Used for the various quotes. German, English, French, all either double or single **/ -class InsetQuotes : public Inset -{ +class InsetQuotesParams { public: /// enum QuoteStyle { @@ -36,27 +36,83 @@ public: /// PolishQuotes, /// - FrenchQuotes, + SwissQuotes, /// DanishQuotes, /// - PlainQuotes + PlainQuotes, + /// + BritishQuotes, + /// + SwedishGQuotes, + /// + FrenchQuotes, + /// + FrenchINQuotes, + /// + RussianQuotes, + /// + CJKQuotes, + /// + CJKAngleQuotes, + /// + DynamicQuotes }; /// enum QuoteSide { /// - LeftQuote, + OpeningQuote, /// - RightQuote + ClosingQuote }; /// enum QuoteLevel { /// - SingleQuotes, + SecondaryQuotes, /// - DoubleQuotes + PrimaryQuotes }; + /// Returns the unicode character of a given quote + char_type getQuoteChar(QuoteStyle const &, QuoteLevel const &, + QuoteSide const &) const; + /// Returns a map of quotation marks + std::map getTypes() const; + /// + docstring getLaTeXQuote(char_type c, std::string const &) const; + /// + docstring getHTMLQuote(char_type c) const; + /// Returns a descriptive label of a style suitable for dialog and menu + docstring const getGuiLabel(QuoteStyle const & qs, + bool langdef = false); + /// Returns a descriptive label of a given char + docstring const getShortGuiLabel(docstring const string); + /// + int stylescount() const; + /// Returns the matching style shortcut char + char getStyleChar(QuoteStyle const & style) const; + /// Returns the quote style from the shortcut string + QuoteStyle getQuoteStyle(std::string const & s, + bool const allow_wildcards = false, + QuoteStyle fallback = EnglishQuotes); + /// Returns the quote sind from the shortcut string + QuoteSide getQuoteSide(std::string const & s, + bool const allow_wildcards = false, + QuoteSide fallback = OpeningQuote); + /// Returns the quote level from the shortcut string + QuoteLevel getQuoteLevel(std::string const & s, + bool const allow_wildcards = false, + QuoteLevel fallback = PrimaryQuotes); +}; +/// +extern InsetQuotesParams quoteparams; + +/** Quotes. + Used for the various quotes. German, English, French, all either + double or single **/ +class InsetQuotes : public Inset +{ +public: /** The constructor works like this: \begin{itemize} \item fls <- french single quote left @@ -66,7 +122,7 @@ public: */ explicit InsetQuotes(Buffer * buf, std::string const & str = "eld"); /// Direct access to inner/outer quotation marks - InsetQuotes(Buffer * buf, char_type c, QuoteLevel level, + InsetQuotes(Buffer * buf, char_type c, InsetQuotesParams::QuoteLevel level, std::string const & side = std::string(), std::string const & style = std::string()); /// @@ -107,11 +163,9 @@ public: InsetCode lyxCode() const { return QUOTE_CODE; } /// should this inset be handled like a normal character bool isChar() const { return true; } - + /// Returns the current quote type std::string getType() const; - /// Returns a map of quotation marks - std::map getTypes() const; private: /// @@ -127,20 +181,26 @@ private: /// docstring getQuoteEntity() const; /// - QuoteStyle getStyle(std::string const &); + InsetQuotesParams::QuoteStyle getStyle(std::string const &); /// - QuoteStyle style_; + InsetQuotesParams::QuoteStyle style_; + /// + InsetQuotesParams::QuoteSide side_; /// - QuoteSide side_; + InsetQuotesParams::QuoteLevel level_; /// - QuoteLevel level_; + InsetQuotesParams::QuoteStyle global_style_; /// std::string fontenc_; /// Code of the contextual language std::string context_lang_; /// Is this in a pass-thru context? bool pass_thru_; + /// Do we use fontspec? + bool fontspec_; + /// + friend class InsetQuotesParams; protected: /// \name Protected functions inherited from Inset class