|
|
1.1 ! root 1: /* ! 2: SDL - Simple DirectMedia Layer ! 3: Copyright (C) 1997-2004 Sam Lantinga ! 4: ! 5: This library is free software; you can redistribute it and/or ! 6: modify it under the terms of the GNU Library General Public ! 7: License as published by the Free Software Foundation; either ! 8: version 2 of the License, or (at your option) any later version. ! 9: ! 10: This library is distributed in the hope that it will be useful, ! 11: but WITHOUT ANY WARRANTY; without even the implied warranty of ! 12: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ! 13: Library General Public License for more details. ! 14: ! 15: You should have received a copy of the GNU Library General Public ! 16: License along with this library; if not, write to the Free ! 17: Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ! 18: ! 19: Sam Lantinga ! 20: [email protected] ! 21: */ ! 22: ! 23: #ifdef SAVE_RCSID ! 24: static char rcsid = ! 25: "@(#) $Id: SDL_syswm.h,v 1.1.1.1 2005/11/18 23:23:31 rswindell Exp $"; ! 26: #endif ! 27: ! 28: /* Include file for SDL custom system window manager hooks */ ! 29: ! 30: #ifndef _SDL_syswm_h ! 31: #define _SDL_syswm_h ! 32: ! 33: #include "SDL_version.h" ! 34: ! 35: #include "begin_code.h" ! 36: /* Set up for C function definitions, even when using C++ */ ! 37: #ifdef __cplusplus ! 38: extern "C" { ! 39: #endif ! 40: ! 41: /* Your application has access to a special type of event 'SDL_SYSWMEVENT', ! 42: which contains window-manager specific information and arrives whenever ! 43: an unhandled window event occurs. This event is ignored by default, but ! 44: you can enable it with SDL_EventState() ! 45: */ ! 46: #ifdef SDL_PROTOTYPES_ONLY ! 47: struct SDL_SysWMinfo; ! 48: typedef struct SDL_SysWMinfo SDL_SysWMinfo; ! 49: #else ! 50: ! 51: /* This is the structure for custom window manager events */ ! 52: #if (defined(unix) || defined(__unix__) || defined(_AIX) || defined(__OpenBSD__) || defined(__NetBSD__)) && \ ! 53: (!defined(DISABLE_X11) && !defined(__CYGWIN32__) && !defined(ENABLE_NANOX) && \ ! 54: !defined(__QNXNTO__)) ! 55: /* AIX is unix, of course, but the native compiler CSet doesn't define unix */ ! 56: #include <X11/Xlib.h> ! 57: #include <X11/Xatom.h> ! 58: ! 59: /* These are the various supported subsystems under UNIX */ ! 60: typedef enum { ! 61: SDL_SYSWM_X11 ! 62: } SDL_SYSWM_TYPE; ! 63: ! 64: /* The UNIX custom event structure */ ! 65: struct SDL_SysWMmsg { ! 66: SDL_version version; ! 67: SDL_SYSWM_TYPE subsystem; ! 68: union { ! 69: XEvent xevent; ! 70: } event; ! 71: }; ! 72: ! 73: /* The UNIX custom window manager information structure. ! 74: When this structure is returned, it holds information about which ! 75: low level system it is using, and will be one of SDL_SYSWM_TYPE. ! 76: */ ! 77: typedef struct SDL_SysWMinfo { ! 78: SDL_version version; ! 79: SDL_SYSWM_TYPE subsystem; ! 80: union { ! 81: struct { ! 82: Display *display; /* The X11 display */ ! 83: Window window; /* The X11 display window */ ! 84: /* These locking functions should be called around ! 85: any X11 functions using the display variable. ! 86: They lock the event thread, so should not be ! 87: called around event functions or from event filters. ! 88: */ ! 89: void (*lock_func)(void); ! 90: void (*unlock_func)(void); ! 91: ! 92: /* Introduced in SDL 1.0.2 */ ! 93: Window fswindow; /* The X11 fullscreen window */ ! 94: Window wmwindow; /* The X11 managed input window */ ! 95: } x11; ! 96: } info; ! 97: } SDL_SysWMinfo; ! 98: ! 99: #elif defined(ENABLE_NANOX) ! 100: #include <microwin/nano-X.h> ! 101: ! 102: /* The generic custom event structure */ ! 103: struct SDL_SysWMmsg { ! 104: SDL_version version; ! 105: int data; ! 106: }; ! 107: ! 108: /* The windows custom window manager information structure */ ! 109: typedef struct SDL_SysWMinfo { ! 110: SDL_version version ; ! 111: GR_WINDOW_ID window ; /* The display window */ ! 112: } SDL_SysWMinfo; ! 113: ! 114: #elif defined(WIN32) ! 115: #define WIN32_LEAN_AND_MEAN ! 116: #include <windows.h> ! 117: ! 118: /* The windows custom event structure */ ! 119: struct SDL_SysWMmsg { ! 120: SDL_version version; ! 121: HWND hwnd; /* The window for the message */ ! 122: UINT msg; /* The type of message */ ! 123: WPARAM wParam; /* WORD message parameter */ ! 124: LPARAM lParam; /* LONG message parameter */ ! 125: }; ! 126: ! 127: /* The windows custom window manager information structure */ ! 128: typedef struct SDL_SysWMinfo { ! 129: SDL_version version; ! 130: HWND window; /* The Win32 display window */ ! 131: HGLRC hglrc; /* The OpenGL context, if any */ ! 132: } SDL_SysWMinfo; ! 133: ! 134: #elif defined(__riscos__) ! 135: ! 136: /* RISC OS custom event structure */ ! 137: struct SDL_SysWMmsg { ! 138: SDL_version version; ! 139: int eventCode; /* The window for the message */ ! 140: int pollBlock[64]; ! 141: }; ! 142: ! 143: /* The RISC OS custom window manager information structure */ ! 144: typedef struct SDL_SysWMinfo { ! 145: SDL_version version; ! 146: int wimpVersion; /* Wimp version running under */ ! 147: int taskHandle; /* The RISC OS task handle */ ! 148: int window; /* The RISC OS display window */ ! 149: } SDL_SysWMinfo; ! 150: ! 151: #elif defined(__QNXNTO__) ! 152: #include <sys/neutrino.h> ! 153: #include <Ph.h> ! 154: ! 155: /* The QNX custom event structure */ ! 156: struct SDL_SysWMmsg { ! 157: SDL_version version; ! 158: int data; ! 159: }; ! 160: ! 161: /* The QNX custom window manager information structure */ ! 162: typedef struct SDL_SysWMinfo { ! 163: SDL_version version; ! 164: int data; ! 165: } SDL_SysWMinfo; ! 166: ! 167: #else ! 168: ! 169: /* The generic custom event structure */ ! 170: struct SDL_SysWMmsg { ! 171: SDL_version version; ! 172: int data; ! 173: }; ! 174: ! 175: /* The generic custom window manager information structure */ ! 176: typedef struct SDL_SysWMinfo { ! 177: SDL_version version; ! 178: int data; ! 179: } SDL_SysWMinfo; ! 180: ! 181: #endif /* OS type */ ! 182: ! 183: #endif /* SDL_PROTOTYPES_ONLY */ ! 184: ! 185: /* Function prototypes */ ! 186: /* ! 187: * This function gives you custom hooks into the window manager information. ! 188: * It fills the structure pointed to by 'info' with custom information and ! 189: * returns 1 if the function is implemented. If it's not implemented, or ! 190: * the version member of the 'info' structure is invalid, it returns 0. ! 191: * ! 192: * You typically use this function like this: ! 193: * SDL_SysWMInfo info; ! 194: * SDL_VERSION(&info.version); ! 195: * if ( SDL_GetWMInfo(&info) ) { ... } ! 196: */ ! 197: extern DECLSPEC int SDLCALL SDL_GetWMInfo(SDL_SysWMinfo *info); ! 198: ! 199: ! 200: /* Ends C function definitions when using C++ */ ! 201: #ifdef __cplusplus ! 202: } ! 203: #endif ! 204: #include "close_code.h" ! 205: ! 206: #endif /* _SDL_syswm_h */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.