* LyX, The Document Processor
*
* Copyright 1995 Matthias Ettrich
- * Copyright 1995-2000 The LyX Team.
+ * Copyright 1995-2001 The LyX Team.
*
* ====================================================== */
#include "BufferView.h"
#include "Painter.h"
#include "font.h"
+#include "language.h"
using std::ostream;
using std::endl;
{
candisp = false;
- if (contents.empty() || contents.length() < 2) return;
+ if (contents.empty() || contents.length() < 2) {
+ lyxerr[Debug::KEY] << "Cannot decode: " << contents << endl;
+ return;
+ }
// REMOVE IN 0.13
// Dirty Hack for backward compability. remove in 0.13 (Lgb)
contents = tmp;
}
}
- if (contents[0] != '\\') return; // demand that first char is a '\\'
+ if (contents[0] != '\\') { // demand that first char is a '\\'
+ lyxerr[Debug::KEY] << "Cannot decode: " << contents << endl;
+ return;
+ }
lyxerr[Debug::KEY] << "Decode: " << contents << endl;
// special clause for \i{}, \j{} \l{} and \L{}
if ((modtype == DOT_LESS_I || modtype == DOT_LESS_J
|| modtype == lSLASH || modtype == LSLASH)
- && contents[3] == '}' ) {
+ && contents[3] == '}') {
switch (modtype) {
case DOT_LESS_I: ic = 'i'; break;
case DOT_LESS_J: ic = 'j'; break;
remdot = true;
else
return;
- } else if ( (ic == 'i'|| ic == 'j') && contents[4] == '}') {
+ } else if ((ic == 'i'|| ic == 'j') && contents[4] == '}') {
// Do a rewrite: \<foo>{i} --> \<foo>{\i}
string temp = contents;
temp.erase(3, string::npos);
temp += '\\';
temp += char(ic);
- for(string::size_type j = 4;
+ for (string::size_type j = 4;
j < contents.length(); ++j)
temp+= contents[j];
contents= temp;
}
-int InsetLatexAccent::Lbearing(LyXFont const & font) const
+int InsetLatexAccent::lbearing(LyXFont const & font) const
{
return lyxfont::lbearing(ic, font);
}
-int InsetLatexAccent::Rbearing(LyXFont const & font) const
+int InsetLatexAccent::rbearing(LyXFont const & font) const
{
return lyxfont::rbearing(ic, font);
}
-bool InsetLatexAccent::DisplayISO8859_9(BufferView * bv, LyXFont const & font,
+bool InsetLatexAccent::displayISO8859_9(BufferView * bv, LyXFont const & font,
int baseline,
float & x) const
{
}
-void InsetLatexAccent::draw(BufferView * bv, LyXFont const & font,
+void InsetLatexAccent::draw(BufferView * bv, LyXFont const & font0,
int baseline, float & x, bool) const
{
Painter & pain = bv->painter();
- if (lyxrc.font_norm == "iso8859-9")
- if (DisplayISO8859_9(bv, font, baseline, x))
+ if (lyxrc.font_norm_type == LyXRC::ISO_8859_9)
+ if (displayISO8859_9(bv, font0, baseline, x))
return;
/* draw it! */
// All the manually drawn accents in this function could use an
// overhaul. Different ways of drawing (what metrics to use)
// should also be considered.
+
+ LyXFont font(font0);
+ if (lyxrc.font_norm_type == LyXRC::ISO_10646_1)
+ font.setLanguage(english_language);
if (candisp) {
int asc = ascent(bv, font);
int desc = descent(bv, font);
int wid = width(bv, font);
- float x2 = x + (Rbearing(font) - Lbearing(font)) / 2.0;
+ float x2 = x + (rbearing(font) - lbearing(font)) / 2.0;
float hg;
int y;
if (plusasc) {
pain.fillRectangle(int(x + tmpx), tmpvar, wid,
lyxfont::ascent('i', font) -
lyxfont::ascent('x', font) - 1,
- LColor::background);
+ backgroundColor());
// the five lines below is a simple hack to
// make the display of accent 'i' and 'j'
// better. It makes the accent be written
case UMLAUT: // umlaut
{
pain.text(int(x2 - (lyxfont::rbearing('¨', font) - lyxfont::lbearing('¨', font)) / 2),
- baseline - lyxfont::ascent(ic, font) - lyxfont::descent('¨', font) - ( lyxfont::ascent('¨', font) + lyxfont::descent('¨', font)) / 2,
+ baseline - lyxfont::ascent(ic, font) - lyxfont::descent('¨', font) - (lyxfont::ascent('¨', font) + lyxfont::descent('¨', font)) / 2,
'¨', font);
break;
}
baseline - ascent(bv, font) + 1,
width(bv, font) - 2,
ascent(bv, font)
- + descent(bv, font) - 2);
+ + descent(bv, font) - 2,
+ backgroundColor());
pain.rectangle(int(x + 1), baseline - ascent(bv, font) + 1,
width(bv, font) - 2,
ascent(bv, font) + descent(bv, font) - 2);
}
-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();
+ lex.eatLine();
+ contents = lex.getString();
checkContents();
}
-int InsetLatexAccent::Latex(Buffer const *, ostream & os,
+int InsetLatexAccent::latex(Buffer const *, ostream & os,
bool /*fragile*/, bool/*fs*/) const
{
os << contents;
}
-int InsetLatexAccent::Ascii(Buffer const *, ostream & os) 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) const
+int InsetLatexAccent::docbook(Buffer const *, ostream & os) const
{
os << contents;
return 0;
}
-bool InsetLatexAccent::Deletable() const
+bool InsetLatexAccent::deletable() const
{
return true;
}
-bool InsetLatexAccent::DirectWrite() const
+bool InsetLatexAccent::directWrite() const
{
return true;
}
-Inset * InsetLatexAccent::Clone() const
+Inset * InsetLatexAccent::clone(Buffer const &, bool) const
{
return new InsetLatexAccent(contents);
}
-Inset::Code InsetLatexAccent::LyxCode() const
+Inset::Code InsetLatexAccent::lyxCode() const
{
return Inset::ACCENT_CODE;
}