#include "ColorSet.h"
#include "FontInfo.h"
#include "Lexer.h"
+#include "LyXRC.h"
+#include "support/convert.h"
#include "support/debug.h"
#include "support/docstring.h"
#include "support/lstrings.h"
#include "support/RefChanger.h"
+#include <algorithm>
#include <ostream>
#include <sstream>
}
+double FontInfo::realSize() const
+{
+ double d = convert<double>(lyxrc.font_sizes[size()]);
+ // The following is according to the average of the values in the
+ // definitions of \defaultscriptratio and \defaultscriptscriptratio in LaTeX
+ // font packages. No attempt is made to implement the actual values from
+ // \DefineMathSizes.
+ switch (style()) {
+ case LM_ST_DISPLAY:
+ case LM_ST_TEXT:
+ break;
+ case LM_ST_SCRIPT:
+ d *= .73;
+ break;
+ case LM_ST_SCRIPTSCRIPT:
+ d *= .55;
+ break;
+ }
+ // Never go below the smallest size
+ return max(d, convert<double>(lyxrc.font_sizes[FONT_SIZE_TINY]));
+}
+
+
/// Reduce font to fall back to template where possible
void FontInfo::reduce(FontInfo const & tmplt)
{
}
-Changer FontInfo::changeColor(ColorCode const color, bool cond)
+Changer FontInfo::changeColor(ColorCode const color)
+{
+ return make_change(color_, color);
+}
+
+
+Changer FontInfo::changeShape(FontShape const shape)
{
- return make_change(color_, color, cond);
+ return make_change(shape_, shape);
}
-Changer FontInfo::changeShape(FontShape const shape, bool cond)
+Changer FontInfo::changeStyle(MathStyle const new_style)
{
- return make_change(shape_, shape, cond);
+ return make_change(style_, new_style);
}
-Changer FontInfo::change(FontInfo font, bool realiz, bool cond)
+Changer FontInfo::change(FontInfo font, bool realiz)
{
if (realiz)
font.realize(*this);
- return make_change(*this, font, cond);
+ return make_change(*this, font);
}