Mercurial > sdl-ios-xcode
diff touchTest/Iphone Test/touchTestIPhone2/touchTestIPhone/include/SDL_syswm.h @ 4677:31607094315c
Added Iphone project. Iphone multi-touch is now functional.
author | jimtla |
---|---|
date | Sat, 31 Jul 2010 01:24:50 +0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/touchTest/Iphone Test/touchTestIPhone2/touchTestIPhone/include/SDL_syswm.h Sat Jul 31 01:24:50 2010 +0400 @@ -0,0 +1,244 @@ +/* + SDL - Simple DirectMedia Layer + Copyright (C) 1997-2010 Sam Lantinga + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + 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 + Lesser General Public License for more details. + + 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 + + Sam Lantinga + slouken@libsdl.org +*/ + +/** + * \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 + +/** + * \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(). + */ +#ifdef SDL_PROTOTYPES_ONLY +struct SDL_SysWMinfo; +#else + +/* This is the structure for custom window manager events */ +#if defined(SDL_VIDEO_DRIVER_X11) +#if defined(__APPLE__) && defined(__MACH__) +/* conflicts with Quickdraw.h */ +#define Cursor X11Cursor +#endif + +#include <X11/Xlib.h> +#include <X11/Xatom.h> + +#if defined(__APPLE__) && defined(__MACH__) +/* matches the re-define above */ +#undef Cursor +#endif + +/** + * These are the various supported subsystems under UNIX. + */ +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; +}; + +/** + * 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. + */ +struct SDL_SysWMinfo +{ + SDL_version version; + SDL_SYSWM_TYPE subsystem; + union + { + struct + { + Display *display; /**< The X11 display */ + Window window; /**< The X11 display window */ + } x11; + } info; +}; + +#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 */ +}; + +/** + * The windows custom window manager information structure. + */ +struct SDL_SysWMinfo +{ + SDL_version version; + HWND window; /**< The Win32 display window */ +}; + +#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]; +}; + +/** + * The RISC OS custom window manager information structure. + */ +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) || defined(SDL_VIDEO_DRIVER_QNXGF) +#include <sys/neutrino.h> +#if defined(SDL_VIDEO_OPENGL_ES) +#include <gf/gf.h> +#endif /* SDL_VIDEO_OPENGL_ES */ +#include <Ph.h> + +/** + * The QNX custom event structure. + */ +struct SDL_SysWMmsg +{ + SDL_version version; + int data; +}; + +/** + * The QNX Photon custom window manager information structure. + */ +struct SDL_SysWMinfo +{ + SDL_version version; + int data; +}; + +#else + +/** + * The generic custom event structure. + */ +struct SDL_SysWMmsg +{ + SDL_version version; + int data; +}; + +/** + * The generic custom window manager information structure. + */ +struct SDL_SysWMinfo +{ + SDL_version version; + int data; +}; + +#endif /* video driver type */ + +#endif /* SDL_PROTOTYPES_ONLY */ + +typedef struct SDL_SysWMinfo SDL_SysWMinfo; + +/* Function prototypes */ +/** + * \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 \c info struct is valid, SDL_FALSE otherwise. + * + * You typically use this function like this: + * \code + * SDL_SysWMInfo info; + * SDL_VERSION(&info.version); + * if ( SDL_GetWindowWMInfo(&info) ) { ... } + * \endcode + */ +extern DECLSPEC SDL_bool SDLCALL SDL_GetWindowWMInfo(SDL_Window * window, + 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: */