home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / evbl0627.zip / everblue_20010627.zip / x11 / Xlib_Geometry.c < prev    next >
C/C++ Source or Header  |  1999-11-02  |  1KB  |  39 lines

  1. /* The Everblue Project 1999 */
  2.  
  3. #include "Xlib_private.h"
  4.  
  5. Status XGetGeometry(display, d, root_return, x_return, y_return, width_return,
  6.                       height_return, border_width_return, depth_return)
  7. Display *display;
  8. Drawable d;
  9. Window *root_return;
  10. int *x_return, *y_return;
  11. unsigned int *width_return, *height_return;
  12. unsigned int *border_width_return;
  13. unsigned int *depth_return;
  14. {
  15.     GC gc = XCreateGC(display, d, 0, NULL);
  16.     HPS hps = 0;
  17.     DBUG_ENTER("XGetGeometry");
  18.  
  19.     if(gc)
  20.         hps = (HPS)((Xlib_GC *)gc)->gid;
  21.     else
  22.         DBUG_RETURN(False);
  23.  
  24.     if((HWND)d == hwndDesktop || ((Xlib_GC *)gc)->pixmap) {
  25.         *x_return = *y_return = *border_width_return = 0;
  26.     } else if(((Xlib_GC *)gc)->winattrib) {
  27.         *border_width_return = ((Xlib_GC *)gc)->winattrib->winattrib.border_width;
  28.         *x_return = ((Xlib_GC *)gc)->cp.x;
  29.         *y_return = ((Xlib_GC *)gc)->cp.y;
  30.     } else {
  31.         return BadDrawable;
  32.     }
  33.  
  34.     *root_return = (Window)hwndDesktop;
  35.     Xlib_GetDrawableInfo(d, gc, &hps, GC_NOPATH, (long *)width_return, (long *)height_return);
  36.     *depth_return = DefaultScreenOfDisplay(display)->root_depth;
  37.     XFreeGC(display, gc);
  38.     DBUG_RETURN(True);
  39. }