home *** CD-ROM | disk | FTP | other *** search
/ Dream 52 / Amiga_Dream_52.iso / Linux / Divers / xgalaga-2_0_tar.gz / xgalaga-2_0_tar / xgalaga-2.0 / libsprite / mapwindow.c < prev    next >
C/C++ Source or Header  |  1998-04-12  |  2KB  |  117 lines

  1. #include "allincludes.h"
  2.  
  3. void
  4. W_MapWindow(window)
  5.     W_Window window;
  6. {
  7.     struct window *win;
  8.  
  9. #ifdef DEBUG
  10.     printf("Mapping %d\n", window);
  11. #endif
  12.     win = W_Void2Window(window);
  13.     if(win->type != WIN_BORDER && win->borderwin) {
  14.       W_MapWindow(win->borderwin);
  15.     }
  16.     if (win->mapped)
  17.     return;
  18.     win->mapped = 1;
  19.     XMapRaised(W_Display, win->window);
  20. }
  21.  
  22. void
  23. W_UnmapWindow(window)
  24.     W_Window window;
  25. {
  26.     struct window *win;
  27.  
  28. #ifdef DEBUG
  29.     printf("UnMapping %d\n", window);
  30. #endif
  31.     win = W_Void2Window(window);
  32.     if (win->mapped == 0)
  33.     return;
  34.     win->mapped = 0;
  35.     XUnmapWindow(W_Display, win->window);
  36.     if(win->type != WIN_BORDER && win->borderwin) {
  37.       W_UnmapWindow(win->borderwin);
  38.     }
  39. }
  40.  
  41. int
  42. W_IsMapped(window)
  43.     W_Window window;
  44. {
  45.     struct window *win;
  46.  
  47.     win = W_Void2Window(window);
  48.     if (win == NULL)
  49.     return (0);
  50.     return (win->mapped);
  51. }
  52.  
  53. static void
  54. deleteWindow(window)
  55.     struct window *window;
  56. {
  57.     struct windowlist **rm;
  58.     struct windowlist *temp;
  59.  
  60.     rm = &hashtable[hash(window->window)];
  61.     while (*rm != NULL && (*rm)->window != window) {
  62.     rm = &((*rm)->next);
  63.     }
  64.     if (*rm == NULL) {
  65.     printf("Attempt to delete non-existent window!\n");
  66.     return;
  67.     }
  68.     temp = *rm;
  69.     *rm = temp->next;
  70.     free((char *) temp);
  71. }
  72.  
  73. void
  74. W_DestroyWindow(window)
  75.     W_Window window;
  76. {
  77.     struct window *win;
  78.  
  79. #ifdef DEBUG
  80.     printf("Destroying %d\n", window);
  81. #endif
  82.     win = W_Void2Window(window);
  83.     deleteWindow(win);
  84.     XDestroyWindow(W_Display, win->window);
  85.     if(win->buffer) XFreePixmap(W_Display, win->buffer);
  86.     if(win->type != WIN_BORDER && win->borderwin) 
  87.       W_DestroyWindow(win->borderwin);
  88.     free((char *) win);
  89. }
  90.  
  91. void
  92. W_ResizeWindow(window, neww, newh)    /* TSH 2/93 */
  93.     W_Window window;
  94.     int     neww, newh;
  95. {
  96.     struct window *win = W_Void2Window(window);
  97.  
  98.     XResizeWindow(W_Display, win->window, 
  99.                   (unsigned int) neww, 
  100.                   (unsigned int) newh);
  101.     /* resize the border to match [BDyess] */
  102.     XResizeWindow(W_Display, W_Void2Window(win->borderwin)->window, 
  103.                   (unsigned int) neww + win->border * 2,
  104.                   (unsigned int) newh + win->border * 2);
  105. }
  106.  
  107. void
  108. W_Deiconify(window)
  109.     W_Window window;
  110. {
  111.     struct window *win;
  112.     win = W_Void2Window(window);
  113.     /* according to ICCCM 4.1.4, this is how you deiconify a window. */
  114.     XMapWindow(W_Display, win->window);
  115. }
  116.  
  117.