* <- width ->
* --------------+----------+-------<maxDescent
*
+ * Caution: All char_type and docstring arguments of any method of this class
+ * are no UCS4 chars or strings if the font is a symbol font. They simply
+ * denote the code points of the font instead. You have to keep this in mind
+ * when you implement the methods in a frontend. You must not pass these
+ * parameters to a unicode conversion function in particular.
*/
namespace lyx {
* management.
*
* Note that the methods return *this for convenience.
+ *
+ * Caution: All char_type and docstring arguments of the text drawing
+ * methods of this class are no UCS4 chars or strings if the font is a
+ * symbol font. They simply denote the code points of the font instead.
+ * You have to keep this in mind when you implement the methods in a
+ * frontend. You must not pass these parameters to a unicode conversion
+ * function in particular.
*/
class Painter {
public:
int GuiFontMetrics::width(char_type const * s, size_t ls) const
{
+ // Caution: The following ucs4_to_something conversions work for
+ // symbol fonts only because they are no real conversions but simple
+ // casts in reality.
+
if (ls == 1 && !smallcaps_shape_) {
QChar const c = ucs4_to_qchar(s[0]);
return width(c.unicode());
int QLPainter::text(int x, int y, char_type const * s, size_t ls,
LyXFont const & f)
{
+ // Caution: The following ucs4_to_qstring conversion works for
+ // symbol fonts only because it is no real conversion but a simple
+ // cast in reality.
+
QString str;
ucs4_to_qstring(s, ls, str);
docstring name;
/// name of a inset that handles that macro
docstring inset;
- /// position of the thing in a font
+ /**
+ * The string or symbol to draw.
+ * This is a string of length 1 if \p name is a known symbol, and
+ * the corresponding font is available. In this case it is
+ * NO UCS4 STRING! The only "character" of the string simply denotes
+ * the code point of the symbol in the font. Therefore you have to
+ * be very careful if you pass \c draw to any function that takes a
+ * docstring argument.
+ * If \p name is a known symbol, but the corresponding font is not
+ * available, or if it is a function name, then \c draw contains a
+ * regular UCS4 string (actuallay \c draw == \c name) that is painted
+ * on screen.
+ */
docstring draw;
/// operator/..., fontname e
docstring extra;
- /// how is this called as XML entity?
+ /// how is this called as XML entity in MathML?
docstring xmlname;
/// required LaTeXFeatures
docstring requires;