#include #include #include #include #include #include "analog.h" #include "firehazard.h" #include "graphics/bitmaps.h" #include "liquid.h" #include "graphics/drawing.h" #include "graphics/display_spec.h" #include "scenes.h" #include "scene_menu.h" static void paint(struct MenuScene *self) { LCD_setShadeOverlay(); // frame around the menu items LCD_setRect(self->x - 3, self->y - 3, self->x + self->ncols*6 + 3, self->y + self->nlines * 9 + 2, true, WHITE); LCD_setRect(self->x - 2, self->y - 2, self->x + self->ncols*6 + 2, self->y + self->nlines * 9 + 1, false, BLACK); MenuScene_Paint(self); } struct MenuScene *NewScene_PopupMenu(struct MenuItem *items, size_t items_len) { struct MenuScene * scene = NewScene_Menu(items, items_len); scene->x = 12; scene->y = 6; scene->ncols = 10; scene->nlines = MIN(items_len, 4); scene->base.paint = (Scene_paint_t) paint; return scene; }