WIP: default theme

This commit is contained in:
Raphael Coeffic
2022-06-11 15:13:11 +02:00
committed by Raphael Coeffic
parent 83a5fd913f
commit 2a0bb66daf
12 changed files with 89 additions and 88 deletions
+21 -17
View File
@@ -20,25 +20,22 @@
#include "checkbox.h"
#include "theme.h"
LvglWidgetFactory checkBoxFactory = { lv_checkbox_create, nullptr };
lv_style_t style_indicator;
lv_style_t style_edit;
static void checkbox_event_handler(lv_event_t * e)
static void checkbox_event_handler(lv_event_t* e)
{
lv_obj_t * target = lv_event_get_target(e);
CheckBox* cb = (CheckBox *)lv_obj_get_user_data(target);
lv_obj_t* target = lv_event_get_target(e);
CheckBox* cb = (CheckBox*)lv_obj_get_user_data(target);
onKeyPress();
if (cb)
cb->setValue(lv_obj_get_state(target) & LV_STATE_CHECKED);
if (cb) cb->setValue(lv_obj_get_state(target) & LV_STATE_CHECKED);
}
CheckBox::CheckBox(Window* parent, const rect_t& rect,
std::function<uint8_t()> getValue,
std::function<void(uint8_t)> setValue, WindowFlags flags) :
FormField(parent, rect, flags, 0, &checkBoxFactory),
FormField(parent, rect, flags, 0, lv_checkbox_create),
_getValue(std::move(getValue)),
_setValue(std::move(setValue))
{
@@ -46,23 +43,30 @@ CheckBox::CheckBox(Window* parent, const rect_t& rect,
setWidth(size);
setHeight(size);
//TODO: migrate to default theme
// BORDER
lv_obj_set_style_border_color(lvobj, makeLvColor(COLOR_THEME_SECONDARY2), LV_PART_INDICATOR);
lv_obj_set_style_border_color(lvobj, makeLvColor(COLOR_THEME_SECONDARY2),
LV_PART_INDICATOR);
lv_obj_set_style_border_width(lvobj, 1, LV_PART_INDICATOR);
lv_obj_set_style_border_color(lvobj, makeLvColor(COLOR_THEME_FOCUS), LV_PART_INDICATOR | LV_STATE_FOCUSED);
lv_obj_set_style_border_color(lvobj, makeLvColor(COLOR_THEME_FOCUS),
LV_PART_INDICATOR | LV_STATE_FOCUSED);
lv_obj_set_style_border_width(lvobj, 2, LV_PART_INDICATOR | LV_STATE_FOCUSED);
// UNCHECKED BACKGROUND
lv_obj_set_style_bg_color(lvobj, makeLvColor(COLOR_THEME_PRIMARY2), LV_PART_INDICATOR);
lv_obj_set_style_bg_color(lvobj, makeLvColor(COLOR_THEME_PRIMARY2), LV_PART_INDICATOR | LV_STATE_CHECKED);
lv_obj_set_style_bg_color(lvobj, makeLvColor(COLOR_THEME_PRIMARY2),
LV_PART_INDICATOR);
lv_obj_set_style_bg_color(lvobj, makeLvColor(COLOR_THEME_PRIMARY2),
LV_PART_INDICATOR | LV_STATE_CHECKED);
lv_obj_set_style_text_color(lvobj, makeLvColor(COLOR_THEME_SECONDARY1), LV_PART_INDICATOR | LV_STATE_CHECKED);
lv_obj_set_style_text_color(lvobj, makeLvColor(COLOR_THEME_SECONDARY1),
LV_PART_INDICATOR | LV_STATE_CHECKED);
if (_getValue())
lv_obj_add_state(lvobj, LV_STATE_CHECKED);
if (_getValue()) lv_obj_add_state(lvobj, LV_STATE_CHECKED);
lv_obj_add_event_cb(lvobj, checkbox_event_handler, LV_EVENT_VALUE_CHANGED, this);
lv_obj_add_event_cb(lvobj, checkbox_event_handler, LV_EVENT_VALUE_CHANGED,
this);
}
#if defined(HARDWARE_KEYS)