X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2FFontMetrics.h;h=53f57a2880075b513d35aff12fd674f2319b7c6e;hb=abefdcaf309554ae9ea506affcb84e6c0219128c;hp=808658de03fe860de8c3e057a41633617e32796c;hpb=5ddc612b735317d5b22553a63aad7879503e3950;p=lyx.git diff --git a/src/frontends/FontMetrics.h b/src/frontends/FontMetrics.h index 808658de03..53f57a2880 100644 --- a/src/frontends/FontMetrics.h +++ b/src/frontends/FontMetrics.h @@ -14,7 +14,7 @@ #ifndef FONT_METRICS_H #define FONT_METRICS_H -#include "support/docstring.h" +#include "support/strfwd.h" /** * A class holding helper functions for determining @@ -63,6 +63,9 @@ public: /// return default dimension of the font. /// \warning \c width is set to zero. virtual Dimension const defaultDimension() const = 0; + /// return the em size + virtual int em() const = 0; + /// return the width of the char in the font virtual int width(char_type c) const = 0; /// return the ascent of the char in the font @@ -77,6 +80,19 @@ public: virtual int width(docstring const & s) const = 0; /// FIXME ?? virtual int signedWidth(docstring const & s) const = 0; + /** + * return the x offset of a position in the string. The + * direction of the string is forced, and the returned value + * is from the left edge of the word, not from the start of the string. + */ + virtual int pos2x(docstring const & s, int pos, bool rtl) const = 0; + /** + * return the position in the string for a given x offset. The + * direction of the string is forced, and the returned value + * is from the left edge of the word, not from the start of the string. + * the offset x is updated to match the closest position in the string. + */ + virtual int x2pos(docstring const & s, int & x, bool rtl) const = 0; /// return char dimension for the font. virtual Dimension const dimension(char_type c) const = 0; /** @@ -97,15 +113,10 @@ public: int & descent) const = 0; /// return the maximum descent of the font - inline int maxHeight() const { - return maxAscent() + maxDescent(); - } + inline int maxHeight() const { return maxAscent() + maxDescent(); } /// return the descent of the char in the font - inline int height(char_type c) const - { - return ascent(c) + descent(c); - } + inline int height(char_type c) const { return ascent(c) + descent(c); } /// return the inner width of the char in the font inline int center(char_type c) const {