]> git.lyx.org Git - lyx.git/blobdiff - src/FontInfo.cpp
Fix compilation warning in DepTable.cpp
[lyx.git] / src / FontInfo.cpp
index e611288ff4422ef58d6b370b13162de02fd12bea..be792623071b74fb36f9f7bb9383b49bf65e6bd1 100644 (file)
 #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>
 
@@ -167,6 +171,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)
 {
@@ -245,6 +272,32 @@ FontInfo & FontInfo::realize(FontInfo const & tmplt)
 }
 
 
+Changer FontInfo::changeColor(ColorCode const color)
+{
+       return make_change(color_, color);
+}
+
+
+Changer FontInfo::changeShape(FontShape const shape)
+{
+       return make_change(shape_, shape);
+}
+
+
+Changer FontInfo::changeStyle(MathStyle const new_style)
+{
+       return make_change(style_, new_style);
+}
+
+
+Changer FontInfo::change(FontInfo font, bool realiz)
+{
+       if (realiz)
+               font.realize(*this);
+       return make_change(*this, font);
+}
+
+
 /// Updates a misc setting according to request
 static FontState setMisc(FontState newfont,
        FontState org)