virtual Dimension const defaultDimension() const = 0;
/// return the em size
virtual int em() const = 0;
+ /// return the x height
+ virtual int xHeight() const = 0;
+ /// return the width of a line for underlining
+ virtual int lineWidth() const = 0;
+ /// return the distance from the base line to where an underline
+ /// should be drawn.
+ virtual int underlinePos() const = 0;
+ /// return the distance from the base line to where the strike out line
+ /// should be drawn.
+ virtual int strikeoutPos() const = 0;
/// return the width of the char in the font
virtual int width(char_type c) const = 0;
int & descent) const = 0;
/**
* fill in width,ascent,descent with the values for the
- * given string in the font for a button.
+ * given string in the font for a button with given offset.
*/
virtual void buttonText(docstring const & str,
+ const int offset,
int & width,
int & ascent,
int & descent) const = 0;
inline int center(char_type c) const {
return (rbearing(c) - lbearing(c)) / 2;
}
+
+ /// return the number of expanding characters taken into account for
+ /// increased inter-word spacing during justification
+ virtual int countExpanders(docstring const & str) const = 0;
};