feat(style): add LV_STATE_ALT for simple dark/light switching (#9691)

This commit is contained in:
Gabor Kiss-Vamosi
2026-02-05 16:30:01 +01:00
committed by GitHub
parent bc76ee1857
commit 3e2b395724
7 changed files with 33 additions and 24 deletions
@@ -46,6 +46,7 @@ States
A widget can be in a combination of the following states:
- :cpp:enumerator:`LV_STATE_DEFAULT`: Normal, released state.
- :cpp:enumerator:`LV_STATE_ALT`: Alternative style settings, e.g. dark mode.
- :cpp:enumerator:`LV_STATE_CHECKED`: Toggled or checked state.
- :cpp:enumerator:`LV_STATE_FOCUSED`: Focused via keypad, encoder, or clicked via
touchpad/mouse.
@@ -264,6 +264,7 @@ States
Widgets can be in a combination of the following states:
- :cpp:enumerator:`LV_STATE_DEFAULT`: Normal, released state
- :cpp:enumerator:`LV_STATE_ALT`: Alternative style settings, e.g. dark mode.
- :cpp:enumerator:`LV_STATE_CHECKED`: Toggled or checked state
- :cpp:enumerator:`LV_STATE_FOCUSED`: Focused via keypad or encoder or clicked via touchpad/mouse
- :cpp:enumerator:`LV_STATE_FOCUS_KEY`: Focused via keypad or encoder but not via touchpad/mouse
+1
View File
@@ -23,6 +23,7 @@ PikaObj* pika_lv_event_listener_g;
void pika_lvgl_STATE___init__(PikaObj* self) {
obj_setInt(self, "DEFAULT", LV_STATE_DEFAULT);
obj_setInt(self, "ALT", LV_STATE_ALT);
obj_setInt(self, "CHECKED", LV_STATE_CHECKED);
obj_setInt(self, "FOCUSED", LV_STATE_FOCUSED);
obj_setInt(self, "FOCUS_KEY", LV_STATE_FOCUS_KEY);
+11 -9
View File
@@ -122,15 +122,17 @@ enum _lv_signed_prop_id_t {
LV_PROPERTY_ID(OBJ, FLAG_END, LV_PROPERTY_TYPE_INT, 30),
LV_PROPERTY_ID(OBJ, STATE_START, LV_PROPERTY_TYPE_INT, 31),
LV_PROPERTY_ID(OBJ, STATE_CHECKED, LV_PROPERTY_TYPE_INT, 31),
LV_PROPERTY_ID(OBJ, STATE_FOCUSED, LV_PROPERTY_TYPE_INT, 32),
LV_PROPERTY_ID(OBJ, STATE_FOCUS_KEY, LV_PROPERTY_TYPE_INT, 33),
LV_PROPERTY_ID(OBJ, STATE_EDITED, LV_PROPERTY_TYPE_INT, 34),
LV_PROPERTY_ID(OBJ, STATE_HOVERED, LV_PROPERTY_TYPE_INT, 35),
LV_PROPERTY_ID(OBJ, STATE_PRESSED, LV_PROPERTY_TYPE_INT, 36),
LV_PROPERTY_ID(OBJ, STATE_SCROLLED, LV_PROPERTY_TYPE_INT, 37),
LV_PROPERTY_ID(OBJ, STATE_DISABLED, LV_PROPERTY_TYPE_INT, 38),
/*not used bit8-bit11*/
LV_PROPERTY_ID(OBJ, STATE_ALT, LV_PROPERTY_TYPE_INT, 31),
/*1 reserved*/
LV_PROPERTY_ID(OBJ, STATE_CHECKED, LV_PROPERTY_TYPE_INT, 33),
LV_PROPERTY_ID(OBJ, STATE_FOCUSED, LV_PROPERTY_TYPE_INT, 34),
LV_PROPERTY_ID(OBJ, STATE_FOCUS_KEY, LV_PROPERTY_TYPE_INT, 35),
LV_PROPERTY_ID(OBJ, STATE_EDITED, LV_PROPERTY_TYPE_INT, 36),
LV_PROPERTY_ID(OBJ, STATE_HOVERED, LV_PROPERTY_TYPE_INT, 37),
LV_PROPERTY_ID(OBJ, STATE_PRESSED, LV_PROPERTY_TYPE_INT, 38),
LV_PROPERTY_ID(OBJ, STATE_SCROLLED, LV_PROPERTY_TYPE_INT, 39),
LV_PROPERTY_ID(OBJ, STATE_DISABLED, LV_PROPERTY_TYPE_INT, 40),
/*2 reserved*/
LV_PROPERTY_ID(OBJ, STATE_USER_1, LV_PROPERTY_TYPE_INT, 43),
LV_PROPERTY_ID(OBJ, STATE_USER_2, LV_PROPERTY_TYPE_INT, 44),
LV_PROPERTY_ID(OBJ, STATE_USER_3, LV_PROPERTY_TYPE_INT, 45),
+16 -13
View File
@@ -30,19 +30,22 @@ extern "C" {
* OR-ed values are possible
*/
typedef enum {
LV_STATE_DEFAULT = 0x0000,
LV_STATE_CHECKED = 0x0001,
LV_STATE_FOCUSED = 0x0002,
LV_STATE_FOCUS_KEY = 0x0004,
LV_STATE_EDITED = 0x0008,
LV_STATE_HOVERED = 0x0010,
LV_STATE_PRESSED = 0x0020,
LV_STATE_SCROLLED = 0x0040,
LV_STATE_DISABLED = 0x0080,
LV_STATE_USER_1 = 0x1000,
LV_STATE_USER_2 = 0x2000,
LV_STATE_USER_3 = 0x4000,
LV_STATE_USER_4 = 0x8000,
LV_STATE_DEFAULT = 0,
LV_STATE_ALT = 1 << 0,
/*1 reserved*/
LV_STATE_CHECKED = 1 << 2,
LV_STATE_FOCUSED = 1 << 3,
LV_STATE_FOCUS_KEY = 1 << 4,
LV_STATE_EDITED = 1 << 5,
LV_STATE_HOVERED = 1 << 6,
LV_STATE_PRESSED = 1 << 7,
LV_STATE_SCROLLED = 1 << 8,
LV_STATE_DISABLED = 1 << 9,
/*2 reserved*/
LV_STATE_USER_1 = 1 << 12,
LV_STATE_USER_2 = 1 << 13,
LV_STATE_USER_3 = 1 << 14,
LV_STATE_USER_4 = 1 << 15,
LV_STATE_ANY = 0xFFFF, /**< Special value can be used in some functions to target all states*/
} lv_state_t;
+2 -1
View File
@@ -14,7 +14,7 @@
* Generated code from properties.py
*/
/* *INDENT-OFF* */
const lv_property_name_t lv_obj_property_names[74] = {
const lv_property_name_t lv_obj_property_names[75] = {
{"align", LV_PROPERTY_OBJ_ALIGN,},
{"child_count", LV_PROPERTY_OBJ_CHILD_COUNT,},
{"content_height", LV_PROPERTY_OBJ_CONTENT_HEIGHT,},
@@ -71,6 +71,7 @@ const lv_property_name_t lv_obj_property_names[74] = {
{"scroll_x", LV_PROPERTY_OBJ_SCROLL_X,},
{"scroll_y", LV_PROPERTY_OBJ_SCROLL_Y,},
{"scrollbar_mode", LV_PROPERTY_OBJ_SCROLLBAR_MODE,},
{"state_alt", LV_PROPERTY_OBJ_STATE_ALT,},
{"state_any", LV_PROPERTY_OBJ_STATE_ANY,},
{"state_checked", LV_PROPERTY_OBJ_STATE_CHECKED,},
{"state_disabled", LV_PROPERTY_OBJ_STATE_DISABLED,},
+1 -1
View File
@@ -23,7 +23,7 @@
extern const lv_property_name_t lv_led_property_names[2];
extern const lv_property_name_t lv_line_property_names[1];
extern const lv_property_name_t lv_menu_property_names[2];
extern const lv_property_name_t lv_obj_property_names[74];
extern const lv_property_name_t lv_obj_property_names[75];
extern const lv_property_name_t lv_roller_property_names[3];
extern const lv_property_name_t lv_scale_property_names[8];
extern const lv_property_name_t lv_slider_property_names[8];