Enlightenment CVS committal Author : xcomputerman Project : e17 Module : libs/ecore
Dir : e17/libs/ecore/src/lib/ecore_x Modified Files: Ecore_X.h ecore_x.c ecore_x_pixmap.c ecore_x_window.c Log Message: Added generic functions to fetch geometry, border width and depth for a drawable, and wrapper functions for windows and pixmaps (overrides previous commit) =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_x/Ecore_X.h,v retrieving revision 1.38 retrieving revision 1.39 diff -u -3 -r1.38 -r1.39 --- Ecore_X.h 21 Feb 2004 21:09:12 -0000 1.38 +++ Ecore_X.h 21 Feb 2004 21:44:48 -0000 1.39 @@ -733,6 +733,8 @@ void ecore_x_window_reparent(Ecore_X_Window win, Ecore_X_Window new_parent, int x, int y); void ecore_x_window_size_get(Ecore_X_Window win, int *w, int *h); void ecore_x_window_geometry_get(Ecore_X_Window win, int *x, int *y, int *w, int *h); +int ecore_x_window_border_size_get(Ecore_X_Window win); +int ecore_x_window_depth_get(Ecore_X_Window win); void ecore_x_window_cursor_show(Ecore_X_Window win, int show); void ecore_x_window_defaults_set(Ecore_X_Window win); @@ -794,6 +796,8 @@ Ecore_X_Pixmap ecore_x_pixmap_new(Ecore_X_Window win, int w, int h, int dep); void ecore_x_pixmap_del(Ecore_X_Pixmap pmap); void ecore_x_pixmap_paste(Ecore_X_Pixmap pmap, Ecore_X_Drawable dest, Ecore_X_GC gc, int sx, int sy, int w, int h, int dx, int dy); +void ecore_x_pixmap_geometry_get(Ecore_X_Pixmap pmap, int *x, int *y, int *w, int *h); +int ecore_x_pixmap_depth_get(Ecore_X_Pixmap pmap); Ecore_X_GC ecore_x_gc_new(Ecore_X_Drawable draw); void ecore_x_gc_del(Ecore_X_GC gc); @@ -801,7 +805,9 @@ /* FIXME: these funcs need categorising */ - + void ecore_x_drawable_geometry_get(Ecore_X_Drawable d, int *x, int *y, int *w, int *h); + int ecore_x_drawable_border_width_get(Ecore_X_Drawable d); + int ecore_x_drawable_depth_get(Ecore_X_Drawable d); Ecore_X_Window *ecore_x_window_root_list(int *num_ret); int ecore_x_window_manage(Ecore_X_Window win); void ecore_x_window_container_manage(Ecore_X_Window win); =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_x/ecore_x.c,v retrieving revision 1.30 retrieving revision 1.31 diff -u -3 -r1.30 -r1.31 --- ecore_x.c 21 Feb 2004 08:58:20 -0000 1.30 +++ ecore_x.c 21 Feb 2004 21:44:48 -0000 1.31 @@ -746,6 +746,56 @@ /* FIXME: these funcs need categorising */ /*****************************************************************************/ +void +ecore_x_drawable_geometry_get(Ecore_X_Drawable d, int *x, int *y, int *w, int *h) +{ + Window dummy_win; + int ret_x, ret_y; + unsigned int ret_w, ret_h, dummy_border, dummy_depth; + + if (!XGetGeometry(_ecore_x_disp, d, &dummy_win, &ret_x, &ret_y, + &ret_w, &ret_h, &dummy_border, &dummy_depth)) + { + ret_x = 0; + ret_y = 0; + ret_w = 0; + ret_h = 0; + } + + if (x) *x = ret_x; + if (y) *y = ret_y; + if (w) *w = (int) ret_w; + if (h) *h = (int) ret_h; +} + +int +ecore_x_drawable_border_width_get(Ecore_X_Drawable d) +{ + Window dummy_win; + int dummy_x, dummy_y; + unsigned int dummy_w, dummy_h, border_ret, dummy_depth; + + if (!XGetGeometry(_ecore_x_disp, d, &dummy_win, &dummy_x, &dummy_y, + &dummy_w, &dummy_h, &border_ret, &dummy_depth)) + border_ret = 0; + + return (int) border_ret; +} + +int +ecore_x_drawable_depth_get(Ecore_X_Drawable d) +{ + Window dummy_win; + int dummy_x, dummy_y; + unsigned int dummy_w, dummy_h, dummy_border, depth_ret; + + if (!XGetGeometry(_ecore_x_disp, d, &dummy_win, &dummy_x, &dummy_y, + &dummy_w, &dummy_h, &dummy_border, &depth_ret)) + depth_ret = 0; + + return (int) depth_ret; +} + Ecore_X_Window * ecore_x_window_root_list(int *num_ret) { =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_x/ecore_x_pixmap.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -3 -r1.3 -r1.4 --- ecore_x_pixmap.c 20 Feb 2004 07:06:29 -0000 1.3 +++ ecore_x_pixmap.c 21 Feb 2004 21:44:48 -0000 1.4 @@ -38,3 +38,27 @@ { XCopyArea(_ecore_x_disp, pmap, dest, gc, sx, sy, w, h, dx, dy); } + +/** + * To be documented. + * + * FIXME: To be fixed. + */ +void +ecore_x_pixmap_geometry_get(Ecore_X_Pixmap pmap, int *x, int *y, int *w, int *h) +{ + if (pmap) + ecore_x_drawable_geometry_get(pmap, x, y, w, h); +} + +/** + * To be documented. + * + * FIXME: To be fixed. + */ +int +ecore_x_pixmap_depth_get(Ecore_X_Pixmap pmap) +{ + return ecore_x_drawable_depth_get(pmap); +} + =================================================================== RCS file: /cvsroot/enlightenment/e17/libs/ecore/src/lib/ecore_x/ecore_x_window.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -3 -r1.13 -r1.14 --- ecore_x_window.c 21 Feb 2004 21:09:13 -0000 1.13 +++ ecore_x_window.c 21 Feb 2004 21:44:48 -0000 1.14 @@ -366,21 +366,12 @@ void ecore_x_window_size_get(Ecore_X_Window win, int *w, int *h) { - Window dummy_win; int dummy_x, dummy_y; - unsigned int ret_w, ret_h, dummy_border, dummy_depth; - if (win == 0) win = DefaultRootWindow(_ecore_x_disp); - ret_w = 0; - ret_h = 0; - if (!XGetGeometry(_ecore_x_disp, win, &dummy_win, &dummy_x, &dummy_y, - &ret_w, &ret_h, &dummy_border, &dummy_depth)) - { - ret_w = 0; - ret_h = 0; - } - if (w) *w = (int)ret_w; - if (h) *h = (int)ret_h; + if (win == 0) + win = DefaultRootWindow(_ecore_x_disp); + + ecore_x_drawable_geometry_get(win, &dummy_x, &dummy_y, w, h); } /** @@ -391,29 +382,34 @@ void ecore_x_window_geometry_get(Ecore_X_Window win, int *x, int *y, int *w, int *h) { - Window dummy_win; - int ret_x, ret_y; - unsigned int ret_w, ret_h, dummy_border, dummy_depth; - if (!win) win = DefaultRootWindow(_ecore_x_disp); - ret_w = 0; - ret_h = 0; - if (!XGetGeometry(_ecore_x_disp, win, &dummy_win, &ret_x, &ret_y, - &ret_w, &ret_h, &dummy_border, &dummy_depth)) - { - ret_x = 0; - ret_y = 0; - ret_w = 0; - ret_h = 0; - } - if (x) *x = ret_x; - if (y) *y = ret_y; - if (w) *w = (int) ret_w; - if (h) *h = (int) ret_h; + ecore_x_drawable_geometry_get(win, x, y, w, h); } - + +/** + * To be documented. + * + * FIXME: To be fixed. + */ +int +ecore_x_window_border_width_get(Ecore_X_Window win) +{ + return ecore_x_drawable_border_width_get(win); +} + +/** + * To be documented. + * + * FIXME: To be fixed. + */ +int +ecore_x_window_depth_get(Ecore_X_Window win) +{ + return ecore_x_drawable_depth_get(win); +} + /** * To be documented. * ------------------------------------------------------- SF.Net is sponsored by: Speed Start Your Linux Apps Now. Build and deploy apps & Web services for Linux with a free DVD software kit from IBM. Click Now! http://ads.osdn.com/?ad_id=1356&alloc_id=3438&op=click _______________________________________________ enlightenment-cvs mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs