]> git.lyx.org Git - lyx.git/blobdiff - src/lyxfont.h
don't copy if a reference is fine
[lyx.git] / src / lyxfont.h
index ccfe7e54669e563c7a0c4451d59dbdc3cac6cf17..5d75c20f2eac7891981d12779e99584716bac2fc 100644 (file)
 
 #include "LString.h"
 #include "LColor.h"
-#include "language.h"
 
 class LyXLex;
 class BufferParams;
+class Language;
 
 
-#define NO_LATEX 1
-
 ///
 class LyXFont {
 public:
@@ -47,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
        };
 
        ///
@@ -188,10 +202,6 @@ public:
        ///
        FONT_MISC_STATE noun() const;
 
-#ifndef NO_LATEX
-       ///
-       FONT_MISC_STATE latex() const;
-#endif
        ///
        FONT_MISC_STATE number() const;
 
@@ -206,6 +216,9 @@ public:
 
        ///
        bool isVisibleRightToLeft() const;
+
+       ///
+       bool isSymbolFont() const;
        
        ///
        LyXFont & setFamily(LyXFont::FONT_FAMILY f);
@@ -221,10 +234,6 @@ public:
        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);
        ///
@@ -262,15 +271,20 @@ 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, 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;
  
@@ -278,8 +292,12 @@ public:
        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
@@ -306,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:
@@ -334,10 +349,6 @@ private:
                FONT_MISC_STATE underbar;
                ///
                FONT_MISC_STATE noun;
-#ifndef NO_LATEX
-               ///
-               FONT_MISC_STATE latex;
-#endif
                ///
                FONT_MISC_STATE number;
        };
@@ -370,12 +381,6 @@ LyXFont::FONT_SHAPE LyXFont::shape() const
 }
 
 
-inline
-LyXFont::LyXFont()
-       : bits(sane), lang(default_language)
-{}
-
-
 inline
 LyXFont::FONT_FAMILY LyXFont::family() const 
 {
@@ -411,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);