improve image_base_set_image

This commit is contained in:
lixianjing 2022-08-31 12:05:21 +08:00
parent c8708b4156
commit 9652cd3919
3 changed files with 14 additions and 2 deletions

View File

@ -4,6 +4,7 @@
* 设置digit clock控件显示格式后强制刷新(感谢雨欣提供补丁)
* 修复digit clock更改格式后没有重绘问(感谢兆坤提供补丁)
* 修复ComboBox下拉框如果存在相同名称的选项时, 触发值改变事件,获取到的索引值永远指向第一个的索引的问题(感谢兆坤提供补丁)
* 支持image\_set\_image 检查是否相同的图片(感谢智明提供补丁)
2022/08/30
* 完善注释(感谢雨欣提供补丁)

View File

@ -174,9 +174,12 @@ ret_t image_base_set_image(widget_t* widget, const char* name) {
image_base_t* image = IMAGE_BASE(widget);
return_value_if_fail(widget != NULL && name != NULL, RET_BAD_PARAMS);
image->image = tk_str_copy(image->image, name);
if (!tk_str_eq(image->image, name)) {
image->image = tk_str_copy(image->image, name);
return widget_invalidate(widget, NULL);
}
return widget_invalidate(widget, NULL);
return RET_OK;
}
ret_t image_base_set_rotation(widget_t* widget, float_t rotation) {

View File

@ -27,6 +27,14 @@ TEST(Image, basic) {
ASSERT_EQ(widget_get_prop(img, WIDGET_PROP_IMAGE, &v1), RET_OK);
ASSERT_EQ(strcmp(value_str(&v), value_str(&v1)), 0);
img->dirty = FALSE;
ASSERT_EQ(image_base_set_image(img, "earth"), RET_OK);
ASSERT_EQ(img->dirty, FALSE);
img->dirty = FALSE;
ASSERT_EQ(image_base_set_image(img, "1"), RET_OK);
ASSERT_EQ(img->dirty, TRUE);
widget_destroy(img);
}