Mercurial > sdl-ios-xcode
diff src/events/SDL_mouse_c.h @ 1671:89f7510fe17a SDL-1.3
Moved the cursor handling into the mouse code.
Added support for multiple mice, potentially dynamically added and removed.
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Fri, 09 Jun 2006 06:42:42 +0000 |
parents | eef792d31de8 |
children | 5daa04d862f1 |
line wrap: on
line diff
--- a/src/events/SDL_mouse_c.h Wed Jun 07 16:10:28 2006 +0000 +++ b/src/events/SDL_mouse_c.h Fri Jun 09 06:42:42 2006 +0000 @@ -24,23 +24,81 @@ #ifndef _SDL_mouse_c_h #define _SDL_mouse_c_h -typedef struct +typedef struct SDL_Mouse SDL_Mouse; + +struct SDL_Cursor +{ + SDL_Mouse *mouse; + + SDL_Cursor *next; + + void *driverdata; +}; + +struct SDL_Mouse { + /* Create a cursor from a surface */ + SDL_Cursor *(*CreateCursor) (SDL_Surface * surface, int hot_x, int hot_y); + + /* Show the specified cursor, or hide if cursor is NULL */ + int (*ShowCursor) (SDL_Cursor * cursor); + + /* This is called when a mouse motion event occurs */ + void (*MoveCursor) (SDL_Cursor * cursor); + + /* Free a window manager cursor */ + void (*FreeCursor) (SDL_Cursor * cursor); + + /* Warp the mouse to (x,y) */ + void (*WarpMouse) (SDL_Mouse * mouse, SDL_WindowID windowID, int x, + int y); + + /* Free the mouse when it's time */ + void (*FreeMouse) (SDL_Mouse * mouse); + + /* Data common to all mice */ SDL_WindowID focus; int x; int y; int xdelta; int ydelta; Uint8 buttonstate; -} SDL_Mouse; + + SDL_Cursor *cursors; + SDL_Cursor *def_cursor; + SDL_Cursor *cur_cursor; + SDL_bool cursor_shown; + void *driverdata; +}; + + +/* Initialize the mouse subsystem */ extern int SDL_MouseInit(void); -extern int SDL_AddMouse(SDL_WindowID focus, int x, int y, Uint8 buttonstate); + +/* Get the mouse at an index */ extern SDL_Mouse *SDL_GetMouse(int index); + +/* Add a mouse, possibly reattaching at a particular index (or -1), + returning the index of the mouse, or -1 if there was an error. + */ +extern int SDL_AddMouse(const SDL_Mouse * mouse, int index); + +/* Remove a mouse at an index, clearing the slot for later */ +extern void SDL_DelMouse(int index); + +/* Clear the button state of a mouse at an index */ +extern void SDL_ResetMouse(int index); + +/* Send a mouse motion event for a mouse at an index */ extern int SDL_SendMouseMotion(int index, SDL_WindowID windowID, int relative, int x, int y); + +/* Send a mouse button event for a mouse at an index */ extern int SDL_SendMouseButton(int index, SDL_WindowID windowID, Uint8 state, Uint8 button); + +/* Shutdown the mouse subsystem */ extern void SDL_MouseQuit(void); #endif /* _SDL_mouse_c_h */