]> git.lyx.org Git - lyx.git/blobdiff - src/FontInfo.cpp
Cmake build: Prepare for hardening use of external programs
[lyx.git] / src / FontInfo.cpp
index 9edf97e52e9e7ee56e63d9e7da738a502bec1595..afcc2765df61e28b0bdb0ea8c9eb2ae1b2a7edb5 100644 (file)
@@ -17,7 +17,9 @@
 #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"
@@ -168,6 +170,29 @@ FontInfo & FontInfo::incSize()
 }
 
 
+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)
 {
@@ -246,23 +271,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);
 }