X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Futil%2Fwindow.c;h=ac2b40016e9d9f581a250f69aee16e17e7e65ef8;hb=9a6f8801012c62445afd308a733aed5fc3bb7716;hp=98e3075978f65ad2e322f3a1add96807e06f27f6;hpb=a72ae04bf96477f11d8bf24baea54596f6d3356b;p=chaz%2Ftint2 diff --git a/src/util/window.c b/src/util/window.c index 98e3075..ac2b400 100644 --- a/src/util/window.c +++ b/src/util/window.c @@ -3,7 +3,7 @@ * Tint2 : common windows function * * Copyright (C) 2007 PÃ¥l Staurland (staura@gmail.com) -* Modified (C) 2008 thierry lorthiois (lorthiois@bbsoft.fr) +* Modified (C) 2008 thierry lorthiois (lorthiois@bbsoft.fr) from Omega distribution * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License version 2 @@ -203,6 +203,26 @@ int server_get_number_of_desktop () } +GSList *server_get_name_of_desktop () +{ + int count, j; + GSList *list = NULL; + gchar *data_ptr, *ptr; + data_ptr = server_get_property (server.root_win, server.atom._NET_DESKTOP_NAMES, server.atom.UTF8_STRING, &count); + if (data_ptr) { + list = g_slist_append(list, g_strdup(data_ptr)); + for (j = 0; j < count-1; j++) { + if (*(data_ptr + j) == '\0') { + ptr = (gchar*)data_ptr + j + 1; + list = g_slist_append(list, g_strdup(ptr)); + } + } + XFree(data_ptr); + } + return list; +} + + int server_get_current_desktop () { return get_property32(server.root_win, server.atom._NET_CURRENT_DESKTOP, XA_CARDINAL); @@ -310,3 +330,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); +} + +