annotate src/video/windows/SDL_windowsvideo.h @ 5067:61d53410eb41

Fixed bug #859 CREATE_SUBDIRS helps a lot if browsing HTML documentation in a file browser. ALWAYS_DETAILED_SEC makes sure everything has at least the automatic documentation like function prototype and source references. STRIP_FROM_PATH allows you to include only the relevant portions of the files' paths, cleaning up both the file list and directory tree, though you need to change the path listed here to match wherever you put SDL. ALIASES avoids some warnings generated by C:\source\svn.libsdl.org\trunk\SDL\src\joystick\darwin\10.3.9-FIX\IOHIDLib.h. It seems Apple uses a few commands which are not normally supported by Doxygen. BUILTIN_STL_SUPPORT adds support for parsing code which makes use of the standard template library. There isn't a lot of C++ in SDL (some in bwindow at least), but this still seems like a good idea. TYPEDEF_HIDES_STRUCT means that for code like this: typedef struct A {int B;} C; C is documented as a structure containing B instead of a typedef mapped to A. EXTRACT_ALL, EXTRACT_PRIVATE, EXTRACT_STATIC, EXTRACT_LOCAL_METHODS, EXTRACT_ANON_NSPACES and INTERNAL_DOCS make sure that _everything_ is documented. CASE_SENSE_NAMES = NO avoids potential conflicts when building documentation on case insensitive file systems like NTFS and FAT32. WARN_NO_PARAMDOC lets you know when you have documented some, but not all, of the parameters of a function. This is useful when you're working on adding such documentation since it makes partially documented functions easier to spot. WARN_LOGFILE writes warnings to a seperate file instead of mixing them in with stdout. When not running in quiet mode, these warnings can be hard to spot without this flag. I added *.h.in and *.h.default to FILE_PATTERNS to generate documentation for config.h.in and config.h.default. RECURSIVE tells doxygen to look not only in the input directory, but also in subfolders. EXCLUDE avoids documenting things like test programs, examples and templates which need to be documented separately. I've used EXCLUDE_PATTERNS to exclude non-source subdirectories that often find their way into source folders (such as obj or .svn). EXAMPLE_PATH lists directories doxygen will search to find included example code. So far, SDL doesn't really use this feature, but I've listed some likely locations. SOURCE_BROWSER adds syntax highlighted source code to the HTML output. USE_HTAGS is nice, but not available on Windows. INLINE_SOURCES adds the body of a function to it's documentation so you can quickly see exactly what it does. ALPHABETICAL_INDEX generates an alphabetical list of all structures, functions, etc., which makes it much easier to find what you're looking for. IGNORE_PREFIX skips the SDL_ prefix when deciding which index page to place an item on so you don't have everything show up under "S". HTML_DYNAMIC_SECTIONS hides the includes/included by diagrams by default and adds JavaScript to allow the user to show and hide them by clicking a link. ENUM_VALUES_PER_LINE = 1 makes enums easier to read by placing each value on it's own line. GENERATE_TREEVIEW produces a two frame index page with a navigation tree on the left. I have LaTeX and man pages turned off to speed up doxygen, you may want to turn them back on yourself. I added _WIN32=1 to PREDEFINED to cause SDL to output documentation related to Win32 builds of SDL. Normally, doxygen gets confused since there are multiple definitions for various structures and formats that vary by platform. Without this doxygen can produce broken documentation or, if you're lucky, output documentation only for the dummy drivers, which isn't very useful. You need to pick a platform. GENERATE_TAGFILE produces a file which can be used to link other doxygen documentation to the SDL documentation. CLASS_DIAGRAMS turns on class diagrams even when dot is not available. HAVE_DOT tells doxygen to try to use dot to generate diagrams. TEMPLATE_RELATIONS and INCLUDE_GRAPH add additional diagrams to the documentation. DOT_MULTI_TARGETS speeds up dot. OUTPUT_DIRECTORY, INPUT and other paths reflect the fact that this Doxyfile is intended to process src as well as include and is being run from a separate subdirectory. Doxygen produces several temporary files while it's running and if interrupted, can leave those files behind. It's easier to clean up if there aren't a hundred or so files in the same folder. I typically run doxygen in SDL/doxy and set the output directory to '.'. Since doxygen puts it's output in subfolders by type, this keeps things pretty well organised. You could use '../doc' instead and get the same results.
author Sam Lantinga <slouken@libsdl.org>
date Fri, 21 Jan 2011 12:57:01 -0800
parents e8916fe9cfc8
children 25d4feb7c127
rev   line source
4759
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
1 /*
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
2 SDL - Simple DirectMedia Layer
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
3 Copyright (C) 1997-2010 Sam Lantinga
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
4
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
5 This library is free software; you can redistribute it and/or
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
6 modify it under the terms of the GNU Lesser General Public
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
7 License as published by the Free Software Foundation; either
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
8 version 2.1 of the License, or (at your option) any later version.
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
9
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
10 This library is distributed in the hope that it will be useful,
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
13 Lesser General Public License for more details.
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
14
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
15 You should have received a copy of the GNU Lesser General Public
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
16 License along with this library; if not, write to the Free Software
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
17 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
18
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
19 Sam Lantinga
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
20 slouken@libsdl.org
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
21 */
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
22 #include "SDL_config.h"
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
23
5062
e8916fe9cfc8 Fixed bug #925
Sam Lantinga <slouken@libsdl.org>
parents: 5038
diff changeset
24 #ifndef _SDL_windowsvideo_h
e8916fe9cfc8 Fixed bug #925
Sam Lantinga <slouken@libsdl.org>
parents: 5038
diff changeset
25 #define _SDL_windowsvideo_h
4759
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
26
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
27 #include "../SDL_sysvideo.h"
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
28
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
29 #define WIN32_LEAN_AND_MEAN
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
30 #define STRICT
4569
e1664f94f026 Andrey A.
Sam Lantinga <slouken@libsdl.org>
parents: 4504
diff changeset
31 #ifndef UNICODE
4759
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
32 #define UNICODE
4569
e1664f94f026 Andrey A.
Sam Lantinga <slouken@libsdl.org>
parents: 4504
diff changeset
33 #endif
4759
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
34 #undef WINVER
4868
d6adaafcfb10 Fixed compiling with Visual Studio 2008
Sam Lantinga <slouken@libsdl.org>
parents: 4763
diff changeset
35 #define WINVER 0x500 /* Need 0x410 for AlphaBlend() and 0x500 for EnumDisplayDevices() */
4650
7ad7a473b086 More fixes for windows. Disabled tablet code.
jimtla
parents: 4426
diff changeset
36
4759
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
37 #include <windows.h>
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
38
4893
b2e434e0553b Fixed all MinGW problems (except libraries not added to build yet).
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4892
diff changeset
39 #ifndef __GNUC__
4759
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
40 #include <msctf.h>
4893
b2e434e0553b Fixed all MinGW problems (except libraries not added to build yet).
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4892
diff changeset
41 #else
b2e434e0553b Fixed all MinGW problems (except libraries not added to build yet).
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4892
diff changeset
42 #include "SDL_msctf.h"
b2e434e0553b Fixed all MinGW problems (except libraries not added to build yet).
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4892
diff changeset
43 #endif
b2e434e0553b Fixed all MinGW problems (except libraries not added to build yet).
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4892
diff changeset
44
4892
9e1f6d3fb870 Added imm.h include, will be needed on MinGW.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4868
diff changeset
45 #include <imm.h>
4759
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
46
4912
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
47 #define MAX_CANDLIST 10
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
48 #define MAX_CANDLENGTH 256
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
49
4759
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
50 #if SDL_VIDEO_RENDER_D3D
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
51 //#include <d3d9.h>
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
52 #define D3D_DEBUG_INFO
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
53 #include "d3d9.h"
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
54 #endif
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
55
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
56 #if SDL_VIDEO_RENDER_DDRAW
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
57 /* WIN32_LEAN_AND_MEAN was defined, so we have to include this by hand */
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
58 #include <objbase.h>
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
59 #include "ddraw.h"
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
60 #endif
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
61
5062
e8916fe9cfc8 Fixed bug #925
Sam Lantinga <slouken@libsdl.org>
parents: 5038
diff changeset
62 #include "SDL_windowsclipboard.h"
e8916fe9cfc8 Fixed bug #925
Sam Lantinga <slouken@libsdl.org>
parents: 5038
diff changeset
63 #include "SDL_windowsevents.h"
e8916fe9cfc8 Fixed bug #925
Sam Lantinga <slouken@libsdl.org>
parents: 5038
diff changeset
64 #include "SDL_windowsgamma.h"
e8916fe9cfc8 Fixed bug #925
Sam Lantinga <slouken@libsdl.org>
parents: 5038
diff changeset
65 #include "SDL_windowskeyboard.h"
e8916fe9cfc8 Fixed bug #925
Sam Lantinga <slouken@libsdl.org>
parents: 5038
diff changeset
66 #include "SDL_windowsmodes.h"
e8916fe9cfc8 Fixed bug #925
Sam Lantinga <slouken@libsdl.org>
parents: 5038
diff changeset
67 #include "SDL_windowsmouse.h"
e8916fe9cfc8 Fixed bug #925
Sam Lantinga <slouken@libsdl.org>
parents: 5038
diff changeset
68 #include "SDL_windowsopengl.h"
e8916fe9cfc8 Fixed bug #925
Sam Lantinga <slouken@libsdl.org>
parents: 5038
diff changeset
69 #include "SDL_windowswindow.h"
4759
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
70 #include "SDL_events.h"
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
71
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
72 #ifdef UNICODE
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
73 #define WIN_StringToUTF8(S) SDL_iconv_string("UTF-8", "UCS-2", (char *)S, (SDL_wcslen(S)+1)*sizeof(WCHAR))
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
74 #define WIN_UTF8ToString(S) (WCHAR *)SDL_iconv_string("UCS-2", "UTF-8", (char *)S, SDL_strlen(S)+1)
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
75 #else
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
76 #define WIN_StringToUTF8(S) SDL_iconv_string("UTF-8", "ASCII", (char *)S, (SDL_strlen(S)+1))
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
77 #define WIN_UTF8ToString(S) SDL_iconv_string("ASCII", "UTF-8", (char *)S, SDL_strlen(S)+1)
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
78 #endif
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
79 extern void WIN_SetError(const char *prefix);
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
80
4569
e1664f94f026 Andrey A.
Sam Lantinga <slouken@libsdl.org>
parents: 4504
diff changeset
81 enum { RENDER_NONE, RENDER_D3D, RENDER_DDRAW, RENDER_GDI, RENDER_GAPI, RENDER_RAW };
e1664f94f026 Andrey A.
Sam Lantinga <slouken@libsdl.org>
parents: 4504
diff changeset
82
4919
716b2cbf4c9e First pass at Windows multi-touch gesture support
Sam Lantinga <slouken@libsdl.org>
parents: 4912
diff changeset
83 #if WINVER < 0x0601
716b2cbf4c9e First pass at Windows multi-touch gesture support
Sam Lantinga <slouken@libsdl.org>
parents: 4912
diff changeset
84 /* Touch input definitions */
716b2cbf4c9e First pass at Windows multi-touch gesture support
Sam Lantinga <slouken@libsdl.org>
parents: 4912
diff changeset
85 #define TWF_FINETOUCH 1
716b2cbf4c9e First pass at Windows multi-touch gesture support
Sam Lantinga <slouken@libsdl.org>
parents: 4912
diff changeset
86 #define TWF_WANTPALM 2
716b2cbf4c9e First pass at Windows multi-touch gesture support
Sam Lantinga <slouken@libsdl.org>
parents: 4912
diff changeset
87
716b2cbf4c9e First pass at Windows multi-touch gesture support
Sam Lantinga <slouken@libsdl.org>
parents: 4912
diff changeset
88 #define TOUCHEVENTF_MOVE 0x0001
716b2cbf4c9e First pass at Windows multi-touch gesture support
Sam Lantinga <slouken@libsdl.org>
parents: 4912
diff changeset
89 #define TOUCHEVENTF_DOWN 0x0002
716b2cbf4c9e First pass at Windows multi-touch gesture support
Sam Lantinga <slouken@libsdl.org>
parents: 4912
diff changeset
90 #define TOUCHEVENTF_UP 0x0004
716b2cbf4c9e First pass at Windows multi-touch gesture support
Sam Lantinga <slouken@libsdl.org>
parents: 4912
diff changeset
91
716b2cbf4c9e First pass at Windows multi-touch gesture support
Sam Lantinga <slouken@libsdl.org>
parents: 4912
diff changeset
92 DECLARE_HANDLE(HTOUCHINPUT);
716b2cbf4c9e First pass at Windows multi-touch gesture support
Sam Lantinga <slouken@libsdl.org>
parents: 4912
diff changeset
93
5038
40ef2ad3757c Normalized line endings
Sam Lantinga <slouken@libsdl.org>
parents: 4919
diff changeset
94 typedef struct _TOUCHINPUT {
40ef2ad3757c Normalized line endings
Sam Lantinga <slouken@libsdl.org>
parents: 4919
diff changeset
95 LONG x;
40ef2ad3757c Normalized line endings
Sam Lantinga <slouken@libsdl.org>
parents: 4919
diff changeset
96 LONG y;
40ef2ad3757c Normalized line endings
Sam Lantinga <slouken@libsdl.org>
parents: 4919
diff changeset
97 HANDLE hSource;
40ef2ad3757c Normalized line endings
Sam Lantinga <slouken@libsdl.org>
parents: 4919
diff changeset
98 DWORD dwID;
40ef2ad3757c Normalized line endings
Sam Lantinga <slouken@libsdl.org>
parents: 4919
diff changeset
99 DWORD dwFlags;
40ef2ad3757c Normalized line endings
Sam Lantinga <slouken@libsdl.org>
parents: 4919
diff changeset
100 DWORD dwMask;
40ef2ad3757c Normalized line endings
Sam Lantinga <slouken@libsdl.org>
parents: 4919
diff changeset
101 DWORD dwTime;
40ef2ad3757c Normalized line endings
Sam Lantinga <slouken@libsdl.org>
parents: 4919
diff changeset
102 ULONG_PTR dwExtraInfo;
40ef2ad3757c Normalized line endings
Sam Lantinga <slouken@libsdl.org>
parents: 4919
diff changeset
103 DWORD cxContact;
40ef2ad3757c Normalized line endings
Sam Lantinga <slouken@libsdl.org>
parents: 4919
diff changeset
104 DWORD cyContact;
4919
716b2cbf4c9e First pass at Windows multi-touch gesture support
Sam Lantinga <slouken@libsdl.org>
parents: 4912
diff changeset
105 } TOUCHINPUT, *PTOUCHINPUT;
716b2cbf4c9e First pass at Windows multi-touch gesture support
Sam Lantinga <slouken@libsdl.org>
parents: 4912
diff changeset
106
716b2cbf4c9e First pass at Windows multi-touch gesture support
Sam Lantinga <slouken@libsdl.org>
parents: 4912
diff changeset
107 #endif /* WINVER < 0x0601 */
716b2cbf4c9e First pass at Windows multi-touch gesture support
Sam Lantinga <slouken@libsdl.org>
parents: 4912
diff changeset
108
4569
e1664f94f026 Andrey A.
Sam Lantinga <slouken@libsdl.org>
parents: 4504
diff changeset
109 typedef BOOL (*PFNSHFullScreen)(HWND, DWORD);
e1664f94f026 Andrey A.
Sam Lantinga <slouken@libsdl.org>
parents: 4504
diff changeset
110 typedef void (*PFCoordTransform)(SDL_Window*, POINT*);
e1664f94f026 Andrey A.
Sam Lantinga <slouken@libsdl.org>
parents: 4504
diff changeset
111
4759
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
112 typedef struct
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
113 {
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
114 void **lpVtbl;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
115 int refcount;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
116 void *data;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
117 } TSFSink;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
118
4892
9e1f6d3fb870 Added imm.h include, will be needed on MinGW.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4868
diff changeset
119 /* Definition from Win98DDK version of IMM.H */
4759
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
120 typedef struct tagINPUTCONTEXT2 {
4912
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
121 HWND hWnd;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
122 BOOL fOpen;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
123 POINT ptStatusWndPos;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
124 POINT ptSoftKbdPos;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
125 DWORD fdwConversion;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
126 DWORD fdwSentence;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
127 union {
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
128 LOGFONTA A;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
129 LOGFONTW W;
4892
9e1f6d3fb870 Added imm.h include, will be needed on MinGW.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4868
diff changeset
130 } lfFont;
4912
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
131 COMPOSITIONFORM cfCompForm;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
132 CANDIDATEFORM cfCandForm[4];
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
133 HIMCC hCompStr;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
134 HIMCC hCandInfo;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
135 HIMCC hGuideLine;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
136 HIMCC hPrivate;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
137 DWORD dwNumMsgBuf;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
138 HIMCC hMsgBuf;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
139 DWORD fdwInit;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
140 DWORD dwReserve[3];
4892
9e1f6d3fb870 Added imm.h include, will be needed on MinGW.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4868
diff changeset
141 } INPUTCONTEXT2, *PINPUTCONTEXT2, NEAR *NPINPUTCONTEXT2, FAR *LPINPUTCONTEXT2;
4759
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
142
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
143 /* Private display data */
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
144
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
145 typedef struct SDL_VideoData
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
146 {
4569
e1664f94f026 Andrey A.
Sam Lantinga <slouken@libsdl.org>
parents: 4504
diff changeset
147 int render;
e1664f94f026 Andrey A.
Sam Lantinga <slouken@libsdl.org>
parents: 4504
diff changeset
148
4759
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
149 #if SDL_VIDEO_RENDER_D3D
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
150 HANDLE d3dDLL;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
151 IDirect3D9 *d3d;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
152 #endif
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
153 #if SDL_VIDEO_RENDER_DDRAW
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
154 HANDLE ddrawDLL;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
155 IDirectDraw *ddraw;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
156 #endif
4569
e1664f94f026 Andrey A.
Sam Lantinga <slouken@libsdl.org>
parents: 4504
diff changeset
157 #ifdef _WIN32_WCE
e1664f94f026 Andrey A.
Sam Lantinga <slouken@libsdl.org>
parents: 4504
diff changeset
158 HMODULE hAygShell;
e1664f94f026 Andrey A.
Sam Lantinga <slouken@libsdl.org>
parents: 4504
diff changeset
159 PFNSHFullScreen SHFullScreen;
e1664f94f026 Andrey A.
Sam Lantinga <slouken@libsdl.org>
parents: 4504
diff changeset
160 PFCoordTransform CoordTransform;
e1664f94f026 Andrey A.
Sam Lantinga <slouken@libsdl.org>
parents: 4504
diff changeset
161 #endif
4759
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
162
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
163 const SDL_scancode *key_layout;
4919
716b2cbf4c9e First pass at Windows multi-touch gesture support
Sam Lantinga <slouken@libsdl.org>
parents: 4912
diff changeset
164 DWORD clipboard_count;
716b2cbf4c9e First pass at Windows multi-touch gesture support
Sam Lantinga <slouken@libsdl.org>
parents: 4912
diff changeset
165
716b2cbf4c9e First pass at Windows multi-touch gesture support
Sam Lantinga <slouken@libsdl.org>
parents: 4912
diff changeset
166 /* Touch input functions */
716b2cbf4c9e First pass at Windows multi-touch gesture support
Sam Lantinga <slouken@libsdl.org>
parents: 4912
diff changeset
167 HANDLE userDLL;
716b2cbf4c9e First pass at Windows multi-touch gesture support
Sam Lantinga <slouken@libsdl.org>
parents: 4912
diff changeset
168 BOOL (WINAPI *CloseTouchInputHandle)( HTOUCHINPUT );
716b2cbf4c9e First pass at Windows multi-touch gesture support
Sam Lantinga <slouken@libsdl.org>
parents: 4912
diff changeset
169 BOOL (WINAPI *GetTouchInputInfo)( HTOUCHINPUT, UINT, PTOUCHINPUT, int );
5038
40ef2ad3757c Normalized line endings
Sam Lantinga <slouken@libsdl.org>
parents: 4919
diff changeset
170 BOOL (WINAPI *RegisterTouchWindow)( HWND, ULONG );
4759
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
171
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
172 SDL_bool ime_com_initialized;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
173 struct ITfThreadMgr *ime_threadmgr;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
174 SDL_bool ime_initialized;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
175 SDL_bool ime_enabled;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
176 SDL_bool ime_available;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
177 HWND ime_hwnd_main;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
178 HWND ime_hwnd_current;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
179 HIMC ime_himc;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
180
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
181 WCHAR ime_composition[SDL_TEXTEDITINGEVENT_TEXT_SIZE];
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
182 WCHAR ime_readingstring[16];
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
183 int ime_cursor;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
184
4912
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
185 SDL_bool ime_candlist;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
186 WCHAR ime_candidates[MAX_CANDLIST][MAX_CANDLENGTH];
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
187 DWORD ime_candcount;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
188 DWORD ime_candref;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
189 DWORD ime_candsel;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
190 UINT ime_candpgsize;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
191 int ime_candlistindexbase;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
192 SDL_bool ime_candvertical;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
193
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
194 SDL_Texture *ime_candtex;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
195 SDL_bool ime_dirty;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
196 SDL_Rect ime_rect;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
197 SDL_Rect ime_candlistrect;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
198 int ime_winwidth;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
199 int ime_winheight;
37576cdf6751 Add variables needed for win32 candidate list support.
Daniel Wyatt <Daniel.Wyatt@gmail.com>
parents: 4893
diff changeset
200
4759
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
201 HKL ime_hkl;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
202 HMODULE ime_himm32;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
203 UINT (WINAPI *GetReadingString)(HIMC himc, UINT uReadingBufLen, LPWSTR lpwReadingBuf, PINT pnErrorIndex, BOOL *pfIsVertical, PUINT puMaxReadingLen);
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
204 BOOL (WINAPI *ShowReadingWindow)(HIMC himc, BOOL bShow);
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
205 LPINPUTCONTEXT2 (WINAPI *ImmLockIMC)(HIMC himc);
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
206 BOOL (WINAPI *ImmUnlockIMC)(HIMC himc);
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
207 LPVOID (WINAPI *ImmLockIMCC)(HIMCC himcc);
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
208 BOOL (WINAPI *ImmUnlockIMCC)(HIMCC himcc);
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
209
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
210 SDL_bool ime_uiless;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
211 struct ITfThreadMgrEx *ime_threadmgrex;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
212 DWORD ime_uielemsinkcookie;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
213 DWORD ime_alpnsinkcookie;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
214 DWORD ime_openmodesinkcookie;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
215 DWORD ime_convmodesinkcookie;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
216 TSFSink *ime_uielemsink;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
217 TSFSink *ime_ippasink;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
218 } SDL_VideoData;
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
219
5062
e8916fe9cfc8 Fixed bug #925
Sam Lantinga <slouken@libsdl.org>
parents: 5038
diff changeset
220 #endif /* _SDL_windowsvideo_h */
4759
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
221
863ba7d1f029 Large commit with initial reading string support, TSF UILess code, etc.
dewyatt
parents: 4755
diff changeset
222 /* vi: set ts=4 sw=4 expandtab: */