Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.

Latest commit

 

History

History
217 lines (191 loc) · 5.49 KB

SDL_syswm.h

File metadata and controls

217 lines (191 loc) · 5.49 KB
 
Apr 26, 2001
Apr 26, 2001
1
2
/*
SDL - Simple DirectMedia Layer
Jan 24, 2010
Jan 24, 2010
3
Copyright (C) 1997-2010 Sam Lantinga
Apr 26, 2001
Apr 26, 2001
4
5
This library is free software; you can redistribute it and/or
Feb 1, 2006
Feb 1, 2006
6
modify it under the terms of the GNU Lesser General Public
Apr 26, 2001
Apr 26, 2001
7
License as published by the Free Software Foundation; either
Feb 1, 2006
Feb 1, 2006
8
version 2.1 of the License, or (at your option) any later version.
Apr 26, 2001
Apr 26, 2001
9
10
11
12
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Feb 1, 2006
Feb 1, 2006
13
Lesser General Public License for more details.
Apr 26, 2001
Apr 26, 2001
14
Feb 1, 2006
Feb 1, 2006
15
16
17
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Apr 26, 2001
Apr 26, 2001
18
19
Sam Lantinga
Dec 14, 2001
Dec 14, 2001
20
slouken@libsdl.org
Apr 26, 2001
Apr 26, 2001
21
22
*/
Jul 10, 2006
Jul 10, 2006
23
/**
Oct 19, 2009
Oct 19, 2009
24
25
26
* \file SDL_syswm.h
*
* Include file for SDL custom system window manager hooks.
Jul 10, 2006
Jul 10, 2006
27
*/
Apr 26, 2001
Apr 26, 2001
28
29
30
31
#ifndef _SDL_syswm_h
#define _SDL_syswm_h
Feb 10, 2006
Feb 10, 2006
32
#include "SDL_stdinc.h"
Feb 10, 2006
Feb 10, 2006
33
#include "SDL_error.h"
Jul 10, 2006
Jul 10, 2006
34
#include "SDL_video.h"
Apr 26, 2001
Apr 26, 2001
35
36
37
38
39
#include "SDL_version.h"
#include "begin_code.h"
/* Set up for C function definitions, even when using C++ */
#ifdef __cplusplus
Jul 10, 2006
Jul 10, 2006
40
/* *INDENT-OFF* */
Apr 26, 2001
Apr 26, 2001
41
extern "C" {
Jul 10, 2006
Jul 10, 2006
42
/* *INDENT-ON* */
Apr 26, 2001
Apr 26, 2001
43
44
#endif
Oct 19, 2009
Oct 19, 2009
45
46
47
48
49
50
51
52
/**
* \file SDL_syswm.h
*
* Your application has access to a special type of event ::SDL_SYSWMEVENT,
* which contains window-manager specific information and arrives whenever
* an unhandled window event occurs. This event is ignored by default, but
* you can enable it with SDL_EventState().
*/
Apr 26, 2001
Apr 26, 2001
53
54
55
56
#ifdef SDL_PROTOTYPES_ONLY
struct SDL_SysWMinfo;
#else
Sep 27, 2010
Sep 27, 2010
57
58
59
60
61
#if defined(SDL_VIDEO_DRIVER_WIN32)
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#endif
Feb 16, 2006
Feb 16, 2006
62
/* This is the structure for custom window manager events */
Apr 13, 2006
Apr 13, 2006
63
#if defined(SDL_VIDEO_DRIVER_X11)
Sep 8, 2005
Sep 8, 2005
64
#if defined(__APPLE__) && defined(__MACH__)
Mar 9, 2006
Mar 9, 2006
65
/* conflicts with Quickdraw.h */
Sep 8, 2005
Sep 8, 2005
66
67
68
#define Cursor X11Cursor
#endif
Apr 26, 2001
Apr 26, 2001
69
70
71
#include <X11/Xlib.h>
#include <X11/Xatom.h>
Sep 8, 2005
Sep 8, 2005
72
#if defined(__APPLE__) && defined(__MACH__)
Mar 9, 2006
Mar 9, 2006
73
/* matches the re-define above */
Sep 8, 2005
Sep 8, 2005
74
75
76
#undef Cursor
#endif
Sep 27, 2010
Sep 27, 2010
77
78
79
80
81
#endif /* defined(SDL_VIDEO_DRIVER_X11) */
#if defined(SDL_VIDEO_DRIVER_DIRECTFB)
#include <directfb/directfb.h>
#endif
Sep 27, 2010
Sep 27, 2010
82
83
84
85
86
87
88
89
90
#if defined(SDL_VIDEO_DRIVER_COCOA)
#ifdef __OBJC__
#include <Cocoa/Cocoa.h>
#else
typedef struct _NSWindow NSWindow;
#endif
#endif
Oct 19, 2009
Oct 19, 2009
91
/**
Sep 27, 2010
Sep 27, 2010
92
* These are the various supported windowing subsystems
Oct 19, 2009
Oct 19, 2009
93
*/
Jul 10, 2006
Jul 10, 2006
94
95
typedef enum
{
Sep 27, 2010
Sep 27, 2010
96
97
SDL_SYSWM_UNKNOWN,
SDL_SYSWM_WINDOWS,
Sep 27, 2010
Sep 27, 2010
98
99
SDL_SYSWM_X11,
SDL_SYSWM_DIRECTFB,
Sep 27, 2010
Sep 27, 2010
100
SDL_SYSWM_COCOA,
Apr 26, 2001
Apr 26, 2001
101
102
} SDL_SYSWM_TYPE;
Oct 19, 2009
Oct 19, 2009
103
/**
Sep 27, 2010
Sep 27, 2010
104
* The custom event structure.
Oct 19, 2009
Oct 19, 2009
105
*/
Jul 10, 2006
Jul 10, 2006
106
107
108
109
110
111
struct SDL_SysWMmsg
{
SDL_version version;
SDL_SYSWM_TYPE subsystem;
union
{
Sep 27, 2010
Sep 27, 2010
112
113
114
115
116
117
118
119
#if defined(SDL_VIDEO_DRIVER_WIN32)
struct {
HWND hwnd; /**< The window for the message */
UINT msg; /**< The type of message */
WPARAM wParam; /**< WORD message parameter */
LPARAM lParam; /**< LONG message parameter */
} win;
#endif
Sep 27, 2010
Sep 27, 2010
120
#if defined(SDL_VIDEO_DRIVER_X11)
Sep 27, 2010
Sep 27, 2010
121
122
123
struct {
XEvent event;
} x11;
Sep 27, 2010
Sep 27, 2010
124
125
#endif
#if defined(SDL_VIDEO_DRIVER_DIRECTFB)
Sep 27, 2010
Sep 27, 2010
126
127
128
struct {
DFBEvent event;
} dfb;
Sep 27, 2010
Sep 27, 2010
129
#endif
Sep 27, 2010
Sep 27, 2010
130
131
132
133
134
135
#if defined(SDL_VIDEO_DRIVER_COCOA)
struct
{
/* No Cocoa window events yet */
} cocoa;
#endif
Sep 30, 2010
Sep 30, 2010
136
} /*msg*/;
Apr 26, 2001
Apr 26, 2001
137
138
};
Oct 19, 2009
Oct 19, 2009
139
/**
Sep 27, 2010
Sep 27, 2010
140
* The custom window manager information structure.
Oct 19, 2009
Oct 19, 2009
141
142
143
*
* When this structure is returned, it holds information about which
* low level system it is using, and will be one of SDL_SYSWM_TYPE.
Apr 26, 2001
Apr 26, 2001
144
*/
Jul 10, 2006
Jul 10, 2006
145
146
147
148
149
150
struct SDL_SysWMinfo
{
SDL_version version;
SDL_SYSWM_TYPE subsystem;
union
{
Sep 27, 2010
Sep 27, 2010
151
152
153
#if defined(SDL_VIDEO_DRIVER_WIN32)
struct
{
Sep 30, 2010
Sep 30, 2010
154
HWND window; /**< The window handle */
Sep 27, 2010
Sep 27, 2010
155
156
} win;
#endif
Sep 27, 2010
Sep 27, 2010
157
#if defined(SDL_VIDEO_DRIVER_X11)
Jul 10, 2006
Jul 10, 2006
158
159
struct
{
Sep 27, 2010
Sep 27, 2010
160
Display *display; /**< The X11 display */
Sep 30, 2010
Sep 30, 2010
161
Window window; /**< The X11 window */
Jul 10, 2006
Jul 10, 2006
162
} x11;
Sep 27, 2010
Sep 27, 2010
163
164
165
166
#endif
#if defined(SDL_VIDEO_DRIVER_DIRECTFB)
struct
{
Sep 30, 2010
Sep 30, 2010
167
168
169
IDirectFB *dfb; /**< The directfb main interface */
IDirectFBWindow *window; /**< The directfb window handle */
IDirectFBSurface *surface; /**< The directfb client surface */
Sep 27, 2010
Sep 27, 2010
170
171
172
173
174
} dfb;
#endif
#if defined(SDL_VIDEO_DRIVER_COCOA)
struct
{
Sep 30, 2010
Sep 30, 2010
175
NSWindow *window; /* The Cocoa window */
Sep 27, 2010
Sep 27, 2010
176
} cocoa;
Sep 27, 2010
Sep 27, 2010
177
#endif
Sep 30, 2010
Sep 30, 2010
178
} /*info*/;
Jul 10, 2006
Jul 10, 2006
179
};
Apr 26, 2001
Apr 26, 2001
180
181
182
#endif /* SDL_PROTOTYPES_ONLY */
Jul 10, 2006
Jul 10, 2006
183
184
typedef struct SDL_SysWMinfo SDL_SysWMinfo;
Apr 26, 2001
Apr 26, 2001
185
/* Function prototypes */
Jul 10, 2006
Jul 10, 2006
186
/**
Oct 19, 2009
Oct 19, 2009
187
188
* \brief This function allows access to driver-dependent window information.
*
Jul 18, 2010
Jul 18, 2010
189
* \param window The window about which information is being requested
Oct 19, 2009
Oct 19, 2009
190
191
192
193
194
195
196
197
* \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 \c info struct is valid, SDL_FALSE otherwise.
*
* You typically use this function like this:
* \code
Sep 26, 2010
Sep 26, 2010
198
* SDL_SysWMinfo info;
Oct 19, 2009
Oct 19, 2009
199
200
201
* SDL_VERSION(&info.version);
* if ( SDL_GetWindowWMInfo(&info) ) { ... }
* \endcode
Apr 26, 2001
Apr 26, 2001
202
*/
Jan 21, 2010
Jan 21, 2010
203
extern DECLSPEC SDL_bool SDLCALL SDL_GetWindowWMInfo(SDL_Window * window,
Jul 10, 2006
Jul 10, 2006
204
SDL_SysWMinfo * info);
Apr 26, 2001
Apr 26, 2001
205
206
207
208
/* Ends C function definitions when using C++ */
#ifdef __cplusplus
Jul 10, 2006
Jul 10, 2006
209
/* *INDENT-OFF* */
Apr 26, 2001
Apr 26, 2001
210
}
Jul 10, 2006
Jul 10, 2006
211
/* *INDENT-ON* */
Apr 26, 2001
Apr 26, 2001
212
213
214
215
#endif
#include "close_code.h"
#endif /* _SDL_syswm_h */
Jul 10, 2006
Jul 10, 2006
216
217
/* vi: set ts=4 sw=4 expandtab: */