ref: 79728730d7eba048192efcf6a455beecb5db562d
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 46 47 48 |
#pragma once #include <lvgl/lvgl.h> #include <cstdint> #include <memory> #include <array> #include "displayapp/screens/Screen.h" #include "displayapp/Apps.h" #include "components/settings/Settings.h" namespace Pinetime { namespace Applications { namespace Screens { class CheckboxList : public Screen { public: static constexpr size_t MaxItems = 4; CheckboxList(const uint8_t screenID, const uint8_t numScreens, DisplayApp* app, Controllers::Settings& settingsController, const char* optionsTitle, const char* optionsSymbol, void (Controllers::Settings::*SetOptionIndex)(uint8_t), uint8_t (Controllers::Settings::*GetOptionIndex)() const, std::array<const char*, MaxItems> options); ~CheckboxList() override; void UpdateSelected(lv_obj_t* object, lv_event_t event); private: const uint8_t screenID; Controllers::Settings& settingsController; const char* optionsTitle; const char* optionsSymbol; void (Controllers::Settings::*SetOptionIndex)(uint8_t); uint8_t (Controllers::Settings::*GetOptionIndex)() const; std::array<const char*, MaxItems> options; std::array<lv_obj_t*, MaxItems> cbOption; std::array<lv_point_t, 2> pageIndicatorBasePoints; std::array<lv_point_t, 2> pageIndicatorPoints; lv_obj_t* pageIndicatorBase; lv_obj_t* pageIndicator; }; } } } |