// -*- 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
-#ifdef __GNUG__
-#pragma interface
-#endif
-
#include <iosfwd>
+#include <string>
-#include "LString.h"
-#include "LColor.h"
-
+class LColor_color;
class LyXLex;
class BufferParams;
class Language;
FONT_MISC_STATE number() const;
///
- LColor::color color() const;
+ LColor_color color() const;
///
Language const * language() const;
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.
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.
*/
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;
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;
///
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
{
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;
}
///
return !(font1 == font2);
}
-
#endif