X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FFontInfo.h;h=370610c84e71c1395a37770a509e923d14d6f0c1;hb=02847641a8b97a57d1866120bb446427e0bda7a4;hp=3833b7c87b29077aba23d133b1a8bd2faafa8ac1;hpb=6fde8f806778ab5bcc146f17169119af516a97cd;p=lyx.git diff --git a/src/FontInfo.h b/src/FontInfo.h index 3833b7c87b..370610c84e 100644 --- a/src/FontInfo.h +++ b/src/FontInfo.h @@ -15,16 +15,18 @@ #ifndef FONT_PROPERTIES_H #define FONT_PROPERTIES_H -#ifdef TEX2LYX -#include "tex2lyx/Font.h" -#else - #include "Color.h" #include "ColorCode.h" #include "FontEnums.h" +#include "support/Changer.h" +#include "support/strfwd.h" + + namespace lyx { +class Lexer; + /// class FontInfo { @@ -57,8 +59,8 @@ public: /// Increases font size by one FontInfo & incSize(); - /// Accessor methods. - ///@{ + /// \name Accessor methods + //@{ FontFamily family() const { return family_; } void setFamily(FontFamily f) { family_ = f; } FontSeries series() const { return series_; } @@ -85,7 +87,7 @@ public: void setColor(ColorCode c) { color_ = c; } ColorCode background() const { return background_; } void setBackground(ColorCode b) { background_ = b; } - ///@} + //@} /// void update(FontInfo const & newfont, bool toggleall); @@ -105,6 +107,9 @@ public: /// Sets the color which is used during painting void setPaintColor(Color c) { paint_color_ = c; } + /// + docstring asCSS() const; + /// Converts logical attributes to concrete shape attribute /// Try hard to inline this as it shows up with 4.6 % in the profiler. FontShape realShape() const @@ -112,7 +117,7 @@ public: if (noun_ == FONT_ON) return SMALLCAPS_SHAPE; if (emph_ == FONT_ON) - return (shape_ == UP_SHAPE) ? ITALIC_SHAPE : UP_SHAPE; + return (shape_ == ITALIC_SHAPE) ? UP_SHAPE : ITALIC_SHAPE; return shape_; } @@ -125,6 +130,7 @@ public: case CMEX_FAMILY: case MSA_FAMILY: case MSB_FAMILY: + case STMARY_FAMILY: case WASY_FAMILY: case ESINT_FAMILY: return true; @@ -133,6 +139,14 @@ public: } } + /// Temporarily replace the color with \param color. + Changer changeColor(ColorCode const color, bool cond = true); + /// Temporarily replace the shape with \param shape. + Changer changeShape(FontShape const shape, bool cond = true); + /// Temporarily replace the FontInfo with \param font, and optionally + /// \param realize the \param font against the current FontInfo. + Changer change(FontInfo font, bool realize = false, bool cond = true); + private: friend bool operator==(FontInfo const & lhs, FontInfo const & rhs); @@ -197,7 +211,30 @@ extern FontInfo const inherit_font; /// All ignore font. extern FontInfo const ignore_font; +/// Set family after LyX text format +void setLyXFamily(std::string const &, FontInfo &); + +/// Set series after LyX text format +void setLyXSeries(std::string const &, FontInfo &); + +/// Set shape after LyX text format +void setLyXShape(std::string const &, FontInfo &); + +/// Set size after LyX text format +void setLyXSize(std::string const &, FontInfo &); + +/// Sets color after LyX text format +void setLyXColor(std::string const &, FontInfo &); + +/// Returns misc flag after LyX text format +FontState setLyXMisc(std::string const &); + +/// Read a font specification from Lexer. Used for layout files. +FontInfo lyxRead(Lexer &, FontInfo const & fi = sane_font); + +/// Write a font specification. Used for layout files. +void lyxWrite(std::ostream &, FontInfo const &, std::string const &, int); + } // namespace lyx -#endif // TEX2LYX_FONT_H #endif