-/* This file is part of
- * ======================================================
+/**
+ * \file insetspecialchar.C
+ * This file is part of LyX, the document processor.
+ * Licence details can be found in the file COPYING.
*
- * LyX, The Document Processor
+ * \author Asger Alstrup Nielsen
+ * \author Jean-Marc Lasgouttes
+ * \author Lars Gullik Bjønnes
*
- * Copyright 1997 Asger Alstrup
- *
- * ====================================================== */
+ * Full author contact details are available in file CREDITS
+ */
#include <config.h>
#include "debug.h"
#include "LaTeXFeatures.h"
#include "BufferView.h"
-#include "Painter.h"
-#include "font.h"
+#include "frontends/Painter.h"
+#include "frontends/font_metrics.h"
#include "lyxlex.h"
#include "lyxfont.h"
int InsetSpecialChar::ascent(BufferView *, LyXFont const & font) const
{
- return lyxfont::maxAscent(font);
+ return font_metrics::maxAscent(font);
}
int InsetSpecialChar::descent(BufferView *, LyXFont const & font) const
{
- return lyxfont::maxDescent(font);
+ return font_metrics::maxDescent(font);
}
switch (kind_) {
case HYPHENATION:
{
- int w = lyxfont::width('-', font);
+ int w = font_metrics::width('-', font);
if (w > 5)
w -= 2; // to make it look shorter
return w;
}
case LIGATURE_BREAK:
{
- return lyxfont::width('|', font);
+ return font_metrics::width('|', font);
}
case END_OF_SENTENCE:
{
- return lyxfont::width('.', font);
+ return font_metrics::width('.', font);
}
case LDOTS:
{
- return lyxfont::width(". . .", font);
+ return font_metrics::width(". . .", font);
}
case MENU_SEPARATOR:
{
- return lyxfont::width(" x ", font);
+ return font_metrics::width(" x ", font);
}
case PROTECTED_SEPARATOR:
{
- return lyxfont::width('x', font);
+ return font_metrics::width('x', font);
}
}
case MENU_SEPARATOR:
{
// A triangle the width and height of an 'x'
- int w = lyxfont::width('x', font);
- int ox = lyxfont::width(' ', font) + int(x);
- int h = lyxfont::ascent('x', font);
+ int w = font_metrics::width('x', font);
+ int ox = font_metrics::width(' ', font) + int(x);
+ int h = font_metrics::ascent('x', font);
int xp[4], yp[4];
xp[0] = ox; yp[0] = baseline;
case PROTECTED_SEPARATOR:
{
float w = width(bv, font);
- int h = lyxfont::ascent('x', font);
+ int h = font_metrics::ascent('x', font);
int xp[4], yp[4];
xp[0] = int(x);
command = "\\menuseparator";
break;
case PROTECTED_SEPARATOR:
- //command = "\\protected_separator";
command = "~";
break;
}
kind_ = LDOTS;
else if (command == "\\menuseparator")
kind_ = MENU_SEPARATOR;
- else if (command == "\\protected_separator"
- || command == "~")
+ else if (command == "~")
kind_ = PROTECTED_SEPARATOR;
else
lex.printError("InsetSpecialChar: Unknown kind: `$$Token'");
}
-int InsetSpecialChar::docbook(Buffer const *, ostream & os) const
+int InsetSpecialChar::docbook(Buffer const *, ostream & os, bool) const
{
switch (kind_) {
case HYPHENATION:
bool InsetSpecialChar::isLineSeparator() const
{
+#if 0
+ // this would be nice, but it does not work, since
+ // Paragraph::stripLeadingSpaces nukes the characters which
+ // have this property. I leave the code here, since it should
+ // eventually be made to work. (JMarc 20020327)
return kind_ == HYPHENATION || kind_ == MENU_SEPARATOR;
+#else
+ return false;
+#endif
}