Mercurial > sdl-ios-xcode
annotate src/events/SDL_mouse_c.h @ 3773:3b5691f85c0d gsoc2008_manymouse
Further x11 code improvments + comments
author | Szymon Wilczek <kazeuser@gmail.com> |
---|---|
date | Mon, 04 Aug 2008 11:18:10 +0000 |
parents | fe32943f86ec |
children | 8b5b67000dc0 |
rev | line source |
---|---|
3769 | 1 /* |
2 SDL - Simple DirectMedia Layer | |
3 Copyright (C) 1997-2006 Sam Lantinga | |
4 | |
5 This library is free software; you can redistribute it and/or | |
6 modify it under the terms of the GNU Lesser General Public | |
7 License as published by the Free Software Foundation; either | |
8 version 2.1 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 Lesser General Public License for more details. | |
14 | |
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 | |
18 | |
19 Sam Lantinga | |
20 slouken@libsdl.org | |
21 */ | |
22 #include "SDL_config.h" | |
23 | |
24 #ifndef _SDL_mouse_c_h | |
25 #define _SDL_mouse_c_h | |
26 | |
27 typedef struct SDL_Mouse SDL_Mouse; | |
28 | |
29 struct SDL_Cursor | |
30 { | |
31 SDL_Mouse *mouse; | |
32 | |
33 SDL_Cursor *next; | |
34 | |
35 void *driverdata; | |
36 }; | |
37 | |
38 struct SDL_Mouse | |
39 { | |
40 /* Create a cursor from a surface */ | |
41 SDL_Cursor *(*CreateCursor) (SDL_Surface * surface, int hot_x, int hot_y); | |
42 | |
43 /* Show the specified cursor, or hide if cursor is NULL */ | |
44 int (*ShowCursor) (SDL_Cursor * cursor); | |
45 | |
46 /* This is called when a mouse motion event occurs */ | |
47 void (*MoveCursor) (SDL_Cursor * cursor); | |
48 | |
49 /* Free a window manager cursor */ | |
50 void (*FreeCursor) (SDL_Cursor * cursor); | |
51 | |
52 /* Warp the mouse to (x,y) */ | |
53 void (*WarpMouse) (SDL_Mouse * mouse, SDL_WindowID windowID, int x, | |
54 int y); | |
55 | |
56 /* Free the mouse when it's time */ | |
57 void (*FreeMouse) (SDL_Mouse * mouse); | |
58 | |
3773
3b5691f85c0d
Further x11 code improvments + comments
Szymon Wilczek <kazeuser@gmail.com>
parents:
3769
diff
changeset
|
59 /*data common for tablets*/ |
3b5691f85c0d
Further x11 code improvments + comments
Szymon Wilczek <kazeuser@gmail.com>
parents:
3769
diff
changeset
|
60 int pressure; |
3b5691f85c0d
Further x11 code improvments + comments
Szymon Wilczek <kazeuser@gmail.com>
parents:
3769
diff
changeset
|
61 int pressure_max; |
3b5691f85c0d
Further x11 code improvments + comments
Szymon Wilczek <kazeuser@gmail.com>
parents:
3769
diff
changeset
|
62 int pressure_min; |
3b5691f85c0d
Further x11 code improvments + comments
Szymon Wilczek <kazeuser@gmail.com>
parents:
3769
diff
changeset
|
63 int tilt;/*for future use*/ |
3b5691f85c0d
Further x11 code improvments + comments
Szymon Wilczek <kazeuser@gmail.com>
parents:
3769
diff
changeset
|
64 int rotation;/*for future use*/ |
3b5691f85c0d
Further x11 code improvments + comments
Szymon Wilczek <kazeuser@gmail.com>
parents:
3769
diff
changeset
|
65 |
3769 | 66 /* Data common to all mice */ |
67 SDL_WindowID focus; | |
68 int which; | |
69 int x; | |
70 int y; | |
71 int z;/*for future use*/ | |
72 int xdelta; | |
73 int ydelta; | |
3773
3b5691f85c0d
Further x11 code improvments + comments
Szymon Wilczek <kazeuser@gmail.com>
parents:
3769
diff
changeset
|
74 |
3769 | 75 char* name; |
76 Uint8 buttonstate; | |
77 SDL_bool relative_mode; | |
78 SDL_bool proximity; | |
79 SDL_bool flush_motion; | |
80 | |
81 SDL_Cursor *cursors; | |
82 SDL_Cursor *def_cursor; | |
83 SDL_Cursor *cur_cursor; | |
84 SDL_bool cursor_shown; | |
85 | |
86 void *driverdata; | |
87 }; | |
88 | |
89 | |
90 /* Initialize the mouse subsystem */ | |
91 extern int SDL_MouseInit(void); | |
92 | |
93 /* Get the mouse at an index */ | |
94 extern SDL_Mouse *SDL_GetMouse(int index); | |
95 | |
96 /* Add a mouse, possibly reattaching at a particular index (or -1), | |
97 returning the index of the mouse, or -1 if there was an error. | |
98 */ | |
99 extern int SDL_AddMouse(const SDL_Mouse * mouse, int index, char* name, int pressure_max, int pressure_min); | |
100 | |
101 /* Remove a mouse at an index, clearing the slot for later */ | |
102 extern void SDL_DelMouse(int index); | |
103 | |
104 /* Clear the button state of a mouse at an index */ | |
105 extern void SDL_ResetMouse(int index); | |
106 | |
107 /* Set the mouse focus window */ | |
108 extern void SDL_SetMouseFocus(int index, SDL_WindowID windowID); | |
109 | |
110 /* Send a mouse motion event for a mouse at an index */ | |
111 extern int SDL_SendMouseMotion(int index, int relative, int x, int y, int z); | |
112 | |
113 /* Send a mouse button event for a mouse at an index */ | |
114 extern int SDL_SendMouseButton(int index, Uint8 state, Uint8 button); | |
115 | |
116 /* Send a mouse wheel event for a mouse at an index */ | |
117 extern int SDL_SendMouseWheel(int index, int x, int y); | |
118 | |
119 /* Shutdown the mouse subsystem */ | |
120 extern void SDL_MouseQuit(void); | |
121 | |
122 extern int SDL_GetIndexById(int id); | |
123 | |
124 extern int SDL_SetIndexId(int id, int index); | |
125 | |
126 extern int SDL_GetNumOfMice(void); | |
127 | |
128 extern char* SDL_GetMouseName(int index); | |
129 | |
130 extern void SDL_UpdateCoordinates(int x, int y); | |
131 | |
132 #endif /* _SDL_mouse_c_h */ | |
133 | |
134 /* vi: set ts=4 sw=4 expandtab: */ | |
135 |