]> git.lyx.org Git - lyx.git/blobdiff - src/lyxfont.h
fix mathed crash
[lyx.git] / src / lyxfont.h
index b1601f7b99bf4b10f9769bdd4193d42abb501b9a..488932d208f592e52bd8299aa101b0bfb9c8c9be 100644 (file)
@@ -1,22 +1,24 @@
 // -*- C++ -*-
-/* This file is part of
- * ======================================================
+/**
+ * \file src/lyxfont.h
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
  *
- *           LyX, The Document Processor
+ * \author Lars Gullik Bjønnes
+ * \author Jean-Marc Lasgouttes
+ * \author Angus Leeming
+ * \author Dekel Tsur
  *
- *           Copyright 1995 Matthias Ettrich
- *           Copyright 1995-2001 The LyX Team.
- *
- * ====================================================== */
+ * Full author contact details are available in file CREDITS.
+ */
 
 #ifndef LYXFONT_H
 #define LYXFONT_H
 
 #include <iosfwd>
+#include <string>
 
-#include "LString.h"
-#include "LColor.h"
-
+class LColor_color;
 class LyXLex;
 class BufferParams;
 class Language;
@@ -204,7 +206,7 @@ public:
        FONT_MISC_STATE number() const;
 
        ///
-       LColor::color color() const;
+       LColor_color color() const;
 
        ///
        Language const * language() const;
@@ -219,46 +221,37 @@ public:
        bool isSymbolFont() const;
 
        ///
-       LyXFont & setFamily(LyXFont::FONT_FAMILY f);
-       ///
-       LyXFont & setSeries(LyXFont::FONT_SERIES s);
-       ///
-       LyXFont & setShape(LyXFont::FONT_SHAPE s);
-       ///
-       LyXFont & setSize(LyXFont::FONT_SIZE s);
-       ///
-       LyXFont & setEmph(LyXFont::FONT_MISC_STATE e);
-       ///
-       LyXFont & setUnderbar(LyXFont::FONT_MISC_STATE u);
-       ///
-       LyXFont & setNoun(LyXFont::FONT_MISC_STATE n);
-       ///
-       LyXFont & setNumber(LyXFont::FONT_MISC_STATE n);
-       ///
-       LyXFont & setColor(LColor::color c);
-       ///
-       LyXFont & setLanguage(Language const * l);
+       void setFamily(LyXFont::FONT_FAMILY f);
+       void setSeries(LyXFont::FONT_SERIES s);
+       void setShape(LyXFont::FONT_SHAPE s);
+       void setSize(LyXFont::FONT_SIZE s);
+       void setEmph(LyXFont::FONT_MISC_STATE e);
+       void setUnderbar(LyXFont::FONT_MISC_STATE u);
+       void setNoun(LyXFont::FONT_MISC_STATE n);
+       void setNumber(LyXFont::FONT_MISC_STATE n);
+       void setColor(LColor_color c);
+       void setLanguage(Language const * l);
 
        /// Set family after LyX text format
-       LyXFont & setLyXFamily(string const &);
+       LyXFont & setLyXFamily(std::string const &);
 
        /// Set series after LyX text format
-       LyXFont & setLyXSeries(string const &);
+       LyXFont & setLyXSeries(std::string const &);
 
        /// Set shape after LyX text format
-       LyXFont & setLyXShape(string const &);
+       LyXFont & setLyXShape(std::string const &);
 
        /// Set size after LyX text format
-       LyXFont & setLyXSize(string const &);
+       LyXFont & setLyXSize(std::string const &);
 
        /// Returns misc flag after LyX text format
-       LyXFont::FONT_MISC_STATE setLyXMisc(string const &);
+       LyXFont::FONT_MISC_STATE setLyXMisc(std::string const &);
 
        /// Sets color after LyX text format
-       LyXFont & setLyXColor(string const &);
+       LyXFont & setLyXColor(std::string const &);
 
        /// Returns size of font in LaTeX text notation
-       string const latexSize() const;
+       std::string const latexSize() const;
 
        /** Updates font settings according to request.
            If an attribute is IGNORE, the attribute is left as it is.
@@ -296,7 +289,7 @@ public:
        int latexWriteStartChanges(std::ostream &, LyXFont const & base,
                                   LyXFont const & prev) const;
 
-       /** Writes tha tail of the LaTeX needed to chagne to this font.
+       /** Writes the tail of the LaTeX needed to change to this font.
            Returns number of chars written. Base is the font state we want
            to achieve.
        */
@@ -304,14 +297,17 @@ public:
                                 LyXFont const & next) const;
 
        /// Build GUI description of font state
-       string const stateText(BufferParams * params) const;
+       std::string const stateText(BufferParams * params) const;
 
        ///
-       LColor::color realColor() const;
+       LColor_color realColor() const;
 
        ///
        friend
        bool operator==(LyXFont const & font1, LyXFont const & font2);
+       ///
+       friend
+       std::ostream & operator<<(std::ostream & os, LyXFont const & font);
 
        /// Converts logical attributes to concrete shape attribute
        LyXFont::FONT_SHAPE realShape() const;
@@ -328,8 +324,10 @@ public:
                FONT_SHAPE shape;
                ///
                FONT_SIZE size;
-               ///
-               LColor::color color;
+               /** We store the LColor::color value as an int to get LColor.h out
+                *  of the header file.
+                */
+               int color;
                ///
                FONT_MISC_STATE emph;
                ///
@@ -340,28 +338,39 @@ public:
                FONT_MISC_STATE number;
        };
 private:
-
        ///
        FontBits bits;
-
        ///
        Language const * lang;
-
        /// Sane font
        static FontBits sane;
-
        /// All inherit font
        static FontBits inherit;
-
        /// All ignore font
        static FontBits ignore;
-
        /// Updates a misc setting according to request
        LyXFont::FONT_MISC_STATE setMisc(LyXFont::FONT_MISC_STATE newfont,
                                         LyXFont::FONT_MISC_STATE org);
 };
 
 
+/** \c LyXFont_size is a wrapper for LyXFont::FONT_SIZE.
+ *  It can be forward-declared and passed as a function argument without
+ *  having to expose lyxfont.h.
+ */
+class LyXFont_size {
+public:
+       ///
+       LyXFont_size(LyXFont::FONT_SIZE val) : val_(val) {}
+       ///
+       operator LyXFont::FONT_SIZE() const { return val_; }
+private:
+       ///
+       LyXFont::FONT_SIZE val_;
+};
+
+
+
 inline
 LyXFont::FONT_SHAPE LyXFont::shape() const
 {
@@ -436,8 +445,7 @@ bool operator!=(LyXFont::FontBits const & lhs, LyXFont::FontBits const & rhs)
 inline
 bool operator==(LyXFont const & font1, LyXFont const & font2)
 {
-       return font1.bits == font2.bits &&
-               font1.lang == font2.lang;
+       return font1.bits == font2.bits && font1.lang == font2.lang;
 }
 
 ///
@@ -447,5 +455,4 @@ bool operator!=(LyXFont const & font1, LyXFont const & font2)
        return !(font1 == font2);
 }
 
-
 #endif