X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Ftint2;a=blobdiff_plain;f=src%2Futil%2Fwindow.c;h=046623652a27ec402c407a3c393593f00dccbc39;hp=98e3075978f65ad2e322f3a1add96807e06f27f6;hb=bbec33ce1a15b555a737f2fefe7bdfb6a8881705;hpb=699103e6e9de1b060c80c63326f1782b45dd8f73 diff --git a/src/util/window.c b/src/util/window.c index 98e3075..0466236 100644 --- a/src/util/window.c +++ b/src/util/window.c @@ -310,3 +310,29 @@ void get_text_size(PangoFontDescription *font, int *height_ink, int *height, int } +void get_text_size2(PangoFontDescription *font, int *height_ink, int *height, int *width, int panel_height, int panel_with, char *text, int len) +{ + PangoRectangle rect_ink, rect; + + Pixmap pmap = XCreatePixmap (server.dsp, server.root_win, panel_height, panel_height, server.depth); + + cairo_surface_t *cs = cairo_xlib_surface_create (server.dsp, pmap, server.visual, panel_height, panel_with); + cairo_t *c = cairo_create (cs); + + PangoLayout *layout = pango_cairo_create_layout (c); + pango_layout_set_font_description (layout, font); + pango_layout_set_text (layout, text, len); + + pango_layout_get_pixel_extents(layout, &rect_ink, &rect); + *height_ink = rect_ink.height; + *height = rect.height; + *width = rect.width; + //printf("dimension : %d - %d\n", rect_ink.height, rect.height); + + g_object_unref (layout); + cairo_destroy (c); + cairo_surface_destroy (cs); + XFreePixmap (server.dsp, pmap); +} + +