diff options
author | Tomer Shalev <shalev.tomer@gmail.com> | 2009-10-05 17:17:30 +0000 |
---|---|---|
committer | Tomer Shalev <shalev.tomer@gmail.com> | 2009-10-05 17:17:30 +0000 |
commit | f7bd7252e14a151217f1a9b7eee6200eb23586a8 (patch) | |
tree | 2a676f3f9dc9248bfb8a9c6b1a39b4197471708c /apps/action.c | |
parent | e04acd8c3e8cbcec4eab0ffe046ec0935a15ab85 (diff) | |
download | rockbox-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.c | 22 |
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 | ||
38 | static int last_button = BUTTON_NONE|BUTTON_REL; /* allow the ipod wheel to | 41 | static 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; | |||
56 | static bool screen_has_lock = false; | 59 | static 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 | */ | ||
68 | static 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 | { |