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

1.1       root        1: /*
                      2:     SDL - Simple DirectMedia Layer
1.1.1.2 ! root        3:     Copyright (C) 1997-2006 Sam Lantinga
1.1       root        4: 
                      5:     This library is free software; you can redistribute it and/or
1.1.1.2 ! root        6:     modify it under the terms of the GNU Lesser General Public
1.1       root        7:     License as published by the Free Software Foundation; either
1.1.1.2 ! root        8:     version 2.1 of the License, or (at your option) any later version.
1.1       root        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
1.1.1.2 ! root       13:     Lesser General Public License for more details.
1.1       root       14: 
1.1.1.2 ! root       15:     You should have received a copy of the GNU Lesser General Public
        !            16:     License along with this library; if not, write to the Free Software
        !            17:     Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
1.1       root       18: 
                     19:     Sam Lantinga
                     20:     [email protected]
                     21: */
                     22: 
                     23: /* Include file for SDL custom system window manager hooks */
                     24: 
                     25: #ifndef _SDL_syswm_h
                     26: #define _SDL_syswm_h
                     27: 
1.1.1.2 ! root       28: #include "SDL_stdinc.h"
        !            29: #include "SDL_error.h"
1.1       root       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: 
                     48: /* This is the structure for custom window manager events */
1.1.1.2 ! root       49: #if defined(SDL_VIDEO_DRIVER_X11)
        !            50: #if defined(__APPLE__) && defined(__MACH__)
        !            51: /* conflicts with Quickdraw.h */
        !            52: #define Cursor X11Cursor
        !            53: #endif
        !            54: 
1.1       root       55: #include <X11/Xlib.h>
                     56: #include <X11/Xatom.h>
                     57: 
1.1.1.2 ! root       58: #if defined(__APPLE__) && defined(__MACH__)
        !            59: /* matches the re-define above */
        !            60: #undef Cursor
        !            61: #endif
        !            62: 
1.1       root       63: /* These are the various supported subsystems under UNIX */
                     64: typedef enum {
                     65:        SDL_SYSWM_X11
                     66: } SDL_SYSWM_TYPE;
                     67: 
                     68: /* The UNIX custom event structure */
                     69: struct SDL_SysWMmsg {
                     70:        SDL_version version;
                     71:        SDL_SYSWM_TYPE subsystem;
                     72:        union {
                     73:            XEvent xevent;
                     74:        } event;
                     75: };
                     76: 
                     77: /* The UNIX custom window manager information structure.
                     78:    When this structure is returned, it holds information about which
                     79:    low level system it is using, and will be one of SDL_SYSWM_TYPE.
                     80:  */
                     81: typedef struct SDL_SysWMinfo {
                     82:        SDL_version version;
                     83:        SDL_SYSWM_TYPE subsystem;
                     84:        union {
                     85:            struct {
                     86:                Display *display;       /* The X11 display */
                     87:                Window window;          /* The X11 display window */
                     88:                /* These locking functions should be called around
1.1.1.2 ! root       89:                    any X11 functions using the display variable, 
        !            90:                    but not the gfxdisplay variable.
1.1       root       91:                    They lock the event thread, so should not be
                     92:                   called around event functions or from event filters.
                     93:                 */
                     94:                void (*lock_func)(void);
                     95:                void (*unlock_func)(void);
                     96: 
                     97:                /* Introduced in SDL 1.0.2 */
                     98:                Window fswindow;        /* The X11 fullscreen window */
                     99:                Window wmwindow;        /* The X11 managed input window */
1.1.1.2 ! root      100: 
        !           101:                /* Introduced in SDL 1.2.12 */
        !           102:                Display *gfxdisplay;    /* The X11 display to which rendering is done */
1.1       root      103:            } x11;
                    104:        } info;
                    105: } SDL_SysWMinfo;
                    106: 
1.1.1.2 ! root      107: #elif defined(SDL_VIDEO_DRIVER_NANOX)
1.1       root      108: #include <microwin/nano-X.h>
                    109: 
                    110: /* The generic custom event structure */
                    111: struct SDL_SysWMmsg {
                    112:        SDL_version version;
                    113:        int data;
                    114: };
                    115: 
                    116: /* The windows custom window manager information structure */
                    117: typedef struct SDL_SysWMinfo {
                    118:        SDL_version version ;
                    119:        GR_WINDOW_ID window ;   /* The display window */
                    120: } SDL_SysWMinfo;
                    121: 
1.1.1.2 ! root      122: #elif defined(SDL_VIDEO_DRIVER_WINDIB) || defined(SDL_VIDEO_DRIVER_DDRAW) || defined(SDL_VIDEO_DRIVER_GAPI)
1.1       root      123: #define WIN32_LEAN_AND_MEAN
                    124: #include <windows.h>
                    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 */
                    136: typedef struct SDL_SysWMinfo {
                    137:        SDL_version version;
                    138:        HWND window;                    /* The Win32 display window */
                    139:        HGLRC hglrc;                    /* The OpenGL context, if any */
                    140: } SDL_SysWMinfo;
                    141: 
1.1.1.2 ! root      142: #elif defined(SDL_VIDEO_DRIVER_RISCOS)
1.1       root      143: 
                    144: /* RISC OS custom event structure */
                    145: struct SDL_SysWMmsg {
                    146:        SDL_version version;
                    147:        int eventCode;          /* The window for the message */
                    148:        int pollBlock[64];
                    149: };
                    150: 
                    151: /* The RISC OS custom window manager information structure */
                    152: typedef struct SDL_SysWMinfo {
                    153:        SDL_version version;
                    154:        int wimpVersion;    /* Wimp version running under */
                    155:        int taskHandle;     /* The RISC OS task handle */
                    156:        int window;             /* The RISC OS display window */
                    157: } SDL_SysWMinfo;
                    158: 
1.1.1.2 ! root      159: #elif defined(SDL_VIDEO_DRIVER_PHOTON)
1.1       root      160: #include <sys/neutrino.h>
                    161: #include <Ph.h>
                    162: 
                    163: /* The QNX custom event structure */
                    164: struct SDL_SysWMmsg {
                    165:        SDL_version version;
                    166:        int data;
                    167: };
                    168: 
                    169: /* The QNX custom window manager information structure */
                    170: typedef struct SDL_SysWMinfo {
                    171:        SDL_version version;
                    172:        int data;
                    173: } SDL_SysWMinfo;
                    174: 
                    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 */
                    184: typedef struct SDL_SysWMinfo {
                    185:        SDL_version version;
                    186:        int data;
                    187: } SDL_SysWMinfo;
                    188: 
1.1.1.2 ! root      189: #endif /* video driver type */
1.1       root      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. 
                    199:  *
                    200:  * You typically use this function like this:
                    201:  * SDL_SysWMInfo info;
                    202:  * SDL_VERSION(&info.version);
                    203:  * if ( SDL_GetWMInfo(&info) ) { ... }
                    204:  */
                    205: extern DECLSPEC int SDLCALL SDL_GetWMInfo(SDL_SysWMinfo *info);
                    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 */

unix.superglobalmegacorp.com

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