summaryrefslogtreecommitdiff
path: root/apps/menu.c
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2002-06-14 08:47:44 +0000
committerDaniel Stenberg <daniel@haxx.se>2002-06-14 08:47:44 +0000
commitbf603f98cbc9e7cb290771908112c3465580f7d1 (patch)
tree1921da055ed8bd7e2e6167a1cec12f155caa2ce6 /apps/menu.c
parent35facde5760ecba693b7dd40922efaa3f2a8c37e (diff)
downloadrockbox-bf603f98cbc9e7cb290771908112c3465580f7d1.zip
rockbox-bf603f98cbc9e7cb290771908112c3465580f7d1.tar.gz
rockbox-bf603f98cbc9e7cb290771908112c3465580f7d1.tar.bz2
rockbox-bf603f98cbc9e7cb290771908112c3465580f7d1.tar.xz
made to use the new cursor bitmap on the recorder, so put_cursorxy() is
now a better way to position the cursor git-svn-id: svn://svn.rockbox.org/rockbox/trunk@993 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/menu.c')
-rw-r--r--apps/menu.c38
1 files changed, 30 insertions, 8 deletions
diff --git a/apps/menu.c b/apps/menu.c
index b8c652c..c4ddd62 100644
--- a/apps/menu.c
+++ b/apps/menu.c
@@ -23,6 +23,10 @@
#include "kernel.h"
#include "debug.h"
+#ifdef HAVE_LCD_BITMAP
+#include "icons.h"
+#endif
+
struct menu {
int top;
int cursor;
@@ -38,19 +42,37 @@ struct menu {
#define MENU_LINES 2
#endif
-#ifdef HAVE_LCD_BITMAP
-#define CURSOR_CHAR "-"
-#else
#ifdef HAVE_NEW_CHARCELL_LCD
#define CURSOR_CHAR "\x7e"
#else
#define CURSOR_CHAR "\x89"
#endif
-#endif
static struct menu menus[MAX_MENUS];
static bool inuse[MAX_MENUS] = { false };
+/* count in letter posistions, NOT pixels */
+void put_cursorxy(int x, int y, bool on)
+{
+ /* place the cursor */
+ if(on) {
+#ifdef HAVE_LCD_BITMAP
+ lcd_bitmap ( bitmap_icons_6x8[Cursor],
+ x*6, y*8, 6, 8, true);
+#else
+ lcd_puts(x, y, CURSOR_CHAR);
+#endif
+ }
+ else {
+#ifdef HAVE_LCD_BITMAP
+ /* I use xy here since it needs to disregard the margins */
+ lcd_putsxy (x*6, y*8, " ", 0);
+#else
+ lcd_puts(x, y, " ");
+#endif
+ }
+}
+
static void menu_draw(int m)
{
int i = 0;
@@ -66,8 +88,8 @@ static void menu_draw(int m)
lcd_puts(1, i-menus[m].top, menus[m].items[i].desc);
}
- /* place the cursor */
- lcd_puts(0, menus[m].cursor - menus[m].top, CURSOR_CHAR);
+ /* place the cursor */
+ put_cursorxy(0, menus[m].cursor - menus[m].top, true);
lcd_update();
}
@@ -80,7 +102,7 @@ static void put_cursor(int m, int target)
{
bool do_update = true;
- lcd_puts(0, menus[m].cursor - menus[m].top, " ");
+ put_cursorxy(0, menus[m].cursor - menus[m].top, false);
menus[m].cursor = target;
if ( target < menus[m].top ) {
@@ -95,7 +117,7 @@ static void put_cursor(int m, int target)
}
if (do_update) {
- lcd_puts(0, menus[m].cursor - menus[m].top, CURSOR_CHAR);
+ put_cursorxy(0, menus[m].cursor - menus[m].top, true);
lcd_update();
}