home *** CD-ROM | disk | FTP | other *** search
/ Geek 6 / Geek-006.iso / linux / video / xmovie-1.5.3.tar.gz / xmovie-1.5.3.tar / xmovie-1.5.3 / guicast / bcdisplayinfo.C < prev    next >
C/C++ Source or Header  |  2000-11-29  |  2KB  |  84 lines

  1. #include "bcdisplayinfo.h"
  2.  
  3.  
  4. BC_DisplayInfo::BC_DisplayInfo(char *display_name)
  5. {
  6.     init_window(display_name);
  7. }
  8.  
  9. BC_DisplayInfo::~BC_DisplayInfo()
  10. {
  11.     XCloseDisplay(display);
  12. }
  13.  
  14.  
  15. void BC_DisplayInfo::parse_geometry(char *geom, int *x, int *y, int *width, int *height)
  16. {
  17.     XParseGeometry(geom, x, y, (unsigned int*)width, (unsigned int*)height);
  18. }
  19.  
  20. void BC_DisplayInfo::init_window(char *display_name)
  21. {
  22.     if(display_name && display_name[0] == 0) display_name = NULL;
  23.     if((display = XOpenDisplay(display_name)) == NULL)
  24.     {
  25.           printf("cannot connect to X server.\n");
  26.           if(getenv("DISPLAY") == NULL)
  27.             printf("'DISPLAY' environment variable not set.\n");
  28.           exit(-1);
  29.      }
  30.     
  31.     screen = DefaultScreen(display);
  32.     rootwin = RootWindow(display, screen);
  33.     vis = DefaultVisual(display, screen);
  34. }
  35.  
  36.  
  37. int BC_DisplayInfo::get_root_w()
  38. {
  39.     Screen *screen_ptr = XDefaultScreenOfDisplay(display);
  40.     return WidthOfScreen(screen_ptr);
  41. }
  42.  
  43. int BC_DisplayInfo::get_root_h()
  44. {
  45.     Screen *screen_ptr = XDefaultScreenOfDisplay(display);
  46.     return HeightOfScreen(screen_ptr);
  47. }
  48.  
  49. int BC_DisplayInfo::get_abs_cursor_x()
  50. {
  51.     int abs_x, abs_y, win_x, win_y;
  52.     unsigned int temp_mask;
  53.     Window temp_win;
  54.  
  55.     XQueryPointer(display, 
  56.        rootwin, 
  57.        &temp_win, 
  58.        &temp_win,
  59.        &abs_x, 
  60.        &abs_y, 
  61.        &win_x, 
  62.        &win_y, 
  63.        &temp_mask);
  64.     return abs_x;
  65. }
  66.  
  67. int BC_DisplayInfo::get_abs_cursor_y()
  68. {
  69.     int abs_x, abs_y, win_x, win_y;
  70.     unsigned int temp_mask;
  71.     Window temp_win;
  72.  
  73.     XQueryPointer(display, 
  74.        rootwin, 
  75.        &temp_win, 
  76.        &temp_win,
  77.        &abs_x, 
  78.        &abs_y, 
  79.        &win_x, 
  80.        &win_y, 
  81.        &temp_mask);
  82.     return abs_y;
  83. }
  84.