summaryrefslogtreecommitdiff
path: root/apps/action.c
diff options
context:
space:
mode:
authorTomer Shalev <shalev.tomer@gmail.com>2009-10-05 17:17:30 +0000
committerTomer Shalev <shalev.tomer@gmail.com>2009-10-05 17:17:30 +0000
commitf7bd7252e14a151217f1a9b7eee6200eb23586a8 (patch)
tree2a676f3f9dc9248bfb8a9c6b1a39b4197471708c /apps/action.c
parente04acd8c3e8cbcec4eab0ffe046ec0935a15ab85 (diff)
downloadrockbox-f7bd7252e14a151217f1a9b7eee6200eb23586a8.tar.gz
rockbox-f7bd7252e14a151217f1a9b7eee6200eb23586a8.zip
Invert buttons in RTL mode
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@22961 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/action.c')
-rw-r--r--apps/action.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/apps/action.c b/apps/action.c
index ee84706b09..cde57441e7 100644
--- a/apps/action.c
+++ b/apps/action.c
@@ -34,6 +34,9 @@
34#include "settings.h" 34#include "settings.h"
35#include "pcmbuf.h" 35#include "pcmbuf.h"
36#include "misc.h" 36#include "misc.h"
37#if defined(HAVE_LCD_BITMAP) && !defined(BOOTLOADER)
38#include "language.h"
39#endif
37 40
38static int last_button = BUTTON_NONE|BUTTON_REL; /* allow the ipod wheel to 41static int last_button = BUTTON_NONE|BUTTON_REL; /* allow the ipod wheel to
39 work on startup */ 42 work on startup */
@@ -56,6 +59,20 @@ static int unlock_combo = BUTTON_NONE;
56static bool screen_has_lock = false; 59static bool screen_has_lock = false;
57#endif /* HAVE_SOFTWARE_KEYLOCK */ 60#endif /* HAVE_SOFTWARE_KEYLOCK */
58 61
62#if defined(HAVE_LCD_BITMAP) && !defined(BOOTLOADER)
63/*
64 * checks whether the given language and context combination require that the
65 * button is horizontally inverted to support RTL language
66 *
67 */
68static bool rtl_button_flip_needed(int context)
69{
70 return lang_is_rtl() && ((context == CONTEXT_STD) ||
71 (context & CONTEXT_TREE) || (context & CONTEXT_MAINMENU) ||
72 (context & CONTEXT_TREE));
73}
74#endif
75
59/* 76/*
60 * do_button_check is the worker function for get_default_action. 77 * do_button_check is the worker function for get_default_action.
61 * returns ACTION_UNKNOWN or the requested return value from the list. 78 * returns ACTION_UNKNOWN or the requested return value from the list.
@@ -201,6 +218,11 @@ static int get_action_worker(int context, int timeout,
201 context &= ~ALLOW_SOFTLOCK; 218 context &= ~ALLOW_SOFTLOCK;
202#endif /* HAS_BUTTON_HOLD */ 219#endif /* HAS_BUTTON_HOLD */
203 220
221#if defined(HAVE_LCD_BITMAP) && !defined(BOOTLOADER)
222 if (rtl_button_flip_needed(context))
223 button = button_flip_horizontally(button);
224#endif
225
204 /* logf("%x,%x",last_button,button); */ 226 /* logf("%x,%x",last_button,button); */
205 while (1) 227 while (1)
206 { 228 {