summaryrefslogtreecommitdiff
path: root/apps/gui
diff options
context:
space:
mode:
Diffstat (limited to 'apps/gui')
-rw-r--r--apps/gui/quickscreen.c27
1 files changed, 26 insertions, 1 deletions
diff --git a/apps/gui/quickscreen.c b/apps/gui/quickscreen.c
index 4eaffa0f46..7100eb7489 100644
--- a/apps/gui/quickscreen.c
+++ b/apps/gui/quickscreen.c
@@ -275,7 +275,28 @@ static bool gui_quickscreen_do_button(struct gui_quickscreen * qs, int button)
275 talk_qs_option((struct settings_list *)qs->items[item], false); 275 talk_qs_option((struct settings_list *)qs->items[item], false);
276 return true; 276 return true;
277} 277}
278 278#ifdef HAVE_TOUCHSCREEN
279/* figure out which button was pressed...
280 * top is exit, left/right/botton are the respective actions
281 */
282static int quickscreen_touchscreen_button(void)
283{
284 short x,y;
285 if (action_get_touchscreen_press(&x, &y) != BUTTON_REL)
286 return ACTION_NONE;
287 if (y < vps[SCREEN_MAIN][QUICKSCREEN_LEFT].y)
288 return ACTION_STD_CANCEL;
289 else if (y > vps[SCREEN_MAIN][QUICKSCREEN_LEFT].y +
290 vps[SCREEN_MAIN][QUICKSCREEN_LEFT].height)
291 return ACTION_QS_DOWN;
292 else if (x < vps[SCREEN_MAIN][QUICKSCREEN_LEFT].x +
293 vps[SCREEN_MAIN][QUICKSCREEN_LEFT].width)
294 return ACTION_QS_LEFT;
295 else if (x >= vps[SCREEN_MAIN][QUICKSCREEN_RIGHT].x)
296 return ACTION_QS_RIGHT;
297 return ACTION_STD_CANCEL;
298}
299#endif
279bool gui_syncquickscreen_run(struct gui_quickscreen * qs, int button_enter) 300bool gui_syncquickscreen_run(struct gui_quickscreen * qs, int button_enter)
280{ 301{
281 int button, i; 302 int button, i;
@@ -303,6 +324,10 @@ bool gui_syncquickscreen_run(struct gui_quickscreen * qs, int button_enter)
303 talk_qs_option((struct settings_list *)qs->items[QUICKSCREEN_RIGHT], true); 324 talk_qs_option((struct settings_list *)qs->items[QUICKSCREEN_RIGHT], true);
304 while (true) { 325 while (true) {
305 button = get_action(CONTEXT_QUICKSCREEN,HZ/5); 326 button = get_action(CONTEXT_QUICKSCREEN,HZ/5);
327#ifdef HAVE_TOUCHSCREEN
328 if (button == ACTION_TOUCHSCREEN)
329 button = quickscreen_touchscreen_button();
330#endif
306 if(default_event_handler(button) == SYS_USB_CONNECTED) 331 if(default_event_handler(button) == SYS_USB_CONNECTED)
307 return(true); 332 return(true);
308 if(gui_quickscreen_do_button(qs, button)) 333 if(gui_quickscreen_do_button(qs, button))