Commit 7aee3932 authored by Projects's avatar Projects

menu: Entries have icons.

parent 3dfde748
......@@ -44,13 +44,11 @@ typedef struct {
///> Application name
const char* name;
// TODO const char* icon;
/**
* @brief Main application routine.
* @params Optional parameters, dependendent on application.
*/
void (*main)(void* params);
void (*main)(void* params);
} application;
/**
......
......@@ -58,10 +58,13 @@ static void menu_screen_redraw(struct ui_widget *w)
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)
menu_entry *ent = &(*current_menu)->entries[pos];
if(ent->type == APP) {
application *a = ent->data.app;
......
......@@ -40,34 +40,34 @@ int get_menu_size(const menu_list *menu) {
menu_list sub_menu = {
"Submenu",
{
{ APP, { .app = &clock } },
{ APP, { .app = &clock } },
{ APP, { .app = &clock } },
{ END, { NULL } }
{ APP, &gps_receiving, { .app = &clock } },
{ APP, &battery, { .app = &clock } },
{ APP, &gps_disconnected, { .app = &clock } },
{ END, &gps_searching, { NULL } }
}
};
menu_list main_menu = {
"Main menu",
{
{ APP, { .app = &clock } },
{ APP, { .app = &clock } },
{ SUBMENU, { .submenu = &sub_menu } },
{ APP, { .app = &clock } },
{ APP, { .app = &clock } },
{ APP, { .app = &clock } },
{ APP, { .app = &clock } },
{ SUBMENU, { .submenu = &sub_menu } },
{ APP, { .app = &clock } },
{ APP, { .app = &clock } },
{ APP, { .app = &clock } },
{ APP, { .app = &clock } },
{ SUBMENU, { .submenu = &sub_menu } },
{ SUBMENU, { .submenu = &sub_menu } },
{ SUBMENU, { .submenu = &sub_menu } },
{ APP, { .app = &clock } },
{ APP, { .app = &clock } },
{ END, { NULL } }
{ APP, &gps_receiving, { .app = &clock } },
{ APP, &battery_charging, { .app = &clock } },
{ SUBMENU, NULL, { .submenu = &sub_menu } },
{ APP, &battery, { .app = &clock } },
{ APP, NULL, { .app = &clock } },
{ APP, &gps_disconnected, { .app = &clock } },
{ APP, NULL, { .app = &clock } },
{ SUBMENU, &battery_charging, { .submenu = &sub_menu } },
{ APP, NULL, { .app = &clock } },
{ APP, NULL, { .app = &clock } },
{ APP, NULL, { .app = &clock } },
{ APP, NULL, { .app = &clock } },
{ SUBMENU, NULL, { .submenu = &sub_menu } },
{ SUBMENU, NULL, { .submenu = &sub_menu } },
{ SUBMENU, NULL, { .submenu = &sub_menu } },
{ APP, NULL, { .app = &clock } },
{ APP, NULL, { .app = &clock } },
{ END, NULL, { NULL } }
}
};
......@@ -28,6 +28,7 @@
#define MENU_STRUCT_H
#include "application.h"
#include "bitmaps.h"
/**
* @brief Type of menu entry.
......@@ -45,6 +46,8 @@ enum entry_type {
typedef struct menu_entry_t {
enum entry_type type;
const struct rle_bitmap *icon;
union {
application *app;
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