X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Finsets%2Finsetspecialchar.C;h=8caa469bfebcb8ef3c215c006d2fd9843b1d9c83;hb=3c8aba3b556871fb1100a2f98cd93d5d4e3f70c9;hp=1792545ea2cd8689828c99e776c8a795d725ab57;hpb=def72111a5ac739cf8c5377a67adeee64c37e1ab;p=lyx.git diff --git a/src/insets/insetspecialchar.C b/src/insets/insetspecialchar.C index 1792545ea2..8caa469bfe 100644 --- a/src/insets/insetspecialchar.C +++ b/src/insets/insetspecialchar.C @@ -17,7 +17,10 @@ #include "debug.h" #include "LaTeXFeatures.h" #include "Painter.h" +#include "font.h" +using std::ostream; +using std::max; InsetSpecialChar::InsetSpecialChar(Kind k) : kind(k) @@ -26,13 +29,13 @@ InsetSpecialChar::InsetSpecialChar(Kind k) int InsetSpecialChar::ascent(Painter &, LyXFont const & font) const { - return font.maxAscent(); + return lyxfont::maxAscent(font); } int InsetSpecialChar::descent(Painter &, LyXFont const & font) const { - return font.maxDescent(); + return lyxfont::maxDescent(font); } @@ -41,31 +44,26 @@ int InsetSpecialChar::width(Painter &, LyXFont const & font) const switch (kind) { case HYPHENATION: { - int w = font.textWidth("-", 1); + int w = lyxfont::width('-', font); if (w > 5) w -= 2; // to make it look shorter return w; } case END_OF_SENTENCE: { - return font.textWidth(".", 1); + return lyxfont::width('.', font); } case LDOTS: { - return font.textWidth(". . .", 5); + return lyxfont::width(". . .", font); } case MENU_SEPARATOR: { - return font.textWidth(" x ", 3); + return lyxfont::width(" x ", font); } -#if 0 - case NEWLINE: - { - } -#endif case PROTECTED_SEPARATOR: { - return font.textWidth("x", 1); + return lyxfont::width('x', font); } } @@ -102,9 +100,9 @@ void InsetSpecialChar::draw(Painter & pain, LyXFont const & f, case MENU_SEPARATOR: { // A triangle the width and height of an 'x' - int w = font.textWidth("x", 1); - int ox = font.textWidth(" ", 1) + int(x); - int h = font.ascent('x'); + int w = lyxfont::width('x', font); + int ox = lyxfont::width(' ', font) + int(x); + int h = lyxfont::ascent('x', font); int xp[4], yp[4]; xp[0] = ox; yp[0] = baseline; @@ -116,15 +114,10 @@ void InsetSpecialChar::draw(Painter & pain, LyXFont const & f, x += width(pain, font); break; } -#if 0 - case NEWLINE: - { - } -#endif case PROTECTED_SEPARATOR: { float w = width(pain, font); - int h = font.ascent('x'); + int h = lyxfont::ascent('x', font); int xp[4], yp[4]; xp[0] = int(x); @@ -156,9 +149,6 @@ void InsetSpecialChar::Write(ostream & os) const case END_OF_SENTENCE: command = "\\@."; break; case LDOTS: command = "\\ldots{}"; break; case MENU_SEPARATOR: command = "\\menuseparator"; break; -#if 0 - case NEWLINE: command = "\\newline"; break; -#endif case PROTECTED_SEPARATOR: command = "\\protected_separator"; break; } @@ -187,93 +177,42 @@ void InsetSpecialChar::Read(LyXLex & lex) } -int InsetSpecialChar::Latex(ostream & os, signed char /*fragile*/) const +int InsetSpecialChar::Latex(ostream & os, bool /*fragile*/, + bool free_space) const { -#ifdef USE_OSTREAM_ONLY switch (kind) { case HYPHENATION: os << "\\-"; break; case END_OF_SENTENCE: os << "\\@."; break; case LDOTS: os << "\\ldots{}"; break; case MENU_SEPARATOR: os << "\\lyxarrow{}"; break; - case PROTECTED_SEPARATOR: os << "~"; break; + case PROTECTED_SEPARATOR: os << (free_space ? " " : "~"); break; } return 0; -#else - string command; - signed char dummy = 0; - Latex(command, dummy); - os << command; - return 0; -#endif } - -#ifndef USE_OSTREAM_ONLY -int InsetSpecialChar::Latex(string & file, signed char /*fragile*/) const +int InsetSpecialChar::Ascii(ostream & os) const { switch (kind) { - case HYPHENATION: file += "\\-"; break; - case END_OF_SENTENCE: file += "\\@."; break; - case LDOTS: file += "\\ldots{}"; break; - case MENU_SEPARATOR: file += "\\lyxarrow{}"; break; - case PROTECTED_SEPARATOR: file += "~"; break; - } - return 0; -} - - -int InsetSpecialChar::Linuxdoc(string & file) const -{ - switch (kind) { - case HYPHENATION: file += ""; break; - case END_OF_SENTENCE: file += ""; break; - case LDOTS: file += "..."; break; - case MENU_SEPARATOR: file += "->"; break; - case PROTECTED_SEPARATOR: file += " "; break; - } - return 0; -} - - -int InsetSpecialChar::DocBook(string & file) const -{ - switch (kind) { - case HYPHENATION: file += ""; break; - case END_OF_SENTENCE: file += ""; break; - case LDOTS: file += "..."; break; - case MENU_SEPARATOR: file += "->"; break; - case PROTECTED_SEPARATOR: file += " "; break; + case HYPHENATION: break; + case END_OF_SENTENCE: os << "."; break; + case LDOTS: os << "..."; break; + case MENU_SEPARATOR: os << "->"; break; + case PROTECTED_SEPARATOR: os << " "; break; } return 0; } -#else int InsetSpecialChar::Linuxdoc(ostream & os) const { - switch (kind) { - case HYPHENATION: os << ""; break; - case END_OF_SENTENCE: os << ""; break; - case LDOTS: os << "..."; break; - case MENU_SEPARATOR: os << "->"; break; - case PROTECTED_SEPARATOR: os << " "; break; - } - return 0; + return Ascii(os); } int InsetSpecialChar::DocBook(ostream & os) const { - switch (kind) { - case HYPHENATION: os << ""; break; - case END_OF_SENTENCE: os << ""; break; - case LDOTS: os << "..."; break; - case MENU_SEPARATOR: os << "->"; break; - case PROTECTED_SEPARATOR: os << " "; break; - } - return 0; + return Ascii(os); } -#endif Inset * InsetSpecialChar::Clone() const