| /* firmware_menu.hpp | |
| * header file for Firmware menu | |
| * | |
| * The firmware menu is the main menu displayed when the user presses the MENU button. | |
| * It is rendered on top of the current content that is shown on the screen. | |
| * It can be used to adjust various system settings or to show information | |
| * about the battery. | |
| */ | |
| #pragma once | |
| #include "SystemMenu/system_menu.hpp" | |
| class FirmwareMenu final : public SystemMenu { | |
| public: | |
| using SystemMenu::SystemMenu; | |
| // Prepare to show the firmware menu | |
| void prepare() override; | |
| void draw_slider(Point pos, int width, float value, Pen colour) const; | |
| void render_footer(int x, int y, int w) override; | |
| protected: | |
| void render_item(const Item &item, int y, int index) const override; | |
| // Update menu items -- update backlight and volume by checking some keys | |
| void update_item(const Item &item) override; | |
| // Update entire menu | |
| void update_menu(uint32_t time) override; | |
| // The 'A' button was clicked on a menu item | |
| void item_activated(const Item &item) override; | |
| private: | |
| // handle updating slider values | |
| void update_slider_item_value(float &value); | |
| private: | |
| Pen bar_highlight_color; | |
| }; | |
| extern FirmwareMenu firmware_menu; |