]> git.lyx.org Git - lyx.git/blobdiff - src/metricsinfo.C
Add GTK bibitem dialog
[lyx.git] / src / metricsinfo.C
index 1283c687f2e5b8fb2f75bd10b2d411c5acd4964f..9d6568640c1a1cea9dca85f3aa48e2a0a741b219 100644 (file)
 
 #include <config.h>
 
+#include "BufferView.h"
+#include "LColor.h"
 #include "metricsinfo.h"
+
 #include "mathed/math_support.h"
+
 #include "frontends/Painter.h"
-#include "BufferView.h"
-#include "LColor.h"
+
+#include <boost/assert.hpp>
 
 using std::string;
 
@@ -25,7 +29,6 @@ MetricsBase::MetricsBase()
 {}
 
 
-
 MetricsBase::MetricsBase(BufferView * b, LyXFont const & f, int w)
        : bv(b), font(f), style(LM_ST_TEXT), fontname("mathnormal"),
          textwidth(w)
@@ -43,8 +46,8 @@ MetricsInfo::MetricsInfo(BufferView * bv, LyXFont const & font, int textwidth)
 
 
 
-PainterInfo::PainterInfo(BufferView * bv)
-       : pain(bv->painter())
+PainterInfo::PainterInfo(BufferView * bv, Painter & painter)
+       : pain(painter), ltr_pos(false), erased_(false)
 {
        base.bv = bv;
 }
@@ -56,6 +59,12 @@ void PainterInfo::draw(int x, int y, char c)
 }
 
 
+void PainterInfo::draw(int x, int y, std::string const & str)
+{
+       pain.text(x, y, str, base.font);
+}
+
+
 Styles smallerScriptStyle(Styles st)
 {
        switch (st) {
@@ -118,10 +127,11 @@ ShapeChanger::~ShapeChanger()
 StyleChanger::StyleChanger(MetricsBase & mb, Styles style)
        :       Changer<MetricsBase>(mb)
 {
-       static const int diff[4][4]  = { { 0, 0, -3, -5 },
-                                        { 0, 0, -3, -5 },
-                                        { 3, 3,  0, -2 },
-                                        { 5, 5,  2,  0 } };
+       static const int diff[4][4] =
+               { { 0, 0, -3, -5 },
+                 { 0, 0, -3, -5 },
+                 { 3, 3,  0, -2 },
+                 { 5, 5,  2,  0 } };
        save_ = mb;
        int t = diff[mb.style][style];
        if (t > 0)
@@ -145,9 +155,11 @@ FontSetChanger::FontSetChanger(MetricsBase & mb, char const * name)
        :       Changer<MetricsBase>(mb)
 {
        save_ = mb;
+       LyXFont::FONT_SIZE oldsize = save_.font.size();
        mb.fontname = name;
        mb.font = LyXFont();
        augmentFont(mb.font, name);
+       mb.font.setSize(oldsize);
 }