namespace lyx {
-class Lexer;
+namespace support { class Lexer; }
///
class FontInfo
FontSeries series,
FontShape shape,
FontSize size,
+ MathStyle style,
ColorCode color,
ColorCode background,
FontState emph,
FontState underbar,
FontState strikeout,
+ FontState xout,
FontState uuline,
FontState uwave,
FontState noun,
- FontState number)
+ FontState number,
+ FontState nospellcheck)
: family_(family), series_(series), shape_(shape), size_(size),
- style_(LM_ST_TEXT), color_(color), background_(background), emph_(emph),
- underbar_(underbar), strikeout_(strikeout), uuline_(uuline),
- uwave_(uwave), noun_(noun), number_(number)
+ style_(style), color_(color), background_(background), emph_(emph),
+ underbar_(underbar), strikeout_(strikeout), xout_(xout), uuline_(uuline),
+ uwave_(uwave), noun_(noun), number_(number), nospellcheck_(nospellcheck)
{}
/// Decreases font size by one
void setUnderbar(FontState u) { underbar_ = u; }
FontState strikeout() const { return strikeout_; }
void setStrikeout(FontState s) { strikeout_ = s; }
+ FontState xout() const { return xout_; }
+ void setXout(FontState s) { xout_ = s; }
FontState uuline() const { return uuline_; }
void setUuline(FontState s) { uuline_ = s; }
FontState uwave() const { return uwave_; }
void setColor(ColorCode c) { color_ = c; }
ColorCode background() const { return background_; }
void setBackground(ColorCode b) { background_ = b; }
+ FontState nospellcheck() const { return nospellcheck_; }
+ void setNoSpellcheck(FontState n) { nospellcheck_ = n; }
//@}
///
/// Is a given font fully resolved?
bool resolved() const;
- /// The real color of the font. This can be the color that is
+ /// The real color of the font. This can be the color that is
/// set for painting, the color of the font or a default color.
Color realColor() const;
/// Sets the color which is used during painting
if (noun_ == FONT_ON)
return SMALLCAPS_SHAPE;
if (emph_ == FONT_ON)
- return (shape_ == ITALIC_SHAPE) ? UP_SHAPE : ITALIC_SHAPE;
+ return (shape_ == ITALIC_SHAPE || shape_ == SLANTED_SHAPE)
+ ? UP_SHAPE : ITALIC_SHAPE;
return shape_;
}
/// \param realize the \param font against the current FontInfo.
Changer change(FontInfo font, bool realize = false);
+ /// Build GUI description of font state
+ docstring const stateText(bool const terse = false) const;
+
private:
friend bool operator==(FontInfo const & lhs, FontInfo const & rhs);
///
FontState strikeout_;
///
+ FontState xout_;
+ ///
FontState uuline_;
///
FontState uwave_;
FontState noun_;
///
FontState number_;
+ ///
+ FontState nospellcheck_;
};
&& lhs.series_ == rhs.series_
&& lhs.shape_ == rhs.shape_
&& lhs.size_ == rhs.size_
+ && lhs.style_ == rhs.style_
&& lhs.color_ == rhs.color_
&& lhs.background_ == rhs.background_
&& lhs.emph_ == rhs.emph_
&& lhs.underbar_ == rhs.underbar_
&& lhs.strikeout_ == rhs.strikeout_
+ && lhs.xout_ == rhs.xout_
&& lhs.uuline_ == rhs.uuline_
&& lhs.uwave_ == rhs.uwave_
&& lhs.noun_ == rhs.noun_
- && lhs.number_ == rhs.number_;
+ && lhs.number_ == rhs.number_
+ && lhs.nospellcheck_ == rhs.nospellcheck_;
}
FontState setLyXMisc(std::string const &);
/// Read a font specification from Lexer. Used for layout files.
-FontInfo lyxRead(Lexer &, FontInfo const & fi = sane_font);
+FontInfo lyxRead(support::Lexer &, FontInfo const & fi = sane_font);
/// Write a font specification. Used for layout files.
void lyxWrite(std::ostream &, FontInfo const &, std::string const &, int);