3 * \file NoGuiFontMetrics.h
4 * This file is part of LyX, the document processor.
5 * Licence details can be found in the file COPYING.
7 * \author Abdelrazak Younes
9 * Full author contact details are available in file CREDITS.
12 #ifndef LYX_NO_GUI_FONT_METRICS_H
13 #define LYX_NO_GUI_FONT_METRICS_H
15 #include "frontends/FontMetrics.h"
17 #include "dimension.h"
19 #include "support/docstring.h"
24 class NoGuiFontMetrics : public FontMetrics
30 virtual ~NoGuiFontMetrics() {}
32 virtual int maxAscent() const { return 1; }
34 virtual int maxDescent() const { return 1; }
36 virtual Dimension const defaultDimension() const { return Dimension(1, 1, 1); }
38 virtual int width(char_type) const { return 1; }
40 virtual int ascent(char_type) const { return 1; }
42 int descent(char_type) const { return 1; }
44 virtual int lbearing(char_type) const { return 1; }
46 virtual int rbearing(char_type) const { return 1; }
48 virtual int width(char_type const *, size_t n) const { return n; }
50 virtual int signedWidth(docstring const & s) const
52 if (s.size() && s[0] == '-')
53 return -FontMetrics::width(s.substr(1, s.length() - 1));
54 return FontMetrics::width(s);
57 virtual Dimension const dimension(char_type) const { return Dimension(1, 1, 1); }
59 virtual void rectText(docstring const &,
60 int & /*width*/, int & /*ascent*/, int & /*descent*/) const {}
62 virtual void buttonText(docstring const &,
63 int & /*width*/, int & /*ascent*/, int & /*descent*/) const {}
66 } // namespace frontend
69 #endif // LYX_NO_GUI_FONT_METRICS_H