* LyX, The Document Processor
*
* Copyright 1995 Matthias Ettrich
- * Copyright 1995-2000 The LyX Team.
+ * Copyright 1995-2001 The LyX Team.
*
* ====================================================== */
#include <iosfwd>
#include "LString.h"
-#include "language.h"
#include "LColor.h"
-
-// It might happen that locale.h defines ON and OFF. This is not good
-// for us, since we use these names below. But of course this is due
-// to some old compilers. Than is broken when it comes to C++ scoping.
-#include "gettext.h" // so that we are sure tht it won't be included
-// later.
-#ifdef ON
-#undef ON
-#endif
-
-#ifdef OFF
-#undef OFF
-#endif
+#include "language.h"
class LyXLex;
class BufferParams;
+
///
class LyXFont {
public:
///
LyXFont();
- // LyXFont x(LyXFont ...) and LyXFont x = LyXFont ...
- LyXFont(LyXFont const & x);
-
/// Shortcut initialization
explicit
LyXFont(LyXFont::FONT_INIT1);
/// Shortcut initialization
LyXFont(LyXFont::FONT_INIT3, Language const * l);
- /// LyXFont x, y; x = y;
- LyXFont & operator=(LyXFont const & x);
-
/// Decreases font size by one
LyXFont & decSize();
FONT_MISC_STATE noun() const;
///
- FONT_MISC_STATE latex() const;
+ FONT_MISC_STATE number() const;
///
LColor::color color() const;
///
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);
///
/// Sets color after LyX text format
LyXFont & setLyXColor(string const &);
-
- /// Sets size after GUI name
- LyXFont & setGUISize(string const &);
-
+
/// Returns size of font in LaTeX text notation
- string latexSize() const;
+ string const latexSize() const;
/** Updates font settings according to request.
If an attribute is IGNORE, the attribute is left as it is.
a INHERIT_FAMILY was asked for. This is necessary for the
toggle-user-defined-style button on the toolbar.
*/
- void update(LyXFont const & newfont,
- Language const * default_lang,
- bool toggleall = false);
+ void update(LyXFont const & newfont, 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)
- LyXFont & realize(LyXFont const & tmplt);
+ LyXFont & realize(LyXFont const & tmplt, Language const * language);
/// 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
- void lyxWriteChanges(LyXFont const & orgfont, std::ostream &) const;
+ void lyxWriteChanges(LyXFont const & orgfont, Language const * doclang,
+ std::ostream &) const;
/** Writes the head of the LaTeX needed to change to this font.
Writes to string, the head of the LaTeX needed to change
LyXFont const & next) const;
/// Build GUI description of font state
- string stateText(BufferParams * params) const;
+ string const stateText(BufferParams * params) const;
///
LColor::color realColor() const;
friend
bool operator==(LyXFont const & font1, LyXFont const & font2);
- ///
- 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 noun;
///
- FONT_MISC_STATE latex;
+ FONT_MISC_STATE number;
};
+
///
FontBits bits;
+
///
Language const * lang;
LyXFont::FONT_MISC_STATE org);
};
-///
-std::ostream & operator<<(std::ostream &, LyXFont::FONT_MISC_STATE);
-
-///
-inline
-bool operator==(LyXFont const & font1, LyXFont const & font2) {
- return font1.bits == font2.bits &&
- font1.lang == font2.lang;
-}
-
-///
-inline
-bool operator!=(LyXFont const & font1, LyXFont const & font2) {
- return !(font1 == font2);
-}
-
-
-inline
-LyXFont::LyXFont()
-{
- bits = sane;
- lang = default_language;
-}
-
-
-inline
-LyXFont::LyXFont(LyXFont const & x)
-{
- bits = x.bits;
- lang = x.lang;
-}
-
-
-inline
-LyXFont::LyXFont(LyXFont::FONT_INIT1)
-{
- bits = inherit;
- lang = default_language;
-}
-
-
-inline
-LyXFont::LyXFont(LyXFont::FONT_INIT2)
-{
- bits = ignore;
- lang = ignore_language;
-}
-
-
-inline
-LyXFont::LyXFont(LyXFont::FONT_INIT3)
-{
- bits = sane;
- lang = default_language;
-}
-
inline
-LyXFont::LyXFont(LyXFont::FONT_INIT1, Language const * l)
-{
- bits = inherit;
- lang = l;
-}
-
-
-inline
-LyXFont::LyXFont(LyXFont::FONT_INIT2, Language const * l)
-{
- bits = ignore;
- lang = l;
-}
-
-
-inline
-LyXFont::LyXFont(LyXFont::FONT_INIT3, Language const * l)
+LyXFont::FONT_SHAPE LyXFont::shape() const
{
- bits = sane;
- lang = l;
+ return bits.shape;
}
inline
-LyXFont & LyXFont::operator=(LyXFont const & x)
-{
- bits = x.bits;
- lang = x.lang;
- return *this;
-}
+LyXFont::LyXFont()
+ : bits(sane), lang(default_language)
+{}
inline
}
-inline
-LyXFont::FONT_SHAPE LyXFont::shape() const
-{
- return bits.shape;
-}
-
-
inline
LyXFont::FONT_SIZE LyXFont::size() const
{
}
-inline
-LyXFont::FONT_MISC_STATE LyXFont::underbar() const
-{
- return bits.underbar;
-}
-
-
inline
LyXFont::FONT_MISC_STATE LyXFont::noun() const
{
}
-inline
-LyXFont::FONT_MISC_STATE LyXFont::latex() const
-{
- return bits.latex;
-}
-
-
-inline
-LColor::color LyXFont::color() const
-{
- return bits.color;
-}
-
-
-inline
-Language const * LyXFont::language() const
-{
- return lang;
-}
-
-
-inline
-bool LyXFont::isRightToLeft() const
-{
- return lang->RightToLeft();
-}
-
-
-inline
-bool LyXFont::isVisibleRightToLeft() const
-{
- return (lang->RightToLeft() && latex() != ON);
-}
-
-
-inline
-LyXFont & LyXFont::setFamily(LyXFont::FONT_FAMILY f)
-{
- bits.family = f;
- return *this;
-}
-
-
-inline
-LyXFont & LyXFont::setSeries(LyXFont::FONT_SERIES s)
-{
- bits.series = s;
- return *this;
-}
-
-
-inline
-LyXFont & LyXFont::setShape(LyXFont::FONT_SHAPE s)
-{
- bits.shape = s;
- return *this;
-}
-
-
-inline
-LyXFont & LyXFont::setSize(LyXFont::FONT_SIZE s)
-{
- bits.size = s;
- return *this;
-}
-
-
-inline
-LyXFont & LyXFont::setEmph(LyXFont::FONT_MISC_STATE e)
-{
- bits.emph = e;
- return *this;
-}
-
-
-inline
-LyXFont & LyXFont::setUnderbar(LyXFont::FONT_MISC_STATE u)
-{
- bits.underbar = u;
- return *this;
-}
-
-
-inline
-LyXFont & LyXFont::setNoun(LyXFont::FONT_MISC_STATE n)
-{
- bits.noun = n;
- return *this;
-}
-
-inline
-LyXFont & LyXFont::setLatex(LyXFont::FONT_MISC_STATE l)
-{
- bits.latex = l;
- return *this;
-}
-
+///
+std::ostream & operator<<(std::ostream &, LyXFont::FONT_MISC_STATE);
+///
inline
-LyXFont & LyXFont::setColor(LColor::color c)
+bool operator==(LyXFont const & font1, LyXFont const & font2)
{
- bits.color = c;
- return *this;
+ return font1.bits == font2.bits &&
+ font1.lang == font2.lang;
}
-
+///
inline
-LyXFont & LyXFont::setLanguage(Language const * l)
+bool operator!=(LyXFont const & font1, LyXFont const & font2)
{
- lang = l;
- return *this;
+ return !(font1 == font2);
}
-
#endif