SDL  2.0
SDL_mouse_c.h
Go to the documentation of this file.
1 /*
2  Simple DirectMedia Layer
3  Copyright (C) 1997-2016 Sam Lantinga <slouken@libsdl.org>
4 
5  This software is provided 'as-is', without any express or implied
6  warranty. In no event will the authors be held liable for any damages
7  arising from the use of this software.
8 
9  Permission is granted to anyone to use this software for any purpose,
10  including commercial applications, and to alter it and redistribute it
11  freely, subject to the following restrictions:
12 
13  1. The origin of this software must not be misrepresented; you must not
14  claim that you wrote the original software. If you use this software
15  in a product, an acknowledgment in the product documentation would be
16  appreciated but is not required.
17  2. Altered source versions must be plainly marked as such, and must not be
18  misrepresented as being the original software.
19  3. This notice may not be removed or altered from any source distribution.
20 */
21 #include "../SDL_internal.h"
22 
23 #ifndef _SDL_mouse_c_h
24 #define _SDL_mouse_c_h
25 
26 #include "SDL_mouse.h"
27 
29 
30 struct SDL_Cursor
31 {
32  struct SDL_Cursor *next;
33  void *driverdata;
34 };
35 
36 typedef struct
37 {
38  int last_x, last_y;
42 
43 typedef struct
44 {
45  /* Create a cursor from a surface */
46  SDL_Cursor *(*CreateCursor) (SDL_Surface * surface, int hot_x, int hot_y);
47 
48  /* Create a system cursor */
49  SDL_Cursor *(*CreateSystemCursor) (SDL_SystemCursor id);
50 
51  /* Show the specified cursor, or hide if cursor is NULL */
52  int (*ShowCursor) (SDL_Cursor * cursor);
53 
54  /* This is called when a mouse motion event occurs */
55  void (*MoveCursor) (SDL_Cursor * cursor);
56 
57  /* Free a window manager cursor */
58  void (*FreeCursor) (SDL_Cursor * cursor);
59 
60  /* Warp the mouse to (x,y) within a window */
61  void (*WarpMouse) (SDL_Window * window, int x, int y);
62 
63  /* Warp the mouse to (x,y) in screen space */
64  int (*WarpMouseGlobal) (int x, int y);
65 
66  /* Set relative mode */
67  int (*SetRelativeMouseMode) (SDL_bool enabled);
68 
69  /* Set mouse capture */
70  int (*CaptureMouse) (SDL_Window * window);
71 
72  /* Get absolute mouse coordinates. (x) and (y) are never NULL and set to zero before call. */
73  Uint32 (*GetGlobalMouseState) (int *x, int *y);
74 
75  /* Data common to all mice */
78  int x;
79  int y;
80  int xdelta;
81  int ydelta;
82  int last_x, last_y; /* the last reported x and y coordinates */
86 
87  /* Data for double-click tracking */
90 
95 
96  /* Driver-dependent data. */
97  void *driverdata;
98 } SDL_Mouse;
99 
100 
101 /* Initialize the mouse subsystem */
102 extern int SDL_MouseInit(void);
103 
104 /* Get the mouse state structure */
105 SDL_Mouse *SDL_GetMouse(void);
106 
107 /* Set the default double-click interval */
108 extern void SDL_SetDoubleClickTime(Uint32 interval);
109 
110 /* Set the default mouse cursor */
111 extern void SDL_SetDefaultCursor(SDL_Cursor * cursor);
112 
113 /* Set the mouse focus window */
114 extern void SDL_SetMouseFocus(SDL_Window * window);
115 
116 /* Send a mouse motion event */
117 extern int SDL_SendMouseMotion(SDL_Window * window, SDL_MouseID mouseID, int relative, int x, int y);
118 
119 /* Send a mouse button event */
121 
122 /* Send a mouse wheel event */
123 extern int SDL_SendMouseWheel(SDL_Window * window, SDL_MouseID mouseID, int x, int y, SDL_MouseWheelDirection direction);
124 
125 /* Shutdown the mouse subsystem */
126 extern void SDL_MouseQuit(void);
127 
128 #endif /* _SDL_mouse_c_h */
129 
130 /* vi: set ts=4 sw=4 expandtab: */
int SDL_SendMouseWheel(SDL_Window *window, SDL_MouseID mouseID, int x, int y, SDL_MouseWheelDirection direction)
Definition: SDL_mouse.c:406
int SDL_SendMouseMotion(SDL_Window *window, SDL_MouseID mouseID, int relative, int x, int y)
Definition: SDL_mouse.c:188
void SDL_MouseQuit(void)
Definition: SDL_mouse.c:435
GLuint id
int last_y
Definition: SDL_mouse_c.h:82
void SDL_SetDoubleClickTime(Uint32 interval)
Definition: SDL_mouse.c:72
SDL_Texture * button
uint32_t Uint32
An unsigned 32-bit integer type.
Definition: SDL_stdinc.h:155
Uint32 buttonstate
Definition: SDL_mouse_c.h:83
GLint GLint GLint GLint GLint x
Definition: SDL_opengl.h:1567
SDL_bool relative_mode_warp
Definition: SDL_mouse_c.h:85
SDL_Window * focus
Definition: SDL_mouse_c.h:77
SDL_Window * window
struct xkb_state * state
SDL_MouseClickState * clickstate
Definition: SDL_mouse_c.h:89
A collection of pixels used in software blitting.
Definition: SDL_surface.h:69
int num_clickstates
Definition: SDL_mouse_c.h:88
int SDL_MouseInit(void)
Definition: SDL_mouse.c:45
int ydelta
Definition: SDL_mouse_c.h:81
SDL_Cursor * cursors
Definition: SDL_mouse_c.h:91
SDL_MouseID mouseID
Definition: SDL_mouse_c.h:76
Uint32 SDL_MouseID
Definition: SDL_mouse_c.h:28
SDL_bool
Definition: SDL_stdinc.h:126
SDL_Mouse * SDL_GetMouse(void)
Definition: SDL_mouse.c:66
GLint GLint GLint GLint GLint GLint y
Definition: SDL_opengl.h:1567
uint8_t Uint8
An unsigned 8-bit integer type.
Definition: SDL_stdinc.h:139
void SDL_SetDefaultCursor(SDL_Cursor *cursor)
Definition: SDL_mouse.c:55
SDL_bool cursor_shown
Definition: SDL_mouse_c.h:94
SDL_bool relative_mode
Definition: SDL_mouse_c.h:84
SDL_SystemCursor
Cursor types for SDL_CreateSystemCursor.
Definition: SDL_mouse.h:46
SDL_Cursor * cursor
Definition: testwm2.c:40
GLenum GLenum GLsizei const GLuint GLboolean enabled
struct SDL_Cursor * next
Definition: SDL_mouse_c.h:32
SDL_PRINTF_FORMAT_STRING const char int SDL_PRINTF_FORMAT_STRING const char int SDL_PRINTF_FORMAT_STRING const char int SDL_PRINTF_FORMAT_STRING const char const char SDL_SCANF_FORMAT_STRING const char return SDL_ThreadFunction const char void return Uint32 return Uint32 void
int xdelta
Definition: SDL_mouse_c.h:80
The type used to identify a window.
Definition: SDL_sysvideo.h:71
int SDL_SendMouseButton(SDL_Window *window, SDL_MouseID mouseID, Uint8 state, Uint8 button)
Definition: SDL_mouse.c:326
SDL_Cursor * cur_cursor
Definition: SDL_mouse_c.h:93
void * driverdata
Definition: SDL_mouse_c.h:97
void SDL_SetMouseFocus(SDL_Window *window)
Definition: SDL_mouse.c:103
void * driverdata
Definition: SDL_mouse_c.h:33
SDL_MouseWheelDirection
Scroll direction types for the Scroll event.
Definition: SDL_mouse.h:66
SDL_Cursor * def_cursor
Definition: SDL_mouse_c.h:92