Commit 7aee3932 authored by Projects's avatar Projects

menu: Entries have icons.

parent 3dfde748
...@@ -44,13 +44,11 @@ typedef struct { ...@@ -44,13 +44,11 @@ typedef struct {
///> Application name ///> Application name
const char* name; const char* name;
// TODO const char* icon;
/** /**
* @brief Main application routine. * @brief Main application routine.
* @params Optional parameters, dependendent on application. * @params Optional parameters, dependendent on application.
*/ */
void (*main)(void* params); void (*main)(void* params);
} application; } application;
/** /**
......
...@@ -58,10 +58,13 @@ static void menu_screen_redraw(struct ui_widget *w) ...@@ -58,10 +58,13 @@ static void menu_screen_redraw(struct ui_widget *w)
127, (i + 1) * LINE_HEIGHT, 1); 127, (i + 1) * LINE_HEIGHT, 1);
} }
// TODO draw icon menu_entry *ent = &(*current_menu)->entries[pos];
// draw icon
if(ent->icon)
gfx_draw_bitmap(&w->dc, 0, i * LINE_HEIGHT, ent->icon);
// display label (either app or submenu) // display label (either app or submenu)
menu_entry *ent = &(*current_menu)->entries[pos];
if(ent->type == APP) { if(ent->type == APP) {
application *a = ent->data.app; application *a = ent->data.app;
......
...@@ -40,34 +40,34 @@ int get_menu_size(const menu_list *menu) { ...@@ -40,34 +40,34 @@ int get_menu_size(const menu_list *menu) {
menu_list sub_menu = { menu_list sub_menu = {
"Submenu", "Submenu",
{ {
{ APP, { .app = &clock } }, { APP, &gps_receiving, { .app = &clock } },
{ APP, { .app = &clock } }, { APP, &battery, { .app = &clock } },
{ APP, { .app = &clock } }, { APP, &gps_disconnected, { .app = &clock } },
{ END, { NULL } } { END, &gps_searching, { NULL } }
} }
}; };
menu_list main_menu = { menu_list main_menu = {
"Main menu", "Main menu",
{ {
{ APP, { .app = &clock } }, { APP, &gps_receiving, { .app = &clock } },
{ APP, { .app = &clock } }, { APP, &battery_charging, { .app = &clock } },
{ SUBMENU, { .submenu = &sub_menu } }, { SUBMENU, NULL, { .submenu = &sub_menu } },
{ APP, { .app = &clock } }, { APP, &battery, { .app = &clock } },
{ APP, { .app = &clock } }, { APP, NULL, { .app = &clock } },
{ APP, { .app = &clock } }, { APP, &gps_disconnected, { .app = &clock } },
{ APP, { .app = &clock } }, { APP, NULL, { .app = &clock } },
{ SUBMENU, { .submenu = &sub_menu } }, { SUBMENU, &battery_charging, { .submenu = &sub_menu } },
{ APP, { .app = &clock } }, { APP, NULL, { .app = &clock } },
{ APP, { .app = &clock } }, { APP, NULL, { .app = &clock } },
{ APP, { .app = &clock } }, { APP, NULL, { .app = &clock } },
{ APP, { .app = &clock } }, { APP, NULL, { .app = &clock } },
{ SUBMENU, { .submenu = &sub_menu } }, { SUBMENU, NULL, { .submenu = &sub_menu } },
{ SUBMENU, { .submenu = &sub_menu } }, { SUBMENU, NULL, { .submenu = &sub_menu } },
{ SUBMENU, { .submenu = &sub_menu } }, { SUBMENU, NULL, { .submenu = &sub_menu } },
{ APP, { .app = &clock } }, { APP, NULL, { .app = &clock } },
{ APP, { .app = &clock } }, { APP, NULL, { .app = &clock } },
{ END, { NULL } } { END, NULL, { NULL } }
} }
}; };
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
#define MENU_STRUCT_H #define MENU_STRUCT_H
#include "application.h" #include "application.h"
#include "bitmaps.h"
/** /**
* @brief Type of menu entry. * @brief Type of menu entry.
...@@ -45,6 +46,8 @@ enum entry_type { ...@@ -45,6 +46,8 @@ enum entry_type {
typedef struct menu_entry_t { typedef struct menu_entry_t {
enum entry_type type; enum entry_type type;
const struct rle_bitmap *icon;
union { union {
application *app; application *app;
struct menu_list_t *submenu; struct menu_list_t *submenu;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment