X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2FFontInfo.cpp;h=be792623071b74fb36f9f7bb9383b49bf65e6bd1;hb=16d5c49b383841826d1bc563e2d392e12e497ed8;hp=9edf97e52e9e7ee56e63d9e7da738a502bec1595;hpb=e2bc7ffae3eb387661064be8b9dc927742f9e7e8;p=lyx.git diff --git a/src/FontInfo.cpp b/src/FontInfo.cpp index 9edf97e52e..be79262307 100644 --- a/src/FontInfo.cpp +++ b/src/FontInfo.cpp @@ -17,12 +17,15 @@ #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 #include #include @@ -168,6 +171,29 @@ FontInfo & FontInfo::incSize() } +double FontInfo::realSize() const +{ + double d = convert(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(lyxrc.font_sizes[FONT_SIZE_TINY])); +} + + /// Reduce font to fall back to template where possible void FontInfo::reduce(FontInfo const & tmplt) { @@ -246,23 +272,29 @@ FontInfo & FontInfo::realize(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); }