Annotation of sbbs/include/sdl/sdl_syswm.h, revision 1.1.1.1

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 */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.