summaryrefslogtreecommitdiff
path: root/render
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2003-03-17 07:30:30 +0000
committerDana Jansens <danakj@orodu.net>2003-03-17 07:30:30 +0000
commit0c2f95674f56e25e2b74cce506d9d89ec41252a4 (patch)
treeba4ce4035b1e6233c6db85434d695d2e3ef86709 /render
parent6abd9fe80192a2a19b563f20302412520e13b57d (diff)
pass the x,y,w,h to font_draw.
draw the text in the "right" place for now.. no justification yet
Diffstat (limited to 'render')
-rw-r--r--render/font.c9
-rw-r--r--render/font.h2
-rw-r--r--render/render.c2
3 files changed, 9 insertions, 4 deletions
diff --git a/render/font.c b/render/font.c
index 67fd1b7d..b92bafb1 100644
--- a/render/font.c
+++ b/render/font.c
@@ -90,10 +90,15 @@ int font_max_char_width(ObFont *f)
return (signed) f->xftfont->max_advance_width;
}
-void font_draw(XftDraw *d, TextureText *t)
+void font_draw(XftDraw *d, TextureText *t, int x, int y, int w, int h)
{
- int x = 0, y = 0;
XftColor c;
+
+ /* accomidate for areas bigger/smaller than Xft thinks the font is tall */
+ y += (h - t->font->xftfont->height) / 2;
+
+ x += 3; /* XXX figure out X with justification */
+
if (t->shadow) {
c.color.red = 0;
c.color.green = 0;
diff --git a/render/font.h b/render/font.h
index 28a5c5ed..9cb4f2c9 100644
--- a/render/font.h
+++ b/render/font.h
@@ -9,5 +9,5 @@ void font_close(ObFont *f);
int font_measure_string(ObFont *f, const char *str, int shadow, int offset);
int font_height(ObFont *f, int shadow, int offset);
int font_max_char_width(ObFont *f);
-void font_draw(XftDraw *d, TextureText *t);
+void font_draw(XftDraw *d, TextureText *t, int x, int y, int w, int h);
#endif /* __font_h */
diff --git a/render/render.c b/render/render.c
index 481ef098..51c3a9be 100644
--- a/render/render.c
+++ b/render/render.c
@@ -106,7 +106,7 @@ void x_paint(Window win, Appearance *l, int x, int y, int w, int h)
l->xftdraw = XftDrawCreate(ob_display, l->pixmap,
render_visual, render_colormap);
}
- font_draw(l->xftdraw, &l->texture[i].data.text);
+ font_draw(l->xftdraw, &l->texture[i].data.text, x, y, w, h);
break;
case Bitmask:
if (l->texture[i].data.mask.color->gc == None)