diff --git a/src/widgets/image/lv_image.c b/src/widgets/image/lv_image.c index 96122d867..e1cd2058e 100644 --- a/src/widgets/image/lv_image.c +++ b/src/widgets/image/lv_image.c @@ -92,7 +92,7 @@ static const lv_property_ops_t properties[] = { .getter = lv_image_get_antialias, }, { - .id = LV_PROPERTY_IMAGE_ALIGN, + .id = LV_PROPERTY_IMAGE_INNER_ALIGN, .setter = lv_image_set_inner_align, .getter = lv_image_get_inner_align, }, diff --git a/src/widgets/image/lv_image.h b/src/widgets/image/lv_image.h index 5c2d12a67..abc521774 100644 --- a/src/widgets/image/lv_image.h +++ b/src/widgets/image/lv_image.h @@ -56,18 +56,18 @@ typedef enum { } lv_image_align_t; #if LV_USE_OBJ_PROPERTY -enum lv_image_property_t { - LV_PROPERTY_ID(IMAGE, SRC, LV_PROPERTY_TYPE_IMGSRC, 0), - LV_PROPERTY_ID(IMAGE, OFFSET_X, LV_PROPERTY_TYPE_INT, 1), - LV_PROPERTY_ID(IMAGE, OFFSET_Y, LV_PROPERTY_TYPE_INT, 2), - LV_PROPERTY_ID(IMAGE, ROTATION, LV_PROPERTY_TYPE_INT, 3), - LV_PROPERTY_ID(IMAGE, PIVOT, LV_PROPERTY_TYPE_POINT, 4), - LV_PROPERTY_ID(IMAGE, SCALE, LV_PROPERTY_TYPE_INT, 5), - LV_PROPERTY_ID(IMAGE, SCALE_X, LV_PROPERTY_TYPE_INT, 6), - LV_PROPERTY_ID(IMAGE, SCALE_Y, LV_PROPERTY_TYPE_INT, 7), - LV_PROPERTY_ID(IMAGE, BLEND_MODE, LV_PROPERTY_TYPE_INT, 8), - LV_PROPERTY_ID(IMAGE, ANTIALIAS, LV_PROPERTY_TYPE_INT, 9), - LV_PROPERTY_ID(IMAGE, ALIGN, LV_PROPERTY_TYPE_INT, 10), +enum { + LV_PROPERTY_ID(IMAGE, SRC, LV_PROPERTY_TYPE_IMGSRC, 0), + LV_PROPERTY_ID(IMAGE, OFFSET_X, LV_PROPERTY_TYPE_INT, 1), + LV_PROPERTY_ID(IMAGE, OFFSET_Y, LV_PROPERTY_TYPE_INT, 2), + LV_PROPERTY_ID(IMAGE, ROTATION, LV_PROPERTY_TYPE_INT, 3), + LV_PROPERTY_ID(IMAGE, PIVOT, LV_PROPERTY_TYPE_POINT, 4), + LV_PROPERTY_ID(IMAGE, SCALE, LV_PROPERTY_TYPE_INT, 5), + LV_PROPERTY_ID(IMAGE, SCALE_X, LV_PROPERTY_TYPE_INT, 6), + LV_PROPERTY_ID(IMAGE, SCALE_Y, LV_PROPERTY_TYPE_INT, 7), + LV_PROPERTY_ID(IMAGE, BLEND_MODE, LV_PROPERTY_TYPE_INT, 8), + LV_PROPERTY_ID(IMAGE, ANTIALIAS, LV_PROPERTY_TYPE_INT, 9), + LV_PROPERTY_ID(IMAGE, INNER_ALIGN, LV_PROPERTY_TYPE_INT, 10), LV_PROPERTY_IMAGE_END, }; #endif diff --git a/src/widgets/property/lv_image_properties.c b/src/widgets/property/lv_image_properties.c index 61d98e7ac..fd7fd7d1b 100644 --- a/src/widgets/property/lv_image_properties.c +++ b/src/widgets/property/lv_image_properties.c @@ -15,9 +15,9 @@ */ /* *INDENT-OFF* */ const lv_property_name_t lv_image_property_names[11] = { - {"align", LV_PROPERTY_IMAGE_ALIGN,}, {"antialias", LV_PROPERTY_IMAGE_ANTIALIAS,}, {"blend_mode", LV_PROPERTY_IMAGE_BLEND_MODE,}, + {"inner_align", LV_PROPERTY_IMAGE_INNER_ALIGN,}, {"offset_x", LV_PROPERTY_IMAGE_OFFSET_X,}, {"offset_y", LV_PROPERTY_IMAGE_OFFSET_Y,}, {"pivot", LV_PROPERTY_IMAGE_PIVOT,}, diff --git a/tests/src/test_cases/widgets/test_image.c b/tests/src/test_cases/widgets/test_image.c index 6a61479a6..d24fc29a2 100644 --- a/tests/src/test_cases/widgets/test_image.c +++ b/tests/src/test_cases/widgets/test_image.c @@ -376,4 +376,83 @@ void test_image_clip_radius(void) TEST_ASSERT_EQUAL_SCREENSHOT("widgets/image_clip_radius_circle.png"); } +void test_image_properties(void) +{ +#if LV_USE_OBJ_PROPERTY + lv_obj_t * obj = lv_image_create(lv_screen_active()); + lv_property_t prop = { }; + + prop.id = LV_PROPERTY_IMAGE_SRC; + prop.ptr = &test_arc_bg; + TEST_ASSERT_TRUE(lv_obj_set_property(obj, &prop) == LV_RESULT_OK); + TEST_ASSERT_EQUAL_PTR(lv_obj_get_property(obj, LV_PROPERTY_IMAGE_SRC).ptr, &test_arc_bg); + TEST_ASSERT_EQUAL_PTR(lv_image_get_src(obj), &test_arc_bg); + + prop.id = LV_PROPERTY_IMAGE_OFFSET_X; + prop.num = 10; + TEST_ASSERT_TRUE(lv_obj_set_property(obj, &prop) == LV_RESULT_OK); + TEST_ASSERT_EQUAL_INT(lv_obj_get_property(obj, LV_PROPERTY_IMAGE_OFFSET_X).num, 10); + TEST_ASSERT_EQUAL_INT(lv_image_get_offset_x(obj), 10); + + prop.id = LV_PROPERTY_IMAGE_OFFSET_Y; + prop.num = 20; + TEST_ASSERT_TRUE(lv_obj_set_property(obj, &prop) == LV_RESULT_OK); + TEST_ASSERT_EQUAL_INT(lv_obj_get_property(obj, LV_PROPERTY_IMAGE_OFFSET_Y).num, 20); + TEST_ASSERT_EQUAL_INT(lv_image_get_offset_y(obj), 20); + + prop.id = LV_PROPERTY_IMAGE_ROTATION; + prop.num = 30; + TEST_ASSERT_TRUE(lv_obj_set_property(obj, &prop) == LV_RESULT_OK); + TEST_ASSERT_EQUAL_INT(lv_obj_get_property(obj, LV_PROPERTY_IMAGE_ROTATION).num, 30); + TEST_ASSERT_EQUAL_INT(lv_image_get_rotation(obj), 30); + + prop.id = LV_PROPERTY_IMAGE_PIVOT; + prop.point.x = 40; + prop.point.y = 50; + TEST_ASSERT_TRUE(lv_obj_set_property(obj, &prop) == LV_RESULT_OK); + TEST_ASSERT_EQUAL_INT(lv_obj_get_property(obj, LV_PROPERTY_IMAGE_PIVOT).point.x, 40); + TEST_ASSERT_EQUAL_INT(lv_obj_get_property(obj, LV_PROPERTY_IMAGE_PIVOT).point.y, 50); + lv_point_t pivot; + lv_image_get_pivot(obj, &pivot); + TEST_ASSERT_EQUAL_INT(pivot.x, 40); + TEST_ASSERT_EQUAL_INT(pivot.y, 50); + + prop.id = LV_PROPERTY_IMAGE_SCALE; + prop.num = 60; + TEST_ASSERT_TRUE(lv_obj_set_property(obj, &prop) == LV_RESULT_OK); + TEST_ASSERT_EQUAL_INT(lv_obj_get_property(obj, LV_PROPERTY_IMAGE_SCALE).num, 60); + TEST_ASSERT_EQUAL_INT(lv_image_get_scale(obj), 60); + + prop.id = LV_PROPERTY_IMAGE_SCALE_X; + prop.num = 70; + TEST_ASSERT_TRUE(lv_obj_set_property(obj, &prop) == LV_RESULT_OK); + TEST_ASSERT_EQUAL_INT(lv_obj_get_property(obj, LV_PROPERTY_IMAGE_SCALE_X).num, 70); + TEST_ASSERT_EQUAL_INT(lv_image_get_scale_x(obj), 70); + + prop.id = LV_PROPERTY_IMAGE_SCALE_Y; + prop.num = 80; + TEST_ASSERT_TRUE(lv_obj_set_property(obj, &prop) == LV_RESULT_OK); + TEST_ASSERT_EQUAL_INT(lv_obj_get_property(obj, LV_PROPERTY_IMAGE_SCALE_Y).num, 80); + TEST_ASSERT_EQUAL_INT(lv_image_get_scale_y(obj), 80); + + prop.id = LV_PROPERTY_IMAGE_BLEND_MODE; + prop.num = LV_BLEND_MODE_ADDITIVE; + TEST_ASSERT_TRUE(lv_obj_set_property(obj, &prop) == LV_RESULT_OK); + TEST_ASSERT_EQUAL_INT(lv_obj_get_property(obj, LV_PROPERTY_IMAGE_BLEND_MODE).num, LV_BLEND_MODE_ADDITIVE); + TEST_ASSERT_EQUAL_INT(lv_image_get_blend_mode(obj), LV_BLEND_MODE_ADDITIVE); + + prop.id = LV_PROPERTY_IMAGE_ANTIALIAS; + prop.num = 0; + TEST_ASSERT_TRUE(lv_obj_set_property(obj, &prop) == LV_RESULT_OK); + TEST_ASSERT_EQUAL_INT(lv_obj_get_property(obj, LV_PROPERTY_IMAGE_ANTIALIAS).num, 0); + TEST_ASSERT_EQUAL_INT(lv_image_get_antialias(obj), 0); + + prop.id = LV_PROPERTY_IMAGE_INNER_ALIGN; + prop.num = LV_IMAGE_ALIGN_TOP_MID; + TEST_ASSERT_TRUE(lv_obj_set_property(obj, &prop) == LV_RESULT_OK); + TEST_ASSERT_EQUAL_INT(lv_obj_get_property(obj, LV_PROPERTY_IMAGE_INNER_ALIGN).num, LV_IMAGE_ALIGN_TOP_MID); + TEST_ASSERT_EQUAL_INT(lv_image_get_inner_align(obj), LV_IMAGE_ALIGN_TOP_MID); +#endif +} + #endif diff --git a/tests/src/test_cases/widgets/test_image_property.c b/tests/src/test_cases/widgets/test_image_property.c deleted file mode 100644 index 7c9eb3a87..000000000 --- a/tests/src/test_cases/widgets/test_image_property.c +++ /dev/null @@ -1,54 +0,0 @@ -#if LV_BUILD_TEST -#include "../lvgl.h" -#include "../../lvgl_private.h" - -#include -#include "unity/unity.h" - -void test_image_property(void) -{ -#if LV_USE_OBJ_PROPERTY - lv_obj_t * obj = lv_image_create(lv_screen_active()); - const char * src = LV_SYMBOL_OK; - lv_image_set_src(obj, src); - lv_property_t prop; - prop = lv_obj_get_property(obj, LV_PROPERTY_IMAGE_SRC); - TEST_ASSERT_TRUE(LV_PROPERTY_ID_TYPE(prop.id) == LV_PROPERTY_TYPE_IMGSRC); - TEST_ASSERT_EQUAL_STRING(prop.ptr, src); - - lv_point_t point = {0xaa, 0x55}; - prop.id = LV_PROPERTY_IMAGE_PIVOT; - prop.point = point; - lv_obj_set_property(obj, &prop); - prop = lv_obj_get_property(obj, LV_PROPERTY_IMAGE_PIVOT); - TEST_ASSERT_TRUE(LV_PROPERTY_ID_TYPE(prop.id) == LV_PROPERTY_TYPE_POINT); - TEST_ASSERT_TRUE(prop.point.x == point.x); - TEST_ASSERT_TRUE(prop.point.y == point.y); - - static const lv_prop_id_t int_ids[] = { - LV_PROPERTY_IMAGE_OFFSET_X, - LV_PROPERTY_IMAGE_OFFSET_Y, - LV_PROPERTY_IMAGE_ROTATION, - LV_PROPERTY_IMAGE_SCALE, - LV_PROPERTY_IMAGE_SCALE_X, - LV_PROPERTY_IMAGE_SCALE_Y, - LV_PROPERTY_IMAGE_BLEND_MODE, - LV_PROPERTY_IMAGE_ANTIALIAS, /*1bit*/ - LV_PROPERTY_IMAGE_ALIGN, - }; - - for(unsigned i = 0; i < sizeof(int_ids) / sizeof(int_ids[0]); i++) { - int v = rand() % 16; - if(int_ids[i] == LV_PROPERTY_IMAGE_ANTIALIAS) v = !!v; - - prop.id = int_ids[i]; - prop.num = v; - lv_obj_set_property(obj, &prop); - prop = lv_obj_get_property(obj, prop.id); - TEST_ASSERT_TRUE(LV_PROPERTY_ID_TYPE(prop.id) == LV_PROPERTY_TYPE_INT); - TEST_ASSERT_EQUAL_INT(prop.num, v); - } -#endif -} - -#endif