Mercurial > sdl-ios-xcode
diff src/events/SDL_mouse_c.h @ 2710:44e49d3fa6cf
Final merge of Google Summer of Code 2008 work...
Many-mouse and tablet support
by Szymon Wilczek, mentored by Ryan C. Gordon
Everything concerning the project is noted on the wiki:
http://wilku.ravenlord.ws/doku.php?id=start
author | Sam Lantinga <slouken@libsdl.org> |
---|---|
date | Mon, 25 Aug 2008 06:33:00 +0000 |
parents | 003c1b5b07da |
children | c4e697245676 |
line wrap: on
line diff
--- a/src/events/SDL_mouse_c.h Mon Aug 25 05:30:28 2008 +0000 +++ b/src/events/SDL_mouse_c.h Mon Aug 25 06:33:00 2008 +0000 @@ -29,9 +29,7 @@ struct SDL_Cursor { SDL_Mouse *mouse; - SDL_Cursor *next; - void *driverdata; }; @@ -56,14 +54,27 @@ /* Free the mouse when it's time */ void (*FreeMouse) (SDL_Mouse * mouse); + /* data common for tablets */ + int pressure; + int pressure_max; + int pressure_min; + int tilt; /* for future use */ + int rotation; /* for future use */ + int total_ends; + int current_end; + /* Data common to all mice */ SDL_WindowID focus; + int which; int x; int y; + int z; /* for future use */ int xdelta; int ydelta; + char *name; Uint8 buttonstate; SDL_bool relative_mode; + SDL_bool proximity; SDL_bool flush_motion; SDL_Cursor *cursors; @@ -74,17 +85,23 @@ void *driverdata; }; - /* Initialize the mouse subsystem */ extern int SDL_MouseInit(void); /* Get the mouse at an index */ extern SDL_Mouse *SDL_GetMouse(int index); +/* Assign an id to a mouse at an index */ +extern int SDL_SetMouseIndexId(int id, int index); + +/* Get the mouse by id */ +extern SDL_Mouse *SDL_GetMouseByID(int id); + /* 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); +extern int SDL_AddMouse(const SDL_Mouse * mouse, int index, char *name, + int pressure_max, int pressure_min, int ends); /* Remove a mouse at an index, clearing the slot for later */ extern void SDL_DelMouse(int index); @@ -93,20 +110,24 @@ extern void SDL_ResetMouse(int index); /* Set the mouse focus window */ -extern void SDL_SetMouseFocus(int index, SDL_WindowID windowID); +extern void SDL_SetMouseFocus(int id, SDL_WindowID windowID); /* Send a mouse motion event for a mouse at an index */ -extern int SDL_SendMouseMotion(int index, int relative, int x, int y); +extern int SDL_SendMouseMotion(int id, int relative, int x, int y, int z); /* Send a mouse button event for a mouse at an index */ -extern int SDL_SendMouseButton(int index, Uint8 state, Uint8 button); +extern int SDL_SendMouseButton(int id, Uint8 state, Uint8 button); /* Send a mouse wheel event for a mouse at an index */ -extern int SDL_SendMouseWheel(int index, int x, int y); +extern int SDL_SendMouseWheel(int id, int x, int y); /* Shutdown the mouse subsystem */ extern void SDL_MouseQuit(void); +/* FIXME: Where do these functions go in this header? */ +extern void SDL_UpdateCoordinates(int x, int y); +extern void SDL_ChangeEnd(int id, int end); + #endif /* _SDL_mouse_c_h */ /* vi: set ts=4 sw=4 expandtab: */