X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Flyxfont.h;h=ad9d3f276c8dfb814f9348d4124a653a2a0c0a69;hb=98c966c64594611e469313314abd1e59524adb4a;hp=6a716b88c15c2669ad116ebf1caab7067ead81ce;hpb=83acbbd5237373926c629855379e1df9a04209b2;p=lyx.git diff --git a/src/lyxfont.h b/src/lyxfont.h index 6a716b88c1..ad9d3f276c 100644 --- a/src/lyxfont.h +++ b/src/lyxfont.h @@ -1,11 +1,11 @@ // -*- C++ -*- /* This file is part of * ====================================================== - * + * * LyX, The Document Processor - * + * * Copyright 1995 Matthias Ettrich - * Copyright 1995-2001 The LyX Team. + * Copyright 1995-2001 The LyX Team. * * ====================================================== */ @@ -20,10 +20,10 @@ #include "LString.h" #include "LColor.h" -#include "language.h" class LyXLex; class BufferParams; +class Language; /// @@ -45,9 +45,25 @@ public: /// SYMBOL_FAMILY, /// + CMR_FAMILY, + /// + CMSY_FAMILY, + /// + CMM_FAMILY, + /// + CMEX_FAMILY, + /// + MSA_FAMILY, + /// + MSB_FAMILY, + /// + EUFRAK_FAMILY, + /// INHERIT_FAMILY, /// - IGNORE_FAMILY + IGNORE_FAMILY, + /// + NUM_FAMILIES = INHERIT_FAMILY }; /// @@ -109,7 +125,7 @@ public: /// IGNORE_SIZE }; - + /// Used for emph, underbar, noun and latex toggles enum FONT_MISC_STATE { /// @@ -161,33 +177,30 @@ public: /// Decreases font size by one LyXFont & decSize(); - + /// Increases font size by one LyXFont & incSize(); - + /// FONT_FAMILY family() const; - + /// FONT_SERIES series() const; - + /// FONT_SHAPE shape() const; - + /// FONT_SIZE size() const; - + /// FONT_MISC_STATE emph() const; - + /// FONT_MISC_STATE underbar() const; - - /// - FONT_MISC_STATE noun() const; /// - FONT_MISC_STATE latex() const; + FONT_MISC_STATE noun() const; /// FONT_MISC_STATE number() const; @@ -195,7 +208,7 @@ public: /// LColor::color color() const; - /// + /// Language const * language() const; /// @@ -203,7 +216,10 @@ public: /// bool isVisibleRightToLeft() const; - + + /// + bool isSymbolFont() const; + /// LyXFont & setFamily(LyXFont::FONT_FAMILY f); /// @@ -219,26 +235,24 @@ public: /// LyXFont & setNoun(LyXFont::FONT_MISC_STATE n); /// - LyXFont & setLatex(LyXFont::FONT_MISC_STATE l); - /// LyXFont & setNumber(LyXFont::FONT_MISC_STATE n); /// LyXFont & setColor(LColor::color c); - /// + /// LyXFont & setLanguage(Language const * l); /// Set family after LyX text format LyXFont & setLyXFamily(string const &); - + /// Set series after LyX text format LyXFont & setLyXSeries(string const &); - + /// Set shape after LyX text format LyXFont & setLyXShape(string const &); - + /// Set size after LyX text format LyXFont & setLyXSize(string const &); - + /// Returns misc flag after LyX text format LyXFont::FONT_MISC_STATE setLyXMisc(string const &); @@ -247,7 +261,7 @@ public: /// Returns size of font in LaTeX text notation string const latexSize() const; - + /** Updates font settings according to request. If an attribute is IGNORE, the attribute is left as it is. When toggleall = true, all properties that matches the font in use @@ -257,25 +271,33 @@ public: a INHERIT_FAMILY was asked for. This is necessary for the toggle-user-defined-style button on the toolbar. */ - void update(LyXFont const & newfont, + void update(LyXFont const & newfont, Language const * default_lang, bool toggleall = false); - + /** Reduce font to fall back to template where possible. Equal fields are reduced to INHERIT */ void reduce(LyXFont const & tmplt); - + /// Realize font from a template (INHERIT are realized) +#ifndef INHERIT_LANGUAGE LyXFont & realize(LyXFont const & tmplt); - +#else + LyXFont & realize(LyXFont const & tmplt, Language const * language); +#endif /// Is a given font fully resolved? bool resolved() const; - + /// Read a font specification from LyXLex. Used for layout files. LyXFont & lyxRead(LyXLex &); - + /// Writes the changes from this font to orgfont in .lyx format in file +#ifndef INHERIT_LANGUAGE void lyxWriteChanges(LyXFont const & orgfont, std::ostream &) const; +#else + void lyxWriteChanges(LyXFont const & orgfont, Language const * doclang, + std::ostream &) const; +#endif /** Writes the head of the LaTeX needed to change to this font. Writes to string, the head of the LaTeX needed to change @@ -302,9 +324,6 @@ public: friend bool operator==(LyXFont const & font1, LyXFont const & font2); - /// compares two fonts, ignoring the setting of the Latex part. - bool equalExceptLatex(LyXFont const &) const; - /// Converts logical attributes to concrete shape attribute LyXFont::FONT_SHAPE realShape() const; private: @@ -331,23 +350,21 @@ private: /// FONT_MISC_STATE noun; /// - FONT_MISC_STATE latex; - /// FONT_MISC_STATE number; }; /// FontBits bits; - + /// Language const * lang; - + /// Sane font static FontBits sane; - + /// All inherit font static FontBits inherit; - + /// All ignore font static FontBits ignore; @@ -365,13 +382,7 @@ LyXFont::FONT_SHAPE LyXFont::shape() const inline -LyXFont::LyXFont() - : bits(sane), lang(default_language) -{} - - -inline -LyXFont::FONT_FAMILY LyXFont::family() const +LyXFont::FONT_FAMILY LyXFont::family() const { return bits.family; } @@ -405,6 +416,22 @@ LyXFont::FONT_MISC_STATE LyXFont::noun() const } +inline +bool LyXFont::isSymbolFont() const +{ + switch (family()) { + case LyXFont::SYMBOL_FAMILY: + case LyXFont::CMSY_FAMILY: + case LyXFont::CMM_FAMILY: + case LyXFont::CMEX_FAMILY: + case LyXFont::MSA_FAMILY: + case LyXFont::MSB_FAMILY: + return true; + default: + return false; + } +} + /// std::ostream & operator<<(std::ostream &, LyXFont::FONT_MISC_STATE);