Mercurial > sdl-ios-xcode
annotate include/SDL_syswm.h @ 1358:c71e05b4dc2e
More header massaging... works great on Windows. ;-)
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Fri, 10 Feb 2006 06:48:43 +0000 |
parents | 67114343400d |
children | 19418e4422cb |
rev | line source |
---|---|
0 | 1 /* |
2 SDL - Simple DirectMedia Layer | |
1312
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
1133
diff
changeset
|
3 Copyright (C) 1997-2006 Sam Lantinga |
0 | 4 |
5 This library is free software; you can redistribute it and/or | |
1312
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
1133
diff
changeset
|
6 modify it under the terms of the GNU Lesser General Public |
0 | 7 License as published by the Free Software Foundation; either |
1312
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
1133
diff
changeset
|
8 version 2.1 of the License, or (at your option) any later version. |
0 | 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 | |
1312
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
1133
diff
changeset
|
13 Lesser General Public License for more details. |
0 | 14 |
1312
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
1133
diff
changeset
|
15 You should have received a copy of the GNU Lesser General Public |
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
1133
diff
changeset
|
16 License along with this library; if not, write to the Free Software |
c9b51268668f
Updated copyright information and removed rcs id lines (problematic in branch merges)
Sam Lantinga <slouken@libsdl.org>
parents:
1133
diff
changeset
|
17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
0 | 18 |
19 Sam Lantinga | |
251
b8688cfdc232
Updated the headers with the correct e-mail address
Sam Lantinga <slouken@libsdl.org>
parents:
94
diff
changeset
|
20 slouken@libsdl.org |
0 | 21 */ |
22 | |
23 /* Include file for SDL custom system window manager hooks */ | |
24 | |
25 #ifndef _SDL_syswm_h | |
26 #define _SDL_syswm_h | |
27 | |
1356
67114343400d
*** empty log message ***
Sam Lantinga <slouken@libsdl.org>
parents:
1330
diff
changeset
|
28 #include "SDL_stdinc.h" |
1358
c71e05b4dc2e
More header massaging... works great on Windows. ;-)
Sam Lantinga <slouken@libsdl.org>
parents:
1356
diff
changeset
|
29 #include "SDL_error.h" |
0 | 30 #include "SDL_version.h" |
31 | |
32 #include "begin_code.h" | |
33 /* Set up for C function definitions, even when using C++ */ | |
34 #ifdef __cplusplus | |
35 extern "C" { | |
36 #endif | |
37 | |
38 /* Your application has access to a special type of event 'SDL_SYSWMEVENT', | |
39 which contains window-manager specific information and arrives whenever | |
40 an unhandled window event occurs. This event is ignored by default, but | |
41 you can enable it with SDL_EventState() | |
42 */ | |
43 #ifdef SDL_PROTOTYPES_ONLY | |
44 struct SDL_SysWMinfo; | |
45 typedef struct SDL_SysWMinfo SDL_SysWMinfo; | |
46 #else | |
47 | |
1133
609c060fd2a2
The MacOSX Carbon/Cocoa/X11 all in one library patch. Relevant emails:
Ryan C. Gordon <icculus@icculus.org>
parents:
1035
diff
changeset
|
48 #if defined(__APPLE__) && defined(__MACH__) |
609c060fd2a2
The MacOSX Carbon/Cocoa/X11 all in one library patch. Relevant emails:
Ryan C. Gordon <icculus@icculus.org>
parents:
1035
diff
changeset
|
49 // conflicts with Quickdraw.h |
609c060fd2a2
The MacOSX Carbon/Cocoa/X11 all in one library patch. Relevant emails:
Ryan C. Gordon <icculus@icculus.org>
parents:
1035
diff
changeset
|
50 #define Cursor X11Cursor |
609c060fd2a2
The MacOSX Carbon/Cocoa/X11 all in one library patch. Relevant emails:
Ryan C. Gordon <icculus@icculus.org>
parents:
1035
diff
changeset
|
51 #endif |
609c060fd2a2
The MacOSX Carbon/Cocoa/X11 all in one library patch. Relevant emails:
Ryan C. Gordon <icculus@icculus.org>
parents:
1035
diff
changeset
|
52 |
0 | 53 /* This is the structure for custom window manager events */ |
1133
609c060fd2a2
The MacOSX Carbon/Cocoa/X11 all in one library patch. Relevant emails:
Ryan C. Gordon <icculus@icculus.org>
parents:
1035
diff
changeset
|
54 #if (defined(unix) || defined(__unix__) || defined(_AIX) || \ |
609c060fd2a2
The MacOSX Carbon/Cocoa/X11 all in one library patch. Relevant emails:
Ryan C. Gordon <icculus@icculus.org>
parents:
1035
diff
changeset
|
55 defined(__OpenBSD__) || defined(__NetBSD__) || \ |
609c060fd2a2
The MacOSX Carbon/Cocoa/X11 all in one library patch. Relevant emails:
Ryan C. Gordon <icculus@icculus.org>
parents:
1035
diff
changeset
|
56 (defined(__APPLE__) && defined(__MACH__))) && \ |
870
95f22f17e44a
Date: Wed, 3 Mar 2004 12:44:21 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
769
diff
changeset
|
57 (!defined(DISABLE_X11) && !defined(__CYGWIN32__) && !defined(ENABLE_NANOX) && \ |
1133
609c060fd2a2
The MacOSX Carbon/Cocoa/X11 all in one library patch. Relevant emails:
Ryan C. Gordon <icculus@icculus.org>
parents:
1035
diff
changeset
|
58 !defined(__QNXNTO__)) |
0 | 59 /* AIX is unix, of course, but the native compiler CSet doesn't define unix */ |
60 #include <X11/Xlib.h> | |
61 #include <X11/Xatom.h> | |
62 | |
1133
609c060fd2a2
The MacOSX Carbon/Cocoa/X11 all in one library patch. Relevant emails:
Ryan C. Gordon <icculus@icculus.org>
parents:
1035
diff
changeset
|
63 #if defined(__APPLE__) && defined(__MACH__) |
609c060fd2a2
The MacOSX Carbon/Cocoa/X11 all in one library patch. Relevant emails:
Ryan C. Gordon <icculus@icculus.org>
parents:
1035
diff
changeset
|
64 // matches the re-define above |
609c060fd2a2
The MacOSX Carbon/Cocoa/X11 all in one library patch. Relevant emails:
Ryan C. Gordon <icculus@icculus.org>
parents:
1035
diff
changeset
|
65 #undef Cursor |
609c060fd2a2
The MacOSX Carbon/Cocoa/X11 all in one library patch. Relevant emails:
Ryan C. Gordon <icculus@icculus.org>
parents:
1035
diff
changeset
|
66 #endif |
609c060fd2a2
The MacOSX Carbon/Cocoa/X11 all in one library patch. Relevant emails:
Ryan C. Gordon <icculus@icculus.org>
parents:
1035
diff
changeset
|
67 |
0 | 68 /* These are the various supported subsystems under UNIX */ |
69 typedef enum { | |
70 SDL_SYSWM_X11 | |
71 } SDL_SYSWM_TYPE; | |
72 | |
73 /* The UNIX custom event structure */ | |
74 struct SDL_SysWMmsg { | |
75 SDL_version version; | |
76 SDL_SYSWM_TYPE subsystem; | |
77 union { | |
78 XEvent xevent; | |
79 } event; | |
80 }; | |
81 | |
82 /* The UNIX custom window manager information structure. | |
83 When this structure is returned, it holds information about which | |
84 low level system it is using, and will be one of SDL_SYSWM_TYPE. | |
85 */ | |
911
04a403e4ccf5
Date: Mon, 3 May 2004 03:15:01 +0100
Sam Lantinga <slouken@libsdl.org>
parents:
870
diff
changeset
|
86 typedef struct SDL_SysWMinfo { |
0 | 87 SDL_version version; |
88 SDL_SYSWM_TYPE subsystem; | |
89 union { | |
90 struct { | |
91 Display *display; /* The X11 display */ | |
92 Window window; /* The X11 display window */ | |
93 /* These locking functions should be called around | |
94 any X11 functions using the display variable. | |
95 They lock the event thread, so should not be | |
96 called around event functions or from event filters. | |
97 */ | |
98 void (*lock_func)(void); | |
99 void (*unlock_func)(void); | |
100 | |
101 /* Introduced in SDL 1.0.2 */ | |
102 Window fswindow; /* The X11 fullscreen window */ | |
103 Window wmwindow; /* The X11 managed input window */ | |
104 } x11; | |
105 } info; | |
106 } SDL_SysWMinfo; | |
107 | |
30
57bf11a5efd7
Added initial support for Nano-X (thanks Hsieh-Fu!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
108 #elif defined(ENABLE_NANOX) |
57bf11a5efd7
Added initial support for Nano-X (thanks Hsieh-Fu!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
109 #include <microwin/nano-X.h> |
57bf11a5efd7
Added initial support for Nano-X (thanks Hsieh-Fu!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
110 |
57bf11a5efd7
Added initial support for Nano-X (thanks Hsieh-Fu!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
111 /* The generic custom event structure */ |
57bf11a5efd7
Added initial support for Nano-X (thanks Hsieh-Fu!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
112 struct SDL_SysWMmsg { |
57bf11a5efd7
Added initial support for Nano-X (thanks Hsieh-Fu!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
113 SDL_version version; |
57bf11a5efd7
Added initial support for Nano-X (thanks Hsieh-Fu!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
114 int data; |
57bf11a5efd7
Added initial support for Nano-X (thanks Hsieh-Fu!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
115 }; |
57bf11a5efd7
Added initial support for Nano-X (thanks Hsieh-Fu!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
116 |
57bf11a5efd7
Added initial support for Nano-X (thanks Hsieh-Fu!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
117 /* The windows custom window manager information structure */ |
911
04a403e4ccf5
Date: Mon, 3 May 2004 03:15:01 +0100
Sam Lantinga <slouken@libsdl.org>
parents:
870
diff
changeset
|
118 typedef struct SDL_SysWMinfo { |
30
57bf11a5efd7
Added initial support for Nano-X (thanks Hsieh-Fu!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
119 SDL_version version ; |
57bf11a5efd7
Added initial support for Nano-X (thanks Hsieh-Fu!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
120 GR_WINDOW_ID window ; /* The display window */ |
57bf11a5efd7
Added initial support for Nano-X (thanks Hsieh-Fu!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
121 } SDL_SysWMinfo; |
57bf11a5efd7
Added initial support for Nano-X (thanks Hsieh-Fu!)
Sam Lantinga <slouken@lokigames.com>
parents:
0
diff
changeset
|
122 |
0 | 123 #elif defined(WIN32) |
1330
450721ad5436
It's now possible to build SDL without any C runtime at all on Windows,
Sam Lantinga <slouken@libsdl.org>
parents:
1312
diff
changeset
|
124 #include "SDL_windows.h" |
0 | 125 |
126 /* The windows custom event structure */ | |
127 struct SDL_SysWMmsg { | |
128 SDL_version version; | |
129 HWND hwnd; /* The window for the message */ | |
130 UINT msg; /* The type of message */ | |
131 WPARAM wParam; /* WORD message parameter */ | |
132 LPARAM lParam; /* LONG message parameter */ | |
133 }; | |
134 | |
135 /* The windows custom window manager information structure */ | |
911
04a403e4ccf5
Date: Mon, 3 May 2004 03:15:01 +0100
Sam Lantinga <slouken@libsdl.org>
parents:
870
diff
changeset
|
136 typedef struct SDL_SysWMinfo { |
0 | 137 SDL_version version; |
138 HWND window; /* The Win32 display window */ | |
438
f9c5f135a8b9
Added a way to get the Windows OpenGL context in SDL_syswm.h
Sam Lantinga <slouken@libsdl.org>
parents:
337
diff
changeset
|
139 HGLRC hglrc; /* The OpenGL context, if any */ |
0 | 140 } SDL_SysWMinfo; |
141 | |
630
550bccdf04bd
Added initial support for RISC OS (thanks Peter Naulls!)
Sam Lantinga <slouken@libsdl.org>
parents:
471
diff
changeset
|
142 #elif defined(__riscos__) |
550bccdf04bd
Added initial support for RISC OS (thanks Peter Naulls!)
Sam Lantinga <slouken@libsdl.org>
parents:
471
diff
changeset
|
143 |
550bccdf04bd
Added initial support for RISC OS (thanks Peter Naulls!)
Sam Lantinga <slouken@libsdl.org>
parents:
471
diff
changeset
|
144 /* RISC OS custom event structure */ |
550bccdf04bd
Added initial support for RISC OS (thanks Peter Naulls!)
Sam Lantinga <slouken@libsdl.org>
parents:
471
diff
changeset
|
145 struct SDL_SysWMmsg { |
550bccdf04bd
Added initial support for RISC OS (thanks Peter Naulls!)
Sam Lantinga <slouken@libsdl.org>
parents:
471
diff
changeset
|
146 SDL_version version; |
550bccdf04bd
Added initial support for RISC OS (thanks Peter Naulls!)
Sam Lantinga <slouken@libsdl.org>
parents:
471
diff
changeset
|
147 int eventCode; /* The window for the message */ |
550bccdf04bd
Added initial support for RISC OS (thanks Peter Naulls!)
Sam Lantinga <slouken@libsdl.org>
parents:
471
diff
changeset
|
148 int pollBlock[64]; |
550bccdf04bd
Added initial support for RISC OS (thanks Peter Naulls!)
Sam Lantinga <slouken@libsdl.org>
parents:
471
diff
changeset
|
149 }; |
550bccdf04bd
Added initial support for RISC OS (thanks Peter Naulls!)
Sam Lantinga <slouken@libsdl.org>
parents:
471
diff
changeset
|
150 |
1035
974ba6ae0fa3
Date: Wed, 26 Jan 2005 13:37:09 GMT
Sam Lantinga <slouken@libsdl.org>
parents:
1026
diff
changeset
|
151 /* The RISC OS custom window manager information structure */ |
911
04a403e4ccf5
Date: Mon, 3 May 2004 03:15:01 +0100
Sam Lantinga <slouken@libsdl.org>
parents:
870
diff
changeset
|
152 typedef struct SDL_SysWMinfo { |
630
550bccdf04bd
Added initial support for RISC OS (thanks Peter Naulls!)
Sam Lantinga <slouken@libsdl.org>
parents:
471
diff
changeset
|
153 SDL_version version; |
550bccdf04bd
Added initial support for RISC OS (thanks Peter Naulls!)
Sam Lantinga <slouken@libsdl.org>
parents:
471
diff
changeset
|
154 int wimpVersion; /* Wimp version running under */ |
1035
974ba6ae0fa3
Date: Wed, 26 Jan 2005 13:37:09 GMT
Sam Lantinga <slouken@libsdl.org>
parents:
1026
diff
changeset
|
155 int taskHandle; /* The RISC OS task handle */ |
974ba6ae0fa3
Date: Wed, 26 Jan 2005 13:37:09 GMT
Sam Lantinga <slouken@libsdl.org>
parents:
1026
diff
changeset
|
156 int window; /* The RISC OS display window */ |
630
550bccdf04bd
Added initial support for RISC OS (thanks Peter Naulls!)
Sam Lantinga <slouken@libsdl.org>
parents:
471
diff
changeset
|
157 } SDL_SysWMinfo; |
550bccdf04bd
Added initial support for RISC OS (thanks Peter Naulls!)
Sam Lantinga <slouken@libsdl.org>
parents:
471
diff
changeset
|
158 |
870
95f22f17e44a
Date: Wed, 3 Mar 2004 12:44:21 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
769
diff
changeset
|
159 #elif defined(__QNXNTO__) |
95f22f17e44a
Date: Wed, 3 Mar 2004 12:44:21 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
769
diff
changeset
|
160 #include <sys/neutrino.h> |
95f22f17e44a
Date: Wed, 3 Mar 2004 12:44:21 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
769
diff
changeset
|
161 #include <Ph.h> |
95f22f17e44a
Date: Wed, 3 Mar 2004 12:44:21 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
769
diff
changeset
|
162 |
95f22f17e44a
Date: Wed, 3 Mar 2004 12:44:21 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
769
diff
changeset
|
163 /* The QNX custom event structure */ |
95f22f17e44a
Date: Wed, 3 Mar 2004 12:44:21 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
769
diff
changeset
|
164 struct SDL_SysWMmsg { |
95f22f17e44a
Date: Wed, 3 Mar 2004 12:44:21 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
769
diff
changeset
|
165 SDL_version version; |
95f22f17e44a
Date: Wed, 3 Mar 2004 12:44:21 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
769
diff
changeset
|
166 int data; |
95f22f17e44a
Date: Wed, 3 Mar 2004 12:44:21 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
769
diff
changeset
|
167 }; |
95f22f17e44a
Date: Wed, 3 Mar 2004 12:44:21 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
769
diff
changeset
|
168 |
95f22f17e44a
Date: Wed, 3 Mar 2004 12:44:21 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
769
diff
changeset
|
169 /* The QNX custom window manager information structure */ |
911
04a403e4ccf5
Date: Mon, 3 May 2004 03:15:01 +0100
Sam Lantinga <slouken@libsdl.org>
parents:
870
diff
changeset
|
170 typedef struct SDL_SysWMinfo { |
870
95f22f17e44a
Date: Wed, 3 Mar 2004 12:44:21 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
769
diff
changeset
|
171 SDL_version version; |
95f22f17e44a
Date: Wed, 3 Mar 2004 12:44:21 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
769
diff
changeset
|
172 int data; |
95f22f17e44a
Date: Wed, 3 Mar 2004 12:44:21 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
769
diff
changeset
|
173 } SDL_SysWMinfo; |
95f22f17e44a
Date: Wed, 3 Mar 2004 12:44:21 +0200
Sam Lantinga <slouken@libsdl.org>
parents:
769
diff
changeset
|
174 |
0 | 175 #else |
176 | |
177 /* The generic custom event structure */ | |
178 struct SDL_SysWMmsg { | |
179 SDL_version version; | |
180 int data; | |
181 }; | |
182 | |
183 /* The generic custom window manager information structure */ | |
911
04a403e4ccf5
Date: Mon, 3 May 2004 03:15:01 +0100
Sam Lantinga <slouken@libsdl.org>
parents:
870
diff
changeset
|
184 typedef struct SDL_SysWMinfo { |
0 | 185 SDL_version version; |
186 int data; | |
187 } SDL_SysWMinfo; | |
188 | |
189 #endif /* OS type */ | |
190 | |
191 #endif /* SDL_PROTOTYPES_ONLY */ | |
192 | |
193 /* Function prototypes */ | |
194 /* | |
195 * This function gives you custom hooks into the window manager information. | |
196 * It fills the structure pointed to by 'info' with custom information and | |
197 * returns 1 if the function is implemented. If it's not implemented, or | |
198 * the version member of the 'info' structure is invalid, it returns 0. | |
999
8be85fa59cf3
Added a usage example for SDL_GetWMInfo()
Sam Lantinga <slouken@libsdl.org>
parents:
911
diff
changeset
|
199 * |
8be85fa59cf3
Added a usage example for SDL_GetWMInfo()
Sam Lantinga <slouken@libsdl.org>
parents:
911
diff
changeset
|
200 * You typically use this function like this: |
8be85fa59cf3
Added a usage example for SDL_GetWMInfo()
Sam Lantinga <slouken@libsdl.org>
parents:
911
diff
changeset
|
201 * SDL_SysWMInfo info; |
8be85fa59cf3
Added a usage example for SDL_GetWMInfo()
Sam Lantinga <slouken@libsdl.org>
parents:
911
diff
changeset
|
202 * SDL_VERSION(&info.version); |
8be85fa59cf3
Added a usage example for SDL_GetWMInfo()
Sam Lantinga <slouken@libsdl.org>
parents:
911
diff
changeset
|
203 * if ( SDL_GetWMInfo(&info) ) { ... } |
0 | 204 */ |
337
9154ec9ca3d2
Explicitly specify the SDL API calling convention (C by default)
Sam Lantinga <slouken@libsdl.org>
parents:
297
diff
changeset
|
205 extern DECLSPEC int SDLCALL SDL_GetWMInfo(SDL_SysWMinfo *info); |
0 | 206 |
207 | |
208 /* Ends C function definitions when using C++ */ | |
209 #ifdef __cplusplus | |
210 } | |
211 #endif | |
212 #include "close_code.h" | |
213 | |
214 #endif /* _SDL_syswm_h */ |