diff --git a/docs/src/common-widget-features/parts_and_states.rst b/docs/src/common-widget-features/parts_and_states.rst index ab8e53e2e9..023b248750 100644 --- a/docs/src/common-widget-features/parts_and_states.rst +++ b/docs/src/common-widget-features/parts_and_states.rst @@ -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. diff --git a/docs/src/getting_started/learn_the_basics.rst b/docs/src/getting_started/learn_the_basics.rst index b930cd7427..8b7804fabb 100644 --- a/docs/src/getting_started/learn_the_basics.rst +++ b/docs/src/getting_started/learn_the_basics.rst @@ -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 diff --git a/env_support/pikascript/pika_lvgl.c b/env_support/pikascript/pika_lvgl.c index 70021f7b68..3662e1d0f4 100644 --- a/env_support/pikascript/pika_lvgl.c +++ b/env_support/pikascript/pika_lvgl.c @@ -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); diff --git a/src/core/lv_obj.h b/src/core/lv_obj.h index 82a715a787..097e8d4876 100644 --- a/src/core/lv_obj.h +++ b/src/core/lv_obj.h @@ -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), diff --git a/src/core/lv_obj_style.h b/src/core/lv_obj_style.h index 7f04c383cf..20339dfe9b 100644 --- a/src/core/lv_obj_style.h +++ b/src/core/lv_obj_style.h @@ -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; diff --git a/src/widgets/property/lv_obj_properties.c b/src/widgets/property/lv_obj_properties.c index f033151af8..b40b6e34fa 100644 --- a/src/widgets/property/lv_obj_properties.c +++ b/src/widgets/property/lv_obj_properties.c @@ -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,}, diff --git a/src/widgets/property/lv_obj_property_names.h b/src/widgets/property/lv_obj_property_names.h index 336d204bea..6e34861f10 100644 --- a/src/widgets/property/lv_obj_property_names.h +++ b/src/widgets/property/lv_obj_property_names.h @@ -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];