summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomer Shalev <shalev.tomer@gmail.com>2010-01-16 21:41:57 +0000
committerTomer Shalev <shalev.tomer@gmail.com>2010-01-16 21:41:57 +0000
commitf7237af58d0371314a4b2e71d80f558c46eb03bb (patch)
tree51ce4d38bfe8ab183ed7c0ae802bf61d3e35adb8
parentea5c6b94d0929dd6fb954a301c951c05344e88e9 (diff)
downloadrockbox-f7237af58d0371314a4b2e71d80f558c46eb03bb.tar.gz
rockbox-f7237af58d0371314a4b2e71d80f558c46eb03bb.zip
Simulator: Make touchscreen targets usable on keyboards w/o numpad (laptops)
Use 7,8,9,u,i,o,j,k,l as equivalent to the numpad keys used to simulate touching in grid mode (3x3 buttons). These are the keys usually used on such keyboards for numpad keys when the Num Lock is enabled. The USB key on these targets is changed to 'c' (connect) to avoid conflict in key mappings. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@24252 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--uisimulator/sdl/button.c23
1 files changed, 21 insertions, 2 deletions
diff --git a/uisimulator/sdl/button.c b/uisimulator/sdl/button.c
index 2fbc41e373..f9bfac1dee 100644
--- a/uisimulator/sdl/button.c
+++ b/uisimulator/sdl/button.c
@@ -45,6 +45,12 @@ static int mouse_coords = 0;
45/* speed repeat finishes at */ 45/* speed repeat finishes at */
46#define REPEAT_INTERVAL_FINISH 2 46#define REPEAT_INTERVAL_FINISH 2
47 47
48#ifdef HAVE_TOUCHSCREEN
49#define USB_KEY SDLK_c /* SDLK_u is taken by BUTTON_MIDLEFT */
50#else
51#define USB_KEY SDLK_u
52#endif
53
48#if defined(IRIVER_H100_SERIES) || defined (IRIVER_H300_SERIES) 54#if defined(IRIVER_H100_SERIES) || defined (IRIVER_H300_SERIES)
49int _remote_type=REMOTETYPE_H100_LCD; 55int _remote_type=REMOTETYPE_H100_LCD;
50 56
@@ -76,7 +82,7 @@ void button_event(int key, bool pressed)
76{ 82{
77 int new_btn = 0; 83 int new_btn = 0;
78 static bool usb_connected = false; 84 static bool usb_connected = false;
79 if (usb_connected && key != SDLK_u) 85 if (usb_connected && key != USB_KEY)
80 return; 86 return;
81 switch (key) 87 switch (key)
82 { 88 {
@@ -103,30 +109,43 @@ void button_event(int key, bool pressed)
103 } 109 }
104 break; 110 break;
105 case SDLK_KP7: 111 case SDLK_KP7:
112 case SDLK_7:
106 new_btn = BUTTON_TOPLEFT; 113 new_btn = BUTTON_TOPLEFT;
107 break; 114 break;
108 case SDLK_KP8: 115 case SDLK_KP8:
116 case SDLK_8:
117 case SDLK_UP:
109 new_btn = BUTTON_TOPMIDDLE; 118 new_btn = BUTTON_TOPMIDDLE;
110 break; 119 break;
111 case SDLK_KP9: 120 case SDLK_KP9:
121 case SDLK_9:
112 new_btn = BUTTON_TOPRIGHT; 122 new_btn = BUTTON_TOPRIGHT;
113 break; 123 break;
114 case SDLK_KP4: 124 case SDLK_KP4:
125 case SDLK_u:
126 case SDLK_LEFT:
115 new_btn = BUTTON_MIDLEFT; 127 new_btn = BUTTON_MIDLEFT;
116 break; 128 break;
117 case SDLK_KP5: 129 case SDLK_KP5:
130 case SDLK_i:
118 new_btn = BUTTON_CENTER; 131 new_btn = BUTTON_CENTER;
119 break; 132 break;
120 case SDLK_KP6: 133 case SDLK_KP6:
134 case SDLK_o:
135 case SDLK_RIGHT:
121 new_btn = BUTTON_MIDRIGHT; 136 new_btn = BUTTON_MIDRIGHT;
122 break; 137 break;
123 case SDLK_KP1: 138 case SDLK_KP1:
139 case SDLK_j:
124 new_btn = BUTTON_BOTTOMLEFT; 140 new_btn = BUTTON_BOTTOMLEFT;
125 break; 141 break;
126 case SDLK_KP2: 142 case SDLK_KP2:
143 case SDLK_k:
144 case SDLK_DOWN:
127 new_btn = BUTTON_BOTTOMMIDDLE; 145 new_btn = BUTTON_BOTTOMMIDDLE;
128 break; 146 break;
129 case SDLK_KP3: 147 case SDLK_KP3:
148 case SDLK_l:
130 new_btn = BUTTON_BOTTOMRIGHT; 149 new_btn = BUTTON_BOTTOMRIGHT;
131 break; 150 break;
132 case SDLK_F4: 151 case SDLK_F4:
@@ -138,7 +157,7 @@ void button_event(int key, bool pressed)
138 break; 157 break;
139 158
140#endif 159#endif
141 case SDLK_u: 160 case USB_KEY:
142 if (!pressed) 161 if (!pressed)
143 { 162 {
144 usb_connected = !usb_connected; 163 usb_connected = !usb_connected;