#include "LString.h"
#include "LColor.h"
-#include "language.h"
class LyXLex;
class BufferParams;
+class Language;
-#define NO_LATEX 1
-
///
class LyXFont {
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
};
///
///
FONT_MISC_STATE noun() const;
-#ifndef NO_LATEX
- ///
- FONT_MISC_STATE latex() const;
-#endif
///
FONT_MISC_STATE number() const;
///
bool isVisibleRightToLeft() const;
+
+ ///
+ bool isSymbolFont() const;
///
LyXFont & setFamily(LyXFont::FONT_FAMILY f);
LyXFont & setUnderbar(LyXFont::FONT_MISC_STATE u);
///
LyXFont & setNoun(LyXFont::FONT_MISC_STATE n);
-#ifndef NO_LATEX
- ///
- LyXFont & setLatex(LyXFont::FONT_MISC_STATE l);
-#endif
///
LyXFont & setNumber(LyXFont::FONT_MISC_STATE n);
///
a INHERIT_FAMILY was asked for. This is necessary for the
toggle-user-defined-style button on the toolbar.
*/
- void update(LyXFont const & newfont, bool toggleall = false);
+ 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;
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
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:
FONT_MISC_STATE underbar;
///
FONT_MISC_STATE noun;
-#ifndef NO_LATEX
- ///
- FONT_MISC_STATE latex;
-#endif
///
FONT_MISC_STATE number;
};
}
-inline
-LyXFont::LyXFont()
- : bits(sane), lang(default_language)
-{}
-
-
inline
LyXFont::FONT_FAMILY LyXFont::family() 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);