aboutsummaryrefslogtreecommitdiffstats
path: root/xutil.c
diff options
context:
space:
mode:
Diffstat (limited to 'xutil.c')
-rw-r--r--xutil.c22
1 files changed, 21 insertions, 1 deletions
diff --git a/xutil.c b/xutil.c
index 0d22aa3..e8b8549 100644
--- a/xutil.c
+++ b/xutil.c
@@ -15,7 +15,7 @@
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
- * $OpenBSD: xutil.c,v 1.62 2013/05/19 23:09:59 okan Exp $
+ * $OpenBSD: xutil.c,v 1.63 2013/05/19 23:38:21 okan Exp $
*/
#include <sys/param.h>
@@ -429,3 +429,23 @@ xu_xorcolor(XftColor a, XftColor b, XftColor *r)
r->color.blue = a.color.blue ^ b.color.blue;
r->color.alpha = 0xffff;
}
+
+int
+xu_xft_width(XftFont *xftfont, const char *text, int len)
+{
+ XGlyphInfo extents;
+
+ XftTextExtentsUtf8(X_Dpy, xftfont, (const FcChar8*)text,
+ len, &extents);
+
+ return (extents.xOff);
+}
+
+void
+xu_xft_draw(struct screen_ctx *sc, const char *text,
+ Drawable d, int color, int x, int y)
+{
+ XftDrawChange(sc->xftdraw, d);
+ XftDrawStringUtf8(sc->xftdraw, &sc->xftcolor[color], sc->xftfont,
+ x, y, (const FcChar8*)text, strlen(text));
+}