#include "Inset.h"
-#include "support/docstring.h"
+#include <map>
namespace lyx {
+///
+enum class QuoteStyle : int {
+ ///
+ English,
+ ///
+ Swedish,
+ ///
+ German,
+ ///
+ Polish,
+ ///
+ Swiss,
+ ///
+ Danish,
+ ///
+ Plain,
+ ///
+ British,
+ ///
+ SwedishG,
+ ///
+ French,
+ ///
+ FrenchIN,
+ ///
+ Russian,
+ ///
+ CJK,
+ ///
+ CJKAngle,
+ ///
+ Hungarian,
+ ///
+ Dynamic
+};
+
+///
+enum class QuoteSide : int {
+ ///
+ Opening,
+ ///
+ Closing
+};
+
+///
+enum class QuoteLevel : int {
+ ///
+ Secondary,
+ ///
+ Primary
+};
+
+
/** Quotes.
Used for the various quotes. German, English, French, all either
double or single **/
class InsetQuotesParams {
public:
- ///
- enum QuoteStyle {
- ///
- EnglishQuotes,
- ///
- SwedishQuotes,
- ///
- GermanQuotes,
- ///
- PolishQuotes,
- ///
- SwissQuotes,
- ///
- DanishQuotes,
- ///
- PlainQuotes,
- ///
- BritishQuotes,
- ///
- SwedishGQuotes,
- ///
- FrenchQuotes,
- ///
- FrenchINQuotes,
- ///
- RussianQuotes,
- ///
- CJKQuotes,
- ///
- CJKAngleQuotes,
- ///
- DynamicQuotes
- };
- ///
- enum QuoteSide {
- ///
- OpeningQuote,
- ///
- ClosingQuote
- };
- ///
- enum QuoteLevel {
- ///
- SecondaryQuotes,
- ///
- PrimaryQuotes
- };
/// Returns the unicode character of a given quote
char_type getQuoteChar(QuoteStyle const &, QuoteLevel const &,
QuoteSide const &, bool const rtl = false) const;
bool const rtl = false) const;
///
docstring getHTMLQuote(char_type c) const;
+ ///
+ docstring getXMLQuote(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);
+ bool langdef = false) const;
/// Returns a descriptive label of a given char
- docstring const getShortGuiLabel(docstring const & str);
+ docstring const getShortGuiLabel(docstring const & str) const;
///
int stylescount() const;
/// Returns the matching style shortcut char
/// Returns the quote style from the shortcut string
QuoteStyle getQuoteStyle(std::string const & s,
bool const allow_wildcards = false,
- QuoteStyle fallback = EnglishQuotes);
+ QuoteStyle fallback = QuoteStyle::English) const;
/// Returns the quote sind from the shortcut string
QuoteSide getQuoteSide(std::string const & s,
bool const allow_wildcards = false,
- QuoteSide fallback = OpeningQuote);
+ QuoteSide fallback = QuoteSide::Opening) const;
/// Returns the quote level from the shortcut string
QuoteLevel getQuoteLevel(std::string const & s,
bool const allow_wildcards = false,
- QuoteLevel fallback = PrimaryQuotes);
+ QuoteLevel fallback = QuoteLevel::Primary) const;
};
///
*/
explicit InsetQuotes(Buffer * buf, std::string const & str = "eld");
/// Direct access to inner/outer quotation marks
- InsetQuotes(Buffer * buf, char_type c, InsetQuotesParams::QuoteLevel level,
+ InsetQuotes(Buffer * buf, char_type c, QuoteLevel level,
std::string const & side = std::string(),
std::string const & style = std::string());
///
- docstring layoutName() const;
+ docstring layoutName() const override;
///
- void metrics(MetricsInfo &, Dimension &) const;
+ void metrics(MetricsInfo &, Dimension &) const override;
///
- void draw(PainterInfo & pi, int x, int y) const;
+ void draw(PainterInfo & pi, int x, int y) const override;
///
- void write(std::ostream &) const;
+ void write(std::ostream &) const override;
///
- void read(Lexer & lex);
+ void read(Lexer & lex) override;
///
- bool getStatus(Cursor &, FuncRequest const &, FuncStatus &) const;
+ bool getStatus(Cursor &, FuncRequest const &, FuncStatus &) const override;
///
- void latex(otexstream &, OutputParams const &) const;
+ void latex(otexstream &, OutputParams const &) const override;
///
int plaintext(odocstringstream & ods, OutputParams const & op,
- size_t max_length = INT_MAX) const;
+ size_t max_length = INT_MAX) const override;
///
- int docbook(odocstream &, OutputParams const &) const;
+ void docbook(XMLStream &, OutputParams const &) const override;
///
- docstring xhtml(XHTMLStream &, OutputParams const &) const;
+ docstring xhtml(XMLStream &, OutputParams const &) const override;
///
- void toString(odocstream &) const;
+ void toString(odocstream &) const override;
///
- void forOutliner(docstring &, size_t const maxlen, bool const) const;
+ void forOutliner(docstring &, size_t const maxlen, bool const) const override;
/// Update the contextual information of this inset
- void updateBuffer(ParIterator const &, UpdateType, bool const deleted = false);
+ void updateBuffer(ParIterator const &, UpdateType, bool const deleted = false) override;
///
- void validate(LaTeXFeatures &) const;
+ void validate(LaTeXFeatures &) const override;
///
- std::string contextMenuName() const;
+ std::string contextMenuName() const override;
///
- InsetCode lyxCode() const { return QUOTE_CODE; }
+ InsetCode lyxCode() const override { return QUOTE_CODE; }
/// should this inset be handled like a normal character
- bool isChar() const { return true; }
+ bool isChar() const override { return true; }
/// Returns the current quote type
std::string getType() const;
private:
///
- Inset * clone() const { return new InsetQuotes(*this); }
+ Inset * clone() const override { return new InsetQuotes(*this); }
/// Decide whether we need left or right quotation marks
void setSide(char_type c);
///
docstring displayString() const;
///
- docstring getQuoteEntity() const;
+ docstring getQuoteEntity(bool isHTML) const;
///
- InsetQuotesParams::QuoteStyle getStyle(std::string const &);
+ QuoteStyle getStyle(std::string const &);
///
- InsetQuotesParams::QuoteStyle style_;
+ QuoteStyle style_ = QuoteStyle::English;
///
- InsetQuotesParams::QuoteSide side_;
+ QuoteSide side_ = QuoteSide::Opening;
///
- InsetQuotesParams::QuoteLevel level_;
+ QuoteLevel level_ = QuoteLevel::Primary;
///
- InsetQuotesParams::QuoteStyle global_style_;
- /// Current font encoding
- std::string fontenc_;
+ QuoteStyle global_style_ = QuoteStyle::English;
/// Code of the contextual language
std::string context_lang_;
/// Is this in a pass-thru context?
- bool pass_thru_;
+ bool pass_thru_ = false;
/// Do we use fontspec?
- bool fontspec_;
+ bool fontspec_ = false;
/// Do we have an internal font encoding?
- bool internal_fontenc_;
+ bool internal_fontenc_ = false;
/// Are we writing RTL?
- bool rtl_;
+ bool rtl_ = false;
///
friend class InsetQuotesParams;
/// \name Protected functions inherited from Inset class
//@{
///
- void doDispatch(Cursor & cur, FuncRequest & cmd);
+ void doDispatch(Cursor & cur, FuncRequest & cmd) override;
//@}
};