Mercurial > sdl-ios-xcode
comparison src/events/SDL_mouse_c.h @ 1895:c121d94672cb
SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Mon, 10 Jul 2006 21:04:37 +0000 |
parents | |
children | 003c1b5b07da |
comparison
equal
deleted
inserted
replaced
1894:c69cee13dd76 | 1895:c121d94672cb |
---|---|
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 | |
59 /* Data common to all mice */ | |
60 SDL_WindowID focus; | |
61 int x; | |
62 int y; | |
63 int xdelta; | |
64 int ydelta; | |
65 Uint8 buttonstate; | |
66 SDL_bool relative_mode; | |
67 SDL_bool flush_motion; | |
68 | |
69 SDL_Cursor *cursors; | |
70 SDL_Cursor *def_cursor; | |
71 SDL_Cursor *cur_cursor; | |
72 SDL_bool cursor_shown; | |
73 | |
74 void *driverdata; | |
75 }; | |
76 | |
77 | |
78 /* Initialize the mouse subsystem */ | |
79 extern int SDL_MouseInit(void); | |
80 | |
81 /* Get the mouse at an index */ | |
82 extern SDL_Mouse *SDL_GetMouse(int index); | |
83 | |
84 /* Add a mouse, possibly reattaching at a particular index (or -1), | |
85 returning the index of the mouse, or -1 if there was an error. | |
86 */ | |
87 extern int SDL_AddMouse(const SDL_Mouse * mouse, int index); | |
88 | |
89 /* Remove a mouse at an index, clearing the slot for later */ | |
90 extern void SDL_DelMouse(int index); | |
91 | |
92 /* Clear the button state of a mouse at an index */ | |
93 extern void SDL_ResetMouse(int index); | |
94 | |
95 /* Set the mouse focus window */ | |
96 extern void SDL_SetMouseFocus(int index, SDL_WindowID windowID); | |
97 | |
98 /* Send a mouse motion event for a mouse at an index */ | |
99 extern int SDL_SendMouseMotion(int index, int relative, int x, int y); | |
100 | |
101 /* Send a mouse button event for a mouse at an index */ | |
102 extern int SDL_SendMouseButton(int index, Uint8 state, Uint8 button); | |
103 | |
104 /* Send a mouse wheel event for a mouse at an index */ | |
105 extern int SDL_SendMouseWheel(int index, int motion); | |
106 | |
107 /* Shutdown the mouse subsystem */ | |
108 extern void SDL_MouseQuit(void); | |
109 | |
110 #endif /* _SDL_mouse_c_h */ | |
111 | |
112 /* vi: set ts=4 sw=4 expandtab: */ |