comparison src/events/SDL_mouse.c @ 3767:abc8acb8e3d7 gsoc2008_manymouse

Proximity events, Pressure detection for multiple windows. Tablet button detection on the way.
author Szymon Wilczek <kazeuser@gmail.com>
date Wed, 23 Jul 2008 16:12:43 +0000
parents 24db5d326f57
children fe32943f86ec
comparison
equal deleted inserted replaced
3766:24db5d326f57 3767:abc8acb8e3d7
26 #include "SDL_events.h" 26 #include "SDL_events.h"
27 #include "SDL_events_c.h" 27 #include "SDL_events_c.h"
28 #include "default_cursor.h" 28 #include "default_cursor.h"
29 29
30 30
31 static int SDL_num_mice; 31 static int SDL_num_mice=0;
32 static int SDL_current_mouse; 32 static int SDL_current_mouse=-1;
33 static SDL_Mouse **SDL_mice; 33 static SDL_Mouse **SDL_mice=NULL;
34 int *SDL_IdIndex; 34 static int *SDL_IdIndex=NULL;
35 int SDL_highestId; 35 static int SDL_highestId=-1;
36 int last_x, last_y; 36 static int last_x, last_y;
37 int x_max, y_max; 37 int x_max, y_max;
38 /* Public functions */ 38 /* Public functions */
39 int 39 int
40 SDL_MouseInit(void) 40 SDL_MouseInit(void)
41 { 41 {
54 int 54 int
55 SDL_AddMouse(const SDL_Mouse * mouse, int index, char* name,int pressure_max,int pressure_min) 55 SDL_AddMouse(const SDL_Mouse * mouse, int index, char* name,int pressure_max,int pressure_min)
56 { 56 {
57 SDL_Mouse **mice; 57 SDL_Mouse **mice;
58 int selected_mouse; 58 int selected_mouse;
59 char* temp_name; 59 //char* temp_name;
60 /* Add the mouse to the list of mice */ 60 /* Add the mouse to the list of mice */
61 if (index < 0 || index >= SDL_num_mice || SDL_mice[index]) { 61 if (index < 0 || index >= SDL_num_mice || SDL_mice[index]) {
62 mice = 62 mice =
63 (SDL_Mouse **) SDL_realloc(SDL_mice, 63 (SDL_Mouse **) SDL_realloc(SDL_mice,
64 (SDL_num_mice + 1) * sizeof(*mice)); 64 (SDL_num_mice + 1) * sizeof(*mice));
74 if (!SDL_mice[index]) { 74 if (!SDL_mice[index]) {
75 SDL_OutOfMemory(); 75 SDL_OutOfMemory();
76 return -1; 76 return -1;
77 } 77 }
78 *SDL_mice[index] = *mouse; 78 *SDL_mice[index] = *mouse;
79 SDL_mice[index]->name=SDL_malloc(strlen(name)*sizeof(char)); 79 SDL_mice[index]->name=SDL_malloc(SDL_strlen(name)*sizeof(char));
80 strcpy(SDL_mice[index]->name,name); 80 SDL_strlcpy(SDL_mice[index]->name,name,255);
81 SDL_mice[index]->pressure_max=pressure_max; 81 SDL_mice[index]->pressure_max=pressure_max;
82 SDL_mice[index]->pressure_min=pressure_min; 82 SDL_mice[index]->pressure_min=pressure_min;
83 SDL_mice[index]->cursor_shown = SDL_TRUE; 83 SDL_mice[index]->cursor_shown = SDL_TRUE;
84 selected_mouse = SDL_SelectMouse(index); 84 selected_mouse = SDL_SelectMouse(index);
85 SDL_mice[index]->cur_cursor = NULL; 85 SDL_mice[index]->cur_cursor = NULL;
719 } 719 }
720 } 720 }
721 return shown; 721 return shown;
722 } 722 }
723 723
724 void SDL_SetIndexId(int id, int index) 724 int SDL_SetIndexId(int id, int index)
725 { 725 {
726 if(id>SDL_highestId) 726 if(id>SDL_highestId)
727 { 727 {
728 int *indexes; 728 int *indexes;
729 indexes = 729 indexes =
739 } 739 }
740 else 740 else
741 { 741 {
742 SDL_IdIndex[id]=index; 742 SDL_IdIndex[id]=index;
743 } 743 }
744 return 1;
744 } 745 }
745 746
746 int SDL_GetIndexById(int id) 747 int SDL_GetIndexById(int id)
747 { 748 {
748 if(id>SDL_highestId) 749 if(id>SDL_highestId)