]> Dogcows Code - chaz/tint2/blobdiff - src/util/window.c
desktop name : last step
[chaz/tint2] / src / util / window.c
index 98e3075978f65ad2e322f3a1add96807e06f27f6..ac2b40016e9d9f581a250f69aee16e17e7e65ef8 100644 (file)
@@ -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);
+}
+
+
This page took 0.023978 seconds and 4 git commands to generate.