--- a/include/SDL_syswm.h Thu Jul 06 18:01:37 2006 +0000
+++ b/include/SDL_syswm.h Mon Jul 10 21:04:37 2006 +0000
@@ -20,19 +20,26 @@
slouken@libsdl.org
*/
-/* Include file for SDL custom system window manager hooks */
+/**
+ * \file SDL_syswm.h
+ *
+ * Include file for SDL custom system window manager hooks
+ */
#ifndef _SDL_syswm_h
#define _SDL_syswm_h
#include "SDL_stdinc.h"
#include "SDL_error.h"
+#include "SDL_video.h"
#include "SDL_version.h"
#include "begin_code.h"
/* Set up for C function definitions, even when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
extern "C" {
+/* *INDENT-ON* */
#endif
/* Your application has access to a special type of event 'SDL_SYSWMEVENT',
@@ -42,7 +49,6 @@
*/
#ifdef SDL_PROTOTYPES_ONLY
struct SDL_SysWMinfo;
-typedef struct SDL_SysWMinfo SDL_SysWMinfo;
#else
/* This is the structure for custom window manager events */
@@ -61,150 +67,179 @@
#endif
/* These are the various supported subsystems under UNIX */
-typedef enum {
- SDL_SYSWM_X11
+typedef enum
+{
+ SDL_SYSWM_X11
} SDL_SYSWM_TYPE;
/* The UNIX custom event structure */
-struct SDL_SysWMmsg {
- SDL_version version;
- SDL_SYSWM_TYPE subsystem;
- union {
- XEvent xevent;
- } event;
+struct SDL_SysWMmsg
+{
+ SDL_version version;
+ SDL_SYSWM_TYPE subsystem;
+ union
+ {
+ XEvent xevent;
+ } event;
};
/* The UNIX custom window manager information structure.
When this structure is returned, it holds information about which
low level system it is using, and will be one of SDL_SYSWM_TYPE.
*/
-typedef struct SDL_SysWMinfo {
- SDL_version version;
- SDL_SYSWM_TYPE subsystem;
- union {
- struct {
- Display *display; /* The X11 display */
- Window window; /* The X11 display window */
- /* These locking functions should be called around
- any X11 functions using the display variable.
- They lock the event thread, so should not be
- called around event functions or from event filters.
- */
- void (*lock_func)(void);
- void (*unlock_func)(void);
+struct SDL_SysWMinfo
+{
+ SDL_version version;
+ SDL_SYSWM_TYPE subsystem;
+ union
+ {
+ struct
+ {
+ Display *display; /* The X11 display */
+ Window window; /* The X11 display window */
+ /* These locking functions should be called around
+ any X11 functions using the display variable.
+ They lock the event thread, so should not be
+ called around event functions or from event filters.
+ */
+ void (*lock_func) (void);
+ void (*unlock_func) (void);
- /* Introduced in SDL 1.0.2 */
- Window fswindow; /* The X11 fullscreen window */
- Window wmwindow; /* The X11 managed input window */
- } x11;
- } info;
-} SDL_SysWMinfo;
+ /* Introduced in SDL 1.0.2 */
+ Window fswindow; /* The X11 fullscreen window */
+ Window wmwindow; /* The X11 managed input window */
+ } x11;
+ } info;
+};
#elif defined(SDL_VIDEO_DRIVER_NANOX)
#include <microwin/nano-X.h>
/* The generic custom event structure */
-struct SDL_SysWMmsg {
- SDL_version version;
- int data;
+struct SDL_SysWMmsg
+{
+ SDL_version version;
+ int data;
};
/* The windows custom window manager information structure */
-typedef struct SDL_SysWMinfo {
- SDL_version version ;
- GR_WINDOW_ID window ; /* The display window */
-} SDL_SysWMinfo;
+struct SDL_SysWMinfo
+{
+ SDL_version version;
+ GR_WINDOW_ID window; /* The display window */
+};
-#elif defined(SDL_VIDEO_DRIVER_WINDIB) || defined(SDL_VIDEO_DRIVER_DDRAW) || defined(SDL_VIDEO_DRIVER_GAPI)
+#elif defined(SDL_VIDEO_DRIVER_WIN32)
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
/* The windows custom event structure */
-struct SDL_SysWMmsg {
- SDL_version version;
- HWND hwnd; /* The window for the message */
- UINT msg; /* The type of message */
- WPARAM wParam; /* WORD message parameter */
- LPARAM lParam; /* LONG message parameter */
+struct SDL_SysWMmsg
+{
+ SDL_version version;
+ HWND hwnd; /* The window for the message */
+ UINT msg; /* The type of message */
+ WPARAM wParam; /* WORD message parameter */
+ LPARAM lParam; /* LONG message parameter */
};
/* The windows custom window manager information structure */
-typedef struct SDL_SysWMinfo {
- SDL_version version;
- HWND window; /* The Win32 display window */
- HGLRC hglrc; /* The OpenGL context, if any */
-} SDL_SysWMinfo;
+struct SDL_SysWMinfo
+{
+ SDL_version version;
+ HWND window; /* The Win32 display window */
+ HGLRC hglrc; /* The OpenGL context, if any */
+};
#elif defined(SDL_VIDEO_DRIVER_RISCOS)
/* RISC OS custom event structure */
-struct SDL_SysWMmsg {
- SDL_version version;
- int eventCode; /* The window for the message */
- int pollBlock[64];
+struct SDL_SysWMmsg
+{
+ SDL_version version;
+ int eventCode; /* The window for the message */
+ int pollBlock[64];
};
/* The RISC OS custom window manager information structure */
-typedef struct SDL_SysWMinfo {
- SDL_version version;
- int wimpVersion; /* Wimp version running under */
- int taskHandle; /* The RISC OS task handle */
- int window; /* The RISC OS display window */
-} SDL_SysWMinfo;
+struct SDL_SysWMinfo
+{
+ SDL_version version;
+ int wimpVersion; /* Wimp version running under */
+ int taskHandle; /* The RISC OS task handle */
+ int window; /* The RISC OS display window */
+};
#elif defined(SDL_VIDEO_DRIVER_PHOTON)
#include <sys/neutrino.h>
#include <Ph.h>
/* The QNX custom event structure */
-struct SDL_SysWMmsg {
- SDL_version version;
- int data;
+struct SDL_SysWMmsg
+{
+ SDL_version version;
+ int data;
};
/* The QNX custom window manager information structure */
-typedef struct SDL_SysWMinfo {
- SDL_version version;
- int data;
-} SDL_SysWMinfo;
+struct SDL_SysWMinfo
+{
+ SDL_version version;
+ int data;
+};
#else
/* The generic custom event structure */
-struct SDL_SysWMmsg {
- SDL_version version;
- int data;
+struct SDL_SysWMmsg
+{
+ SDL_version version;
+ int data;
};
/* The generic custom window manager information structure */
-typedef struct SDL_SysWMinfo {
- SDL_version version;
- int data;
-} SDL_SysWMinfo;
+struct SDL_SysWMinfo
+{
+ SDL_version version;
+ int data;
+};
#endif /* video driver type */
#endif /* SDL_PROTOTYPES_ONLY */
+typedef struct SDL_SysWMinfo SDL_SysWMinfo;
+
/* Function prototypes */
-/*
- * This function gives you custom hooks into the window manager information.
- * It fills the structure pointed to by 'info' with custom information and
- * returns 1 if the function is implemented. If it's not implemented, or
- * the version member of the 'info' structure is invalid, it returns 0.
+/**
+ * \fn SDL_bool SDL_GetWindowWMInfo (SDL_WindowID windowID, SDL_SysWMinfo * info)
+ *
+ * \brief This function allows access to driver-dependent window information.
+ *
+ * \param windowID The window about which information is being requested
+ * \param info This structure must be initialized with the SDL version, and is then filled in with information about the given window.
+ *
+ * \return SDL_TRUE if the function is implemented and the version member of the 'info' struct is valid, SDL_FALSE otherwise.
*
* You typically use this function like this:
+ * \code
* SDL_SysWMInfo info;
* SDL_VERSION(&info.version);
- * if ( SDL_GetWMInfo(&info) ) { ... }
+ * if ( SDL_GetWindowWMInfo(&info) ) { ... }
+ * \endcode
*/
-extern DECLSPEC int SDLCALL SDL_GetWMInfo(SDL_SysWMinfo *info);
+extern DECLSPEC SDL_bool SDLCALL SDL_GetWindowWMInfo(SDL_WindowID windowID,
+ SDL_SysWMinfo * info);
/* Ends C function definitions when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
}
+/* *INDENT-ON* */
#endif
#include "close_code.h"
#endif /* _SDL_syswm_h */
+
+/* vi: set ts=4 sw=4 expandtab: */