glut_winmisc.c
上传用户:xk288cn
上传日期:2007-05-28
资源大小:4876k
文件大小:3k
源码类别:

GIS编程

开发平台:

Visual C++

  1. /* Copyright (c) Mark J. Kilgard, 1994.  */
  2. /* This program is freely distributable without licensing fees
  3.    and is provided without guarantee or warrantee expressed or
  4.    implied. This program is -not- in the public domain. */
  5. #include <stdlib.h>
  6. #include <stdio.h>
  7. #include <string.h>
  8. #include <assert.h>
  9. #if !defined(_WIN32)
  10. #include <X11/Xlib.h>
  11. #include <X11/Xutil.h>
  12. #include <X11/Xatom.h>  /* for XA_STRING atom */
  13. #endif
  14. #include "glutint.h"
  15. /* CENTRY */
  16. void APIENTRY 
  17. glutSetWindowTitle(const char *title)
  18. {
  19.   XTextProperty textprop;
  20.   assert(!__glutCurrentWindow->parent);
  21.   IGNORE_IN_GAME_MODE();
  22.   textprop.value = (unsigned char *) title;
  23.   textprop.encoding = XA_STRING;
  24.   textprop.format = 8;
  25.   textprop.nitems = strlen(title);
  26.   XSetWMName(__glutDisplay,
  27.     __glutCurrentWindow->win, &textprop);
  28.   XFlush(__glutDisplay);
  29. }
  30. void APIENTRY 
  31. glutSetIconTitle(const char *title)
  32. {
  33. #if !defined(_WIN32)
  34.   XTextProperty textprop;
  35.   assert(!__glutCurrentWindow->parent);
  36.   IGNORE_IN_GAME_MODE();
  37.   textprop.value = (unsigned char *) title;
  38.   textprop.encoding = XA_STRING;
  39.   textprop.format = 8;
  40.   textprop.nitems = strlen(title);
  41.   XSetWMIconName(__glutDisplay,
  42.     __glutCurrentWindow->win, &textprop);
  43.   XFlush(__glutDisplay);
  44. #endif
  45. }
  46. void APIENTRY 
  47. glutPositionWindow(int x, int y)
  48. {
  49.   IGNORE_IN_GAME_MODE();
  50.   __glutCurrentWindow->desiredX = x;
  51.   __glutCurrentWindow->desiredY = y;
  52.   __glutCurrentWindow->desiredConfMask |= CWX | CWY;
  53.   __glutPutOnWorkList(__glutCurrentWindow, GLUT_CONFIGURE_WORK);
  54. }
  55. void APIENTRY 
  56. glutReshapeWindow(int w, int h)
  57. {
  58.   IGNORE_IN_GAME_MODE();
  59.   if (w <= 0 || h <= 0)
  60.     __glutWarning("glutReshapeWindow: non-positive width or height not allowed");
  61.   __glutCurrentWindow->desiredWidth = w;
  62.   __glutCurrentWindow->desiredHeight = h;
  63.   __glutCurrentWindow->desiredConfMask |= CWWidth | CWHeight;
  64.   __glutPutOnWorkList(__glutCurrentWindow, GLUT_CONFIGURE_WORK);
  65. }
  66. void APIENTRY 
  67. glutPopWindow(void)
  68. {
  69.   IGNORE_IN_GAME_MODE();
  70.   __glutCurrentWindow->desiredStack = Above;
  71.   __glutCurrentWindow->desiredConfMask |= CWStackMode;
  72.   __glutPutOnWorkList(__glutCurrentWindow, GLUT_CONFIGURE_WORK);
  73. }
  74. void APIENTRY 
  75. glutPushWindow(void)
  76. {
  77.   IGNORE_IN_GAME_MODE();
  78.   __glutCurrentWindow->desiredStack = Below;
  79.   __glutCurrentWindow->desiredConfMask |= CWStackMode;
  80.   __glutPutOnWorkList(__glutCurrentWindow, GLUT_CONFIGURE_WORK);
  81. }
  82. void APIENTRY 
  83. glutIconifyWindow(void)
  84. {
  85.   IGNORE_IN_GAME_MODE();
  86.   assert(!__glutCurrentWindow->parent);
  87.   __glutCurrentWindow->desiredMapState = IconicState;
  88.   __glutPutOnWorkList(__glutCurrentWindow, GLUT_MAP_WORK);
  89. }
  90. void APIENTRY 
  91. glutShowWindow(void)
  92. {
  93.   IGNORE_IN_GAME_MODE();
  94.   __glutCurrentWindow->desiredMapState = NormalState;
  95.   __glutPutOnWorkList(__glutCurrentWindow, GLUT_MAP_WORK);
  96. }
  97. void APIENTRY 
  98. glutHideWindow(void)
  99. {
  100.   IGNORE_IN_GAME_MODE();
  101.   __glutCurrentWindow->desiredMapState = WithdrawnState;
  102.   __glutPutOnWorkList(__glutCurrentWindow, GLUT_MAP_WORK);
  103. }
  104. /* ENDCENTRY */