diff options
author | Diego Miguel <dmlls@diegomiguel.me> | 2022-03-05 01:12:44 +0100 |
---|---|---|
committer | Diego Miguel <dmlls@diegomiguel.me> | 2022-06-11 16:56:35 +0200 |
commit | b561e7f3d0a232d57231869f0c69120741324b0f (patch) | |
tree | c71185a81ecb1a2a75b914e78f8bcd255cf0fa59 /src/displayapp/screens/CheckboxList.h | |
parent | f9d2b78c8d3e83a067bb9ff9067487f39b52b114 (diff) |
Implement CheckboxList screen
Diffstat (limited to 'src/displayapp/screens/CheckboxList.h')
-rw-r--r-- | src/displayapp/screens/CheckboxList.h | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/displayapp/screens/CheckboxList.h b/src/displayapp/screens/CheckboxList.h new file mode 100644 index 00000000..6660acde --- /dev/null +++ b/src/displayapp/screens/CheckboxList.h @@ -0,0 +1,49 @@ +#pragma once + +#include <lvgl/lvgl.h> +#include <cstdint> +#include <memory> +#include "displayapp/screens/Screen.h" +#include "displayapp/Apps.h" +#include "components/settings/Settings.h" + +#define MAXLISTITEMS 4 + +namespace Pinetime { + namespace Applications { + namespace Screens { + class CheckboxList : public Screen { + public: + 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*, MAXLISTITEMS> 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*, MAXLISTITEMS> options; + + lv_obj_t* cbOption[MAXLISTITEMS]; + + lv_point_t pageIndicatorBasePoints[2]; + lv_point_t pageIndicatorPoints[2]; + lv_obj_t* pageIndicatorBase; + lv_obj_t* pageIndicator; + }; + } + } +} |