X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Fmetricsinfo.C;h=9544e68883c464c85566db05bda984a00992a269;hb=e5a46922e916a06ad1b958d5895cc3cfb4f13d2c;hp=e00e59f853aeb442cd845904aef2eb66971e4f2e;hpb=3bb63924d502ec9d7cec06e8ff434e3e209fecb9;p=lyx.git diff --git a/src/metricsinfo.C b/src/metricsinfo.C index e00e59f853..9544e68883 100644 --- a/src/metricsinfo.C +++ b/src/metricsinfo.C @@ -10,12 +10,20 @@ #include -#include "metricsinfo.h" -#include "mathed/math_support.h" -#include "frontends/Painter.h" #include "BufferView.h" #include "LColor.h" +#include "metricsinfo.h" + +#include "mathed/MathSupport.h" + +#include "frontends/Painter.h" +#include + + +namespace lyx { + +using std::string; MetricsBase::MetricsBase() @@ -24,7 +32,6 @@ MetricsBase::MetricsBase() {} - MetricsBase::MetricsBase(BufferView * b, LyXFont const & f, int w) : bv(b), font(f), style(LM_ST_TEXT), fontname("mathnormal"), textwidth(w) @@ -42,19 +49,25 @@ MetricsInfo::MetricsInfo(BufferView * bv, LyXFont const & font, int textwidth) -PainterInfo::PainterInfo(BufferView * bv) - : pain(bv->painter()) +PainterInfo::PainterInfo(BufferView * bv, lyx::frontend::Painter & painter) + : pain(painter), ltr_pos(false), erased_(false) { base.bv = bv; } -void PainterInfo::draw(int x, int y, char c) +void PainterInfo::draw(int x, int y, char_type c) { pain.text(x, y, c, base.font); } +void PainterInfo::draw(int x, int y, docstring const & str) +{ + pain.text(x, y, str, base.font); +} + + Styles smallerScriptStyle(Styles st) { switch (st) { @@ -100,6 +113,7 @@ ArrayChanger::ArrayChanger(MetricsBase & mb) {} + ShapeChanger::ShapeChanger(LyXFont & font, LyXFont::FONT_SHAPE shape) : Changer(font) { @@ -107,6 +121,7 @@ ShapeChanger::ShapeChanger(LyXFont & font, LyXFont::FONT_SHAPE shape) orig_.setShape(shape); } + ShapeChanger::~ShapeChanger() { orig_.setShape(save_); @@ -117,10 +132,11 @@ ShapeChanger::~ShapeChanger() StyleChanger::StyleChanger(MetricsBase & mb, Styles style) : Changer(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) @@ -144,9 +160,23 @@ FontSetChanger::FontSetChanger(MetricsBase & mb, char const * name) : Changer(mb) { save_ = mb; + LyXFont::FONT_SIZE oldsize = save_.font.size(); mb.fontname = name; mb.font = LyXFont(); + augmentFont(mb.font, from_ascii(name)); + mb.font.setSize(oldsize); +} + + +FontSetChanger::FontSetChanger(MetricsBase & mb, docstring const & name) + : Changer(mb) +{ + save_ = mb; + LyXFont::FONT_SIZE oldsize = save_.font.size(); + mb.fontname = to_utf8(name); + mb.font = LyXFont(); augmentFont(mb.font, name); + mb.font.setSize(oldsize); } @@ -160,7 +190,7 @@ WidthChanger::WidthChanger(MetricsBase & mb, int w) : Changer(mb) { save_ = mb; - mb.textwidth = w; + mb.textwidth = w; } @@ -175,14 +205,15 @@ WidthChanger::~WidthChanger() ColorChanger::ColorChanger(LyXFont & font, string const & color) : Changer(font) { - save_ = lcolor.getFromGUIName(color); - font.setColor(lcolor.getFromGUIName(color)); + save_ = lcolor.getFromLyXName(color); + font.setColor(lcolor.getFromLyXName(color)); } ColorChanger::~ColorChanger() { - orig_.setColor(lcolor.getFromGUIName(save_)); + orig_.setColor(lcolor.getFromLyXName(save_)); } +} // namespace lyx