comparison include/SDL_syswm.h @ 3407:d3baf5ac4e37

Partial fix for bug #859 Header file update from Ken for improved doxygen output
author Sam Lantinga <slouken@libsdl.org>
date Mon, 19 Oct 2009 13:31:58 +0000
parents 08574b033f37
children 64ce267332c6
comparison
equal deleted inserted replaced
3406:8ae607392409 3407:d3baf5ac4e37
19 Sam Lantinga 19 Sam Lantinga
20 slouken@libsdl.org 20 slouken@libsdl.org
21 */ 21 */
22 22
23 /** 23 /**
24 * \file SDL_syswm.h 24 * \file SDL_syswm.h
25 * 25 *
26 * Include file for SDL custom system window manager hooks 26 * Include file for SDL custom system window manager hooks.
27 */ 27 */
28 28
29 #ifndef _SDL_syswm_h 29 #ifndef _SDL_syswm_h
30 #define _SDL_syswm_h 30 #define _SDL_syswm_h
31 31
40 /* *INDENT-OFF* */ 40 /* *INDENT-OFF* */
41 extern "C" { 41 extern "C" {
42 /* *INDENT-ON* */ 42 /* *INDENT-ON* */
43 #endif 43 #endif
44 44
45 /* Your application has access to a special type of event 'SDL_SYSWMEVENT', 45 /**
46 which contains window-manager specific information and arrives whenever 46 * \file SDL_syswm.h
47 an unhandled window event occurs. This event is ignored by default, but 47 *
48 you can enable it with SDL_EventState() 48 * Your application has access to a special type of event ::SDL_SYSWMEVENT,
49 */ 49 * which contains window-manager specific information and arrives whenever
50 * an unhandled window event occurs. This event is ignored by default, but
51 * you can enable it with SDL_EventState().
52 */
50 #ifdef SDL_PROTOTYPES_ONLY 53 #ifdef SDL_PROTOTYPES_ONLY
51 struct SDL_SysWMinfo; 54 struct SDL_SysWMinfo;
52 #else 55 #else
53 56
54 /* This is the structure for custom window manager events */ 57 /* This is the structure for custom window manager events */
64 #if defined(__APPLE__) && defined(__MACH__) 67 #if defined(__APPLE__) && defined(__MACH__)
65 /* matches the re-define above */ 68 /* matches the re-define above */
66 #undef Cursor 69 #undef Cursor
67 #endif 70 #endif
68 71
69 /* These are the various supported subsystems under UNIX */ 72 /**
73 * These are the various supported subsystems under UNIX.
74 */
70 typedef enum 75 typedef enum
71 { 76 {
72 SDL_SYSWM_X11 77 SDL_SYSWM_X11
73 } SDL_SYSWM_TYPE; 78 } SDL_SYSWM_TYPE;
74 79
75 /* The UNIX custom event structure */ 80 /**
81 * The UNIX custom event structure.
82 */
76 struct SDL_SysWMmsg 83 struct SDL_SysWMmsg
77 { 84 {
78 SDL_version version; 85 SDL_version version;
79 SDL_SYSWM_TYPE subsystem; 86 SDL_SYSWM_TYPE subsystem;
80 union 87 union
81 { 88 {
82 XEvent xevent; 89 XEvent xevent;
83 } event; 90 } event;
84 }; 91 };
85 92
86 /* The UNIX custom window manager information structure. 93 /**
87 When this structure is returned, it holds information about which 94 * The UNIX custom window manager information structure.
88 low level system it is using, and will be one of SDL_SYSWM_TYPE. 95 *
96 * When this structure is returned, it holds information about which
97 * low level system it is using, and will be one of SDL_SYSWM_TYPE.
89 */ 98 */
90 struct SDL_SysWMinfo 99 struct SDL_SysWMinfo
91 { 100 {
92 SDL_version version; 101 SDL_version version;
93 SDL_SYSWM_TYPE subsystem; 102 SDL_SYSWM_TYPE subsystem;
94 union 103 union
95 { 104 {
96 struct 105 struct
97 { 106 {
98 Display *display; /* The X11 display */ 107 Display *display; /**< The X11 display */
99 Window window; /* The X11 display window */ 108 Window window; /**< The X11 display window */
100 /* These locking functions should be called around 109 /**
101 any X11 functions using the display variable. 110 * These locking functions should be called around
102 They lock the event thread, so should not be 111 * any X11 functions using the display variable.
103 called around event functions or from event filters. 112 * They lock the event thread, so should not be
113 * called around event functions or from event filters.
104 */ 114 */
115 /*@{*/
105 void (*lock_func) (void); 116 void (*lock_func) (void);
106 void (*unlock_func) (void); 117 void (*unlock_func) (void);
107 118 /*@}*/
108 /* Introduced in SDL 1.0.2 */ 119
109 Window fswindow; /* The X11 fullscreen window */ 120 /**
110 Window wmwindow; /* The X11 managed input window */ 121 * Introduced in SDL 1.0.2.
122 */
123 /*@{*/
124 Window fswindow; /**< The X11 fullscreen window */
125 Window wmwindow; /**< The X11 managed input window */
126 /*@}*/
111 } x11; 127 } x11;
112 } info; 128 } info;
113 }; 129 };
114 130
115 #elif defined(SDL_VIDEO_DRIVER_WIN32) 131 #elif defined(SDL_VIDEO_DRIVER_WIN32)
116 #define WIN32_LEAN_AND_MEAN 132 #define WIN32_LEAN_AND_MEAN
117 #include <windows.h> 133 #include <windows.h>
118 134
119 /* The windows custom event structure */ 135 /**
120 struct SDL_SysWMmsg 136 * The windows custom event structure.
121 { 137 */
122 SDL_version version; 138 struct SDL_SysWMmsg
123 HWND hwnd; /* The window for the message */ 139 {
124 UINT msg; /* The type of message */ 140 SDL_version version;
125 WPARAM wParam; /* WORD message parameter */ 141 HWND hwnd; /**< The window for the message */
126 LPARAM lParam; /* LONG message parameter */ 142 UINT msg; /**< The type of message */
127 }; 143 WPARAM wParam; /**< WORD message parameter */
128 144 LPARAM lParam; /**< LONG message parameter */
129 /* The windows custom window manager information structure */ 145 };
130 struct SDL_SysWMinfo 146
131 { 147 /**
132 SDL_version version; 148 * The windows custom window manager information structure.
133 HWND window; /* The Win32 display window */ 149 */
150 struct SDL_SysWMinfo
151 {
152 SDL_version version;
153 HWND window; /**< The Win32 display window */
134 }; 154 };
135 155
136 #elif defined(SDL_VIDEO_DRIVER_RISCOS) 156 #elif defined(SDL_VIDEO_DRIVER_RISCOS)
137 157
138 /* RISC OS custom event structure */ 158 /**
139 struct SDL_SysWMmsg 159 * RISC OS custom event structure.
140 { 160 */
141 SDL_version version; 161 struct SDL_SysWMmsg
142 int eventCode; /* The window for the message */ 162 {
163 SDL_version version;
164 int eventCode; /**< The window for the message */
143 int pollBlock[64]; 165 int pollBlock[64];
144 }; 166 };
145 167
146 /* The RISC OS custom window manager information structure */ 168 /**
147 struct SDL_SysWMinfo 169 * The RISC OS custom window manager information structure.
148 { 170 */
149 SDL_version version; 171 struct SDL_SysWMinfo
150 int wimpVersion; /* Wimp version running under */ 172 {
151 int taskHandle; /* The RISC OS task handle */ 173 SDL_version version;
152 int window; /* The RISC OS display window */ 174 int wimpVersion; /**< Wimp version running under */
175 int taskHandle; /**< The RISC OS task handle */
176 int window; /**< The RISC OS display window */
153 }; 177 };
154 178
155 #elif defined(SDL_VIDEO_DRIVER_PHOTON) || defined(SDL_VIDEO_DRIVER_QNXGF) 179 #elif defined(SDL_VIDEO_DRIVER_PHOTON) || defined(SDL_VIDEO_DRIVER_QNXGF)
156 #include <sys/neutrino.h> 180 #include <sys/neutrino.h>
157 #if defined(SDL_VIDEO_OPENGL_ES) 181 #if defined(SDL_VIDEO_OPENGL_ES)
158 #include <gf/gf.h> 182 #include <gf/gf.h>
159 #endif /* SDL_VIDEO_OPENGL_ES */ 183 #endif /* SDL_VIDEO_OPENGL_ES */
160 #include <Ph.h> 184 #include <Ph.h>
161 185
162 /* The QNX custom event structure */ 186 /**
163 struct SDL_SysWMmsg 187 * The QNX custom event structure.
164 { 188 */
165 SDL_version version; 189 struct SDL_SysWMmsg
166 int data; 190 {
167 }; 191 SDL_version version;
168 192 int data;
169 /* The QNX Photon custom window manager information structure */ 193 };
194
195 /**
196 * The QNX Photon custom window manager information structure.
197 */
170 struct SDL_SysWMinfo 198 struct SDL_SysWMinfo
171 { 199 {
172 SDL_version version; 200 SDL_version version;
173 int data; 201 int data;
174 }; 202 };
175 203
176 #else 204 #else
177 205
178 /* The generic custom event structure */ 206 /**
179 struct SDL_SysWMmsg 207 * The generic custom event structure.
180 { 208 */
181 SDL_version version; 209 struct SDL_SysWMmsg
182 int data; 210 {
183 }; 211 SDL_version version;
184 212 int data;
185 /* The generic custom window manager information structure */ 213 };
214
215 /**
216 * The generic custom window manager information structure.
217 */
186 struct SDL_SysWMinfo 218 struct SDL_SysWMinfo
187 { 219 {
188 SDL_version version; 220 SDL_version version;
189 int data; 221 int data;
190 }; 222 };
195 227
196 typedef struct SDL_SysWMinfo SDL_SysWMinfo; 228 typedef struct SDL_SysWMinfo SDL_SysWMinfo;
197 229
198 /* Function prototypes */ 230 /* Function prototypes */
199 /** 231 /**
200 * \fn SDL_bool SDL_GetWindowWMInfo (SDL_WindowID windowID, SDL_SysWMinfo * info) 232 * \brief This function allows access to driver-dependent window information.
201 * 233 *
202 * \brief This function allows access to driver-dependent window information. 234 * \param windowID The window about which information is being requested
203 * 235 * \param info This structure must be initialized with the SDL version, and is
204 * \param windowID The window about which information is being requested 236 * then filled in with information about the given window.
205 * \param info This structure must be initialized with the SDL version, and is then filled in with information about the given window. 237 *
206 * 238 * \return SDL_TRUE if the function is implemented and the version member of
207 * \return SDL_TRUE if the function is implemented and the version member of the 'info' struct is valid, SDL_FALSE otherwise. 239 * the \c info struct is valid, SDL_FALSE otherwise.
208 * 240 *
209 * You typically use this function like this: 241 * You typically use this function like this:
210 * \code 242 * \code
211 * SDL_SysWMInfo info; 243 * SDL_SysWMInfo info;
212 * SDL_VERSION(&info.version); 244 * SDL_VERSION(&info.version);
213 * if ( SDL_GetWindowWMInfo(&info) ) { ... } 245 * if ( SDL_GetWindowWMInfo(&info) ) { ... }
214 * \endcode 246 * \endcode
215 */ 247 */
216 extern DECLSPEC SDL_bool SDLCALL SDL_GetWindowWMInfo(SDL_WindowID windowID, 248 extern DECLSPEC SDL_bool SDLCALL SDL_GetWindowWMInfo(SDL_WindowID windowID,
217 SDL_SysWMinfo * info); 249 SDL_SysWMinfo * info);
218 250
219 251