*
* \author Lars Gullik Bjønnes
*
- * Full author contact details are available in file CREDITS
+ * Full author contact details are available in file CREDITS.
*/
#include <config.h>
#include "insetlatexaccent.h"
#include "debug.h"
-#include "lyxrc.h"
-#include "support/lstrings.h"
-#include "BufferView.h"
-#include "frontends/Painter.h"
-#include "frontends/font_metrics.h"
#include "language.h"
+#include "LColor.h"
#include "lyxlex.h"
+#include "lyxrc.h"
#include "metricsinfo.h"
-using std::ostream;
+#include "frontends/font_metrics.h"
+#include "frontends/Painter.h"
+
+#include "support/lstrings.h"
+
+using lyx::support::contains;
+using lyx::support::trim;
+
using std::endl;
+using std::string;
+using std::auto_ptr;
+using std::ostream;
/* LatexAccent. Proper handling of accented characters */
// overhaul. Different ways of drawing (what metrics to use)
// should also be considered.
- BufferView * bv = pi.base.bv;
LyXFont font = pi.base.font;
if (lyxrc.font_norm_type == LyXRC::ISO_10646_1)
font.setLanguage(english_language);
- Dimension dim;
- MetricsInfo mi;
- mi.base.bv = pi.base.bv;
- mi.base.font = pi.base.font;
- metrics(mi, dim);
- dim_ = dim;
-
if (candisp) {
float x2 = x + (rbearing(font) - lbearing(font)) / 2.0;
float hg;
// closer to the top of the dot-less 'i' or 'j'.
char tmpic = ic; // store the ic when we
ic = 'x'; // calculates the ascent of
- int asc = ascent(bv, font); // the dot-less version (here: 'x')
+#warning metrics?
+ int asc = ascent(); // the dot-less version (here: 'x')
ic = tmpic; // set the orig ic back
y = baseline - asc; // update to new y coord.
}
case CIRCLE: // circle
{
- LyXFont tmpf(font);
+ LyXFont tmpf = font;
tmpf.decSize().decSize();
pi.pain.text(int(x2 - (font_metrics::rbearing(0xB0, tmpf) - font_metrics::lbearing(0xB0, tmpf)) / 2.0),
int(baseline - font_metrics::ascent(ic, font) - font_metrics::descent(0xB0, tmpf) - (font_metrics::ascent(0xB0, tmpf) + font_metrics::descent(0xB0, tmpf)) / 3.0),
case TIE: // tie
{
pi.pain.arc(int(x2 + hg35), int(y + hg / 2.0),
- int(2 * hg), int(hg), 0, 360 * 32);
+ int(2 * hg), int(hg), 0, 360 * 32,
+ LColor::foreground);
break;
}
case BREVE: // breve
{
pi.pain.arc(int(x2 - (hg / 2.0)), y,
- int(hg), int(hg), 0, -360*32);
+ int(hg), int(hg), 0, -360*32,
+ LColor::foreground);
break;
}
case CARON: // caron
xp[0] = int(x2 - hg35); yp[0] = int(y + hg35);
xp[1] = int(x2); yp[1] = int(y + hg);
xp[2] = int(x2 + hg35); yp[2] = int(y + hg35);
- pi.pain.lines(xp, yp, 3);
+ pi.pain.lines(xp, yp, 3, LColor::foreground);
break;
}
case SPECIAL_CARON: // special caron
xp[2] = int(x + dim_.wid + (hg35 / 2.0));
yp[2] = y + int(hg);
- pi.pain.lines(xp, yp, 3);
+ pi.pain.lines(xp, yp, 3, LColor::foreground);
break;
}
case HUNGARIAN_UMLAUT: // hung. umlaut
xp[3] = int(x2 + hg / 4.0);
yp[3] = y + int(hg);
- pi.pain.lines(xp, yp, 4);
+ pi.pain.lines(xp, yp, 4, LColor::foreground);
break;
}
case lSLASH:
xp[1] = int(x + float(dim_.wid) * 0.75);
yp[1] = y + int(hg);
- pi.pain.lines(xp, yp, 2);
+ pi.pain.lines(xp, yp, 2, LColor::foreground);
break;
}
case DOT_LESS_I: // dotless-i
}
} else {
pi.pain.fillRectangle(x + 1,
- baseline - dim_.asc + 1, dim_.wid - 2,
- dim_.asc + dim_.des - 2, backgroundColor());
+ baseline - dim_.asc + 1, dim_.wid - 2,
+ dim_.asc + dim_.des - 2,
+ backgroundColor());
pi.pain.rectangle(x + 1, baseline - dim_.asc + 1,
- dim_.wid - 2, dim_.asc + dim_.des - 2);
+ dim_.wid - 2, dim_.asc + dim_.des - 2,
+ LColor::foreground);
pi.pain.text(x + 2, baseline, contents, font);
}
}
-void InsetLatexAccent::write(Buffer const *, ostream & os) const
+void InsetLatexAccent::write(Buffer const &, ostream & os) const
{
os << "\\i " << contents << "\n";
}
-void InsetLatexAccent::read(Buffer const *, LyXLex & lex)
+void InsetLatexAccent::read(Buffer const &, LyXLex & lex)
{
lex.eatLine();
contents = lex.getString();
}
-int InsetLatexAccent::latex(Buffer const *, ostream & os,
+int InsetLatexAccent::latex(Buffer const &, ostream & os,
LatexRunParams const &) const
{
os << contents;
}
-int InsetLatexAccent::ascii(Buffer const *, ostream & os, int) const
+int InsetLatexAccent::ascii(Buffer const &, ostream & os, int) const
{
os << contents;
return 0;
}
-int InsetLatexAccent::linuxdoc(Buffer const *, ostream & os) const
+int InsetLatexAccent::linuxdoc(Buffer const &, ostream & os) const
{
os << contents;
return 0;
}
-int InsetLatexAccent::docbook(Buffer const *, ostream & os, bool) const
+int InsetLatexAccent::docbook(Buffer const &, ostream & os, bool) const
{
os << contents;
return 0;
}
-Inset * InsetLatexAccent::clone(Buffer const &) const
+auto_ptr<InsetBase> InsetLatexAccent::clone() const
{
- return new InsetLatexAccent(contents);
+ return auto_ptr<InsetBase>(new InsetLatexAccent(contents));
}
-// Inset * InsetLatexAccent::clone(Buffer const &, bool) const
-// {
-// return new InsetLatexAccent(contents);
-// }
-
-
-Inset::Code InsetLatexAccent::lyxCode() const
+InsetOld::Code InsetLatexAccent::lyxCode() const
{
- return Inset::ACCENT_CODE;
+ return InsetOld::ACCENT_CODE;
}