ref: fdc89f1a20889c0295534f58dc2e82ce8c55a18b
src/displayapp/screens/CheckboxList.h
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
#pragma once #include "displayapp/Apps.h" #include "displayapp/screens/Screen.h" #include <array> #include <cstdint> #include <functional> #include <lvgl/lvgl.h> #include <memory> #include "displayapp/widgets/PageIndicator.h" namespace Pinetime { namespace Applications { namespace Screens { class CheckboxList : public Screen { public: static constexpr size_t MaxItems = 4; struct Item { const char* name; bool enabled; }; CheckboxList(const uint8_t screenID, const uint8_t numScreens, DisplayApp* app, const char* optionsTitle, const char* optionsSymbol, uint32_t originalValue, std::function<void(uint32_t)> OnValueChanged, std::array<Item, MaxItems> options); ~CheckboxList() override; void UpdateSelected(lv_obj_t* object, lv_event_t event); private: const uint8_t screenID; std::function<void(uint32_t)> OnValueChanged; std::array<Item, MaxItems> options; std::array<lv_obj_t*, MaxItems> cbOption; uint32_t value; Widgets::PageIndicator pageIndicator; }; } } } |