#include <config.h>
#include "TextClass.h"
-#include "debug.h"
-#include "Layout.h"
-#include "Lexer.h"
+
+#include "Color.h"
#include "Counters.h"
+#include "debug.h"
#include "gettext.h"
#include "Floating.h"
#include "FloatList.h"
+#include "Layout.h"
+#include "Lexer.h"
#include "frontends/alert.h"
#include <sstream>
+using std::endl;
+using std::find_if;
+using std::remove_if;
+using std::string;
+using std::ostream;
+
namespace lyx {
using support::FileName;
using support::subst;
using support::addName;
-using std::endl;
-using std::find_if;
-using std::remove_if;
-using std::string;
-using std::ostream;
-
+extern FontInfo lyxRead(Lexer &, FontInfo const & fi = sane_font);
namespace {
secnumdepth_ = 3;
tocdepth_ = 3;
pagestyle_ = "default";
- defaultfont_ = Font(Font::ALL_SANE);
+ defaultfont_ = sane_font;
opt_fontsize_ = "10|11|12";
opt_pagestyle_ = "empty|plain|headings|fancy";
titletype_ = TITLE_COMMAND_AFTER;
break;
case TC_DEFAULTFONT:
- defaultfont_.lyxRead(lexrc);
+ defaultfont_ = lyxRead(lexrc);
if (!defaultfont_.resolved()) {
lexrc.printError("Warning: defaultfont should "
"be fully instantiated!");
- defaultfont_.realize(Font(Font::ALL_SANE));
+ defaultfont_.realize(sane_font);
}
break;
IL_BGCOLOR,
IL_DECORATION,
IL_FREESPACING,
+ IL_FORCELTR,
IL_LABELFONT,
IL_LABELSTRING,
IL_LATEXNAME,
{ "decoration", IL_DECORATION },
{ "end", IL_END },
{ "font", IL_FONT },
+ { "forceltr", IL_FORCELTR },
{ "freespacing", IL_FREESPACING },
{ "keepempty", IL_KEEPEMPTY },
{ "labelfont", IL_LABELFONT },
string decoration;
string latexname;
string latexparam;
- Font font(defaultfont());
- Font labelfont(defaultfont());
- Color::color bgcolor(Color::background);
+ FontInfo font = inherit_font;
+ FontInfo labelfont = inherit_font;
+ ColorCode bgcolor(Color_background);
string preamble;
- bool multipar(false);
- bool passthru(false);
- bool needprotect(false);
- bool keepempty(false);
- bool freespacing(false);
+ bool multipar = false;
+ bool passthru = false;
+ bool needprotect = false;
+ bool keepempty = false;
+ bool freespacing = false;
+ bool forceltr = false;
bool getout = false;
while (!getout && lexrc.isOK()) {
latexparam = subst(lexrc.getString(), """, "\"");
break;
case IL_LABELFONT:
- labelfont.lyxRead(lexrc);
- labelfont.realize(defaultfont());
+ labelfont = lyxRead(lexrc, inherit_font);
+ break;
+ case IL_FORCELTR:
+ lexrc.next();
+ forceltr = lexrc.getBool();
break;
case IL_MULTIPAR:
lexrc.next();
needprotect = lexrc.getBool();
break;
case IL_FONT:
- font.lyxRead(lexrc);
- font.realize(defaultfont());
+ font = lyxRead(lexrc, inherit_font);
// So: define font before labelfont
labelfont = font;
break;
il.passthru = passthru;
il.needprotect = needprotect;
il.freespacing = freespacing;
+ il.forceltr = forceltr;
il.keepempty = keepempty;
il.font = font;
il.labelfont = labelfont;
}
-Font const & TextClass::defaultfont() const
+FontInfo const & TextClass::defaultfont() const
{
return defaultfont_;
}
}
static InsetLayout empty;
empty.labelstring = from_utf8("UNDEFINED");
- empty.bgcolor = Color::error;
+ empty.bgcolor = Color_error;
return empty;
}