+ /**
+ * 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;