feat(obj): add more obj properties (#6537)

Signed-off-by: Neo Xu <neo.xu1990@gmail.com>
This commit is contained in:
Neo Xu
2024-07-25 01:16:07 +08:00
committed by Gabor Kiss-Vamosi
parent 9e3ea81dde
commit e72fa89822
5 changed files with 158 additions and 4 deletions

View File

@@ -60,6 +60,108 @@ static const lv_property_ops_t properties[] = {
.setter = lv_obj_set_parent,
.getter = lv_obj_get_parent,
},
{
.id = LV_PROPERTY_OBJ_X,
.setter = lv_obj_set_x,
.getter = lv_obj_get_x,
},
{
.id = LV_PROPERTY_OBJ_Y,
.setter = lv_obj_set_y,
.getter = lv_obj_get_y,
},
{
.id = LV_PROPERTY_OBJ_W,
.setter = lv_obj_set_width,
.getter = lv_obj_get_width,
},
{
.id = LV_PROPERTY_OBJ_H,
.setter = lv_obj_set_height,
.getter = lv_obj_get_height,
},
{
.id = LV_PROPERTY_OBJ_CONTENT_WIDTH,
.setter = lv_obj_set_content_width,
.getter = lv_obj_get_content_width,
},
{
.id = LV_PROPERTY_OBJ_CONTENT_HEIGHT,
.setter = lv_obj_set_content_height,
.getter = lv_obj_get_content_height,
},
{
.id = LV_PROPERTY_OBJ_LAYOUT,
.setter = lv_obj_set_layout,
},
{
.id = LV_PROPERTY_OBJ_ALIGN,
.setter = lv_obj_set_align,
},
{
.id = LV_PROPERTY_OBJ_SCROLLBAR_MODE,
.setter = lv_obj_set_scrollbar_mode,
.getter = lv_obj_get_scrollbar_mode,
},
{
.id = LV_PROPERTY_OBJ_SCROLL_DIR,
.setter = lv_obj_set_scroll_dir,
.getter = lv_obj_get_scroll_dir,
},
{
.id = LV_PROPERTY_OBJ_SCROLL_SNAP_X,
.setter = lv_obj_set_scroll_snap_x,
.getter = lv_obj_get_scroll_snap_x,
},
{
.id = LV_PROPERTY_OBJ_SCROLL_SNAP_Y,
.setter = lv_obj_set_scroll_snap_y,
.getter = lv_obj_get_scroll_snap_y,
},
{
.id = LV_PROPERTY_OBJ_SCROLL_TOP,
.getter = lv_obj_get_scroll_top,
},
{
.id = LV_PROPERTY_OBJ_SCROLL_BOTTOM,
.getter = lv_obj_get_scroll_bottom,
},
{
.id = LV_PROPERTY_OBJ_SCROLL_LEFT,
.getter = lv_obj_get_scroll_left,
},
{
.id = LV_PROPERTY_OBJ_SCROLL_RIGHT,
.getter = lv_obj_get_scroll_right,
},
{
.id = LV_PROPERTY_OBJ_SCROLL_END,
.getter = lv_obj_get_scroll_end,
},
{
.id = LV_PROPERTY_OBJ_EXT_DRAW_SIZE,
.getter = _lv_obj_get_ext_draw_size,
},
{
.id = LV_PROPERTY_OBJ_EVENT_COUNT,
.getter = lv_obj_get_event_count,
},
{
.id = LV_PROPERTY_OBJ_SCREEN,
.getter = lv_obj_get_screen,
},
{
.id = LV_PROPERTY_OBJ_DISPLAY,
.getter = lv_obj_get_display,
},
{
.id = LV_PROPERTY_OBJ_CHILD_COUNT,
.getter = lv_obj_get_child_count,
},
{
.id = LV_PROPERTY_OBJ_INDEX,
.getter = lv_obj_get_index,
},
{
.id = LV_PROPERTY_ID_ANY,
.setter = lv_obj_set_any,

View File

@@ -181,7 +181,32 @@ enum {
LV_PROPERTY_ID(OBJ, STATE_END, LV_PROPERTY_TYPE_INT, 47),
/*OBJ normal properties*/
LV_PROPERTY_ID(OBJ, PARENT, LV_PROPERTY_TYPE_POINTER, 31),
LV_PROPERTY_ID(OBJ, PARENT, LV_PROPERTY_TYPE_OBJ, 48),
LV_PROPERTY_ID(OBJ, X, LV_PROPERTY_TYPE_INT, 49),
LV_PROPERTY_ID(OBJ, Y, LV_PROPERTY_TYPE_INT, 50),
LV_PROPERTY_ID(OBJ, W, LV_PROPERTY_TYPE_INT, 51),
LV_PROPERTY_ID(OBJ, H, LV_PROPERTY_TYPE_INT, 52),
LV_PROPERTY_ID(OBJ, CONTENT_WIDTH, LV_PROPERTY_TYPE_INT, 53),
LV_PROPERTY_ID(OBJ, CONTENT_HEIGHT, LV_PROPERTY_TYPE_INT, 54),
LV_PROPERTY_ID(OBJ, LAYOUT, LV_PROPERTY_TYPE_INT, 55),
LV_PROPERTY_ID(OBJ, ALIGN, LV_PROPERTY_TYPE_INT, 56),
LV_PROPERTY_ID(OBJ, SCROLLBAR_MODE, LV_PROPERTY_TYPE_INT, 57),
LV_PROPERTY_ID(OBJ, SCROLL_DIR, LV_PROPERTY_TYPE_INT, 58),
LV_PROPERTY_ID(OBJ, SCROLL_SNAP_X, LV_PROPERTY_TYPE_INT, 59),
LV_PROPERTY_ID(OBJ, SCROLL_SNAP_Y, LV_PROPERTY_TYPE_INT, 60),
LV_PROPERTY_ID(OBJ, SCROLL_X, LV_PROPERTY_TYPE_INT, 61),
LV_PROPERTY_ID(OBJ, SCROLL_Y, LV_PROPERTY_TYPE_INT, 62),
LV_PROPERTY_ID(OBJ, SCROLL_TOP, LV_PROPERTY_TYPE_INT, 63),
LV_PROPERTY_ID(OBJ, SCROLL_BOTTOM, LV_PROPERTY_TYPE_INT, 64),
LV_PROPERTY_ID(OBJ, SCROLL_LEFT, LV_PROPERTY_TYPE_INT, 65),
LV_PROPERTY_ID(OBJ, SCROLL_RIGHT, LV_PROPERTY_TYPE_INT, 66),
LV_PROPERTY_ID(OBJ, SCROLL_END, LV_PROPERTY_TYPE_INT, 67),
LV_PROPERTY_ID(OBJ, EXT_DRAW_SIZE, LV_PROPERTY_TYPE_INT, 68),
LV_PROPERTY_ID(OBJ, EVENT_COUNT, LV_PROPERTY_TYPE_INT, 69),
LV_PROPERTY_ID(OBJ, SCREEN, LV_PROPERTY_TYPE_OBJ, 70),
LV_PROPERTY_ID(OBJ, DISPLAY, LV_PROPERTY_TYPE_POINTER, 71),
LV_PROPERTY_ID(OBJ, CHILD_COUNT, LV_PROPERTY_TYPE_INT, 72),
LV_PROPERTY_ID(OBJ, INDEX, LV_PROPERTY_TYPE_INT, 73),
LV_PROPERTY_OBJ_END,
};

View File

@@ -14,7 +14,14 @@
* Generated code from properties.py
*/
/* *INDENT-OFF* */
const lv_property_name_t lv_obj_property_names[48] = {
const lv_property_name_t lv_obj_property_names[73] = {
{"align", LV_PROPERTY_OBJ_ALIGN,},
{"child_count", LV_PROPERTY_OBJ_CHILD_COUNT,},
{"content_height", LV_PROPERTY_OBJ_CONTENT_HEIGHT,},
{"content_width", LV_PROPERTY_OBJ_CONTENT_WIDTH,},
{"display", LV_PROPERTY_OBJ_DISPLAY,},
{"event_count", LV_PROPERTY_OBJ_EVENT_COUNT,},
{"ext_draw_size", LV_PROPERTY_OBJ_EXT_DRAW_SIZE,},
{"flag_adv_hittest", LV_PROPERTY_OBJ_FLAG_ADV_HITTEST,},
{"flag_checkable", LV_PROPERTY_OBJ_FLAG_CHECKABLE,},
{"flag_click_focusable", LV_PROPERTY_OBJ_FLAG_CLICK_FOCUSABLE,},
@@ -47,7 +54,22 @@ const lv_property_name_t lv_obj_property_names[48] = {
{"flag_user_4", LV_PROPERTY_OBJ_FLAG_USER_4,},
{"flag_widget_1", LV_PROPERTY_OBJ_FLAG_WIDGET_1,},
{"flag_widget_2", LV_PROPERTY_OBJ_FLAG_WIDGET_2,},
{"h", LV_PROPERTY_OBJ_H,},
{"index", LV_PROPERTY_OBJ_INDEX,},
{"layout", LV_PROPERTY_OBJ_LAYOUT,},
{"parent", LV_PROPERTY_OBJ_PARENT,},
{"screen", LV_PROPERTY_OBJ_SCREEN,},
{"scroll_bottom", LV_PROPERTY_OBJ_SCROLL_BOTTOM,},
{"scroll_dir", LV_PROPERTY_OBJ_SCROLL_DIR,},
{"scroll_end", LV_PROPERTY_OBJ_SCROLL_END,},
{"scroll_left", LV_PROPERTY_OBJ_SCROLL_LEFT,},
{"scroll_right", LV_PROPERTY_OBJ_SCROLL_RIGHT,},
{"scroll_snap_x", LV_PROPERTY_OBJ_SCROLL_SNAP_X,},
{"scroll_snap_y", LV_PROPERTY_OBJ_SCROLL_SNAP_Y,},
{"scroll_top", LV_PROPERTY_OBJ_SCROLL_TOP,},
{"scroll_x", LV_PROPERTY_OBJ_SCROLL_X,},
{"scroll_y", LV_PROPERTY_OBJ_SCROLL_Y,},
{"scrollbar_mode", LV_PROPERTY_OBJ_SCROLLBAR_MODE,},
{"state_any", LV_PROPERTY_OBJ_STATE_ANY,},
{"state_checked", LV_PROPERTY_OBJ_STATE_CHECKED,},
{"state_disabled", LV_PROPERTY_OBJ_STATE_DISABLED,},
@@ -63,6 +85,9 @@ const lv_property_name_t lv_obj_property_names[48] = {
{"state_user_2", LV_PROPERTY_OBJ_STATE_USER_2,},
{"state_user_3", LV_PROPERTY_OBJ_STATE_USER_3,},
{"state_user_4", LV_PROPERTY_OBJ_STATE_USER_4,},
{"w", LV_PROPERTY_OBJ_W,},
{"x", LV_PROPERTY_OBJ_X,},
{"y", LV_PROPERTY_OBJ_Y,},
};
/* *INDENT-ON* */
#endif

View File

@@ -11,7 +11,7 @@
#if LV_USE_OBJ_PROPERTY && LV_USE_OBJ_PROPERTY_NAME
extern const lv_property_name_t lv_image_property_names[11];
extern const lv_property_name_t lv_obj_property_names[48];
extern const lv_property_name_t lv_obj_property_names[73];
extern const lv_property_name_t lv_style_property_names[111];
#endif
#endif

View File

@@ -255,7 +255,9 @@ void test_obj_property_name(void)
lv_obj_t * obj = lv_obj_create(lv_screen_active());
/*Style name*/
TEST_ASSERT_EQUAL_UINT32(LV_PROPERTY_STYLE_X, lv_obj_property_get_id(obj, "x"));
/*If widget property name conflicts with style name, property name comes first.*/
TEST_ASSERT_EQUAL_UINT32(LV_PROPERTY_OBJ_X, lv_obj_property_get_id(obj, "x"));
TEST_ASSERT_EQUAL_UINT32(LV_PROPERTY_STYLE_OPA, lv_obj_property_get_id(obj, "opa"));
TEST_ASSERT_EQUAL_UINT32(LV_PROPERTY_STYLE_BG_MAIN_STOP, lv_obj_property_get_id(obj, "bg_main_stop"));
/*Widget property*/