summaryrefslogtreecommitdiff
path: root/apps/gui/quickscreen.c
diff options
context:
space:
mode:
authorJonathan Gordon <rockbox@jdgordon.info>2009-05-15 05:08:28 +0000
committerJonathan Gordon <rockbox@jdgordon.info>2009-05-15 05:08:28 +0000
commitd48f1a0a4545316e024f7ccfd78112f6d1a466f5 (patch)
tree5fc034849c38a14c2f57a78798084644f9d6f836 /apps/gui/quickscreen.c
parent6df03c6d53051e44bcc9b879408542c40c79db5e (diff)
downloadrockbox-d48f1a0a4545316e024f7ccfd78112f6d1a466f5.tar.gz
rockbox-d48f1a0a4545316e024f7ccfd78112f6d1a466f5.zip
get the quickscreen working on the mr500. hold "mode" on the remote to get to it, then you can use the 4 directions on the remote, or the touchscreen to change the values. "mode" will exit, as will pressing in the top or middle of the main screen
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@20935 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/gui/quickscreen.c')
-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))