SDL_gemwm.c
上传用户:sun1608
上传日期:2007-02-02
资源大小:6116k
文件大小:3k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1. /*
  2.     SDL - Simple DirectMedia Layer
  3.     Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002  Sam Lantinga
  4.     This library is free software; you can redistribute it and/or
  5.     modify it under the terms of the GNU Library General Public
  6.     License as published by the Free Software Foundation; either
  7.     version 2 of the License, or (at your option) any later version.
  8.     This library is distributed in the hope that it will be useful,
  9.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  10.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  11.     Library General Public License for more details.
  12.     You should have received a copy of the GNU Library General Public
  13.     License along with this library; if not, write to the Free
  14.     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  15.     Sam Lantinga
  16.     slouken@libsdl.org
  17. */
  18. #ifdef SAVE_RCSID
  19. static char rcsid =
  20.  "@(#) $Id: SDL_gemwm.c,v 1.1 2002/04/22 21:38:05 wmay Exp $";
  21. #endif
  22. /*
  23.  * GEM SDL video driver implementation
  24.  * Window manager functions
  25.  * 
  26.  * Patrice Mandin
  27.  */
  28. /* Mint includes */
  29. #include <gem.h>
  30. #include "SDL_gemwm_c.h"
  31. /* Defines */
  32. #define ICONWIDTH 64
  33. #define ICONHEIGHT 64
  34. /* Functions */
  35. void GEM_SetCaption(_THIS, const char *title, const char *icon)
  36. {
  37. short parm[4];
  38. const char *new_name;
  39. new_name = NULL;
  40. if (title)
  41. GEM_title_name = title;
  42. if (icon)
  43. GEM_icon_name = icon;
  44. /* Is window iconified ? */
  45. parm[0]=0;
  46. if (GEM_wfeatures & (1<<WF_ICONIFY))
  47. wind_get(GEM_handle, WF_ICONIFY, &parm[0], &parm[1], &parm[2], &parm[3]);
  48. if (parm[0]==0) {
  49. /* Change window name */
  50. if (title)
  51. new_name = title;
  52. } else {
  53. /* Change icon name */
  54. if (icon)
  55. new_name = icon;
  56. }
  57. parm[0]= ((unsigned long) new_name)>>16;
  58. parm[1]= ((unsigned long) new_name) & 65535;
  59. if (new_name) {
  60. wind_set(GEM_handle, WF_NAME, parm[0], parm[1], 0, 0);
  61. }
  62. }
  63. void GEM_SetIcon(_THIS, SDL_Surface *icon, Uint8 *mask)
  64. {
  65. if ((GEM_wfeatures & (1<<WF_ICONIFY))==0)
  66. return;
  67. /* Todo */
  68. }
  69. int GEM_IconifyWindow(_THIS)
  70. {
  71. short message[8];
  72. if ((GEM_wfeatures & (1<<WF_ICONIFY))==0)
  73. return 0;
  74. message[0] = WM_ICONIFY;
  75. message[1] = GEM_ap_id;
  76. message[2] = 0;
  77. message[3] = GEM_handle;
  78. message[4] = 0;
  79. message[5] = GEM_desk_h-ICONHEIGHT;
  80. message[6] = ICONWIDTH;
  81. message[7] = ICONHEIGHT;
  82. appl_write(GEM_ap_id, sizeof(message), message);
  83. return 1;
  84. }
  85. SDL_GrabMode GEM_GrabInput(_THIS, SDL_GrabMode mode)
  86. {
  87. return mode;
  88. }