From 6d32dfa1aac62ffede941e77772f766c53741d9a Mon Sep 17 00:00:00 2001 From: Dave Andreoli Date: Fri, 30 Jun 2017 22:15:37 +0200 Subject: [PATCH] Add a new test for elm_image align inside a swallow This is broken since 1.18, more info on T4635 --- data/elementary/objects/test.edc | 20 +++++++++ src/bin/elementary/test.c | 2 + src/bin/elementary/test_image.c | 72 ++++++++++++++++++++++++++++++++ 3 files changed, 94 insertions(+) diff --git a/data/elementary/objects/test.edc b/data/elementary/objects/test.edc index b2b6c536db..9e95ffd8be 100644 --- a/data/elementary/objects/test.edc +++ b/data/elementary/objects/test.edc @@ -881,4 +881,24 @@ collections { } } } + group { name: "image_align"; + parts { + part { name: "color"; + type: RECT; + description { state: "default" 0.0; + rel1.to: "swallow"; + rel2.to: "swallow"; + color: 255 0 0 50; + } + } + part { name: "swallow"; + type: SWALLOW; + description { state: "default" 0.0; + rel1.relative: 0.1 0.1; + rel2.relative: 0.9 0.9; + } + } + + } + } } diff --git a/src/bin/elementary/test.c b/src/bin/elementary/test.c index 5ce8de7f29..01afb6c48d 100644 --- a/src/bin/elementary/test.c +++ b/src/bin/elementary/test.c @@ -270,6 +270,7 @@ void test_ui_clock(void *data, Evas_Object *obj, void *event_info); void test_popup(void *data, Evas_Object *obj, void *event_info); void test_dayselector(void *data, Evas_Object *obj, void *event_info); void test_image(void *data, Evas_Object *obj, void *event_info); +void test_image_swallow_align(void *data, Evas_Object *obj, void *event_info); void test_remote_image(void *data, Evas_Object *obj, void *event_info); void test_click_image(void *data, Evas_Object *obj, void *event_info); void test_load_image(void *data, Evas_Object *obj, void *event_info); @@ -684,6 +685,7 @@ add_tests: ADD_TEST(NULL, "Images", "Photo", test_photo); ADD_TEST(NULL, "Images", "Thumb", test_thumb); ADD_TEST(NULL, "Images", "Image", test_image); + ADD_TEST(NULL, "Images", "Image Align", test_image_swallow_align); ADD_TEST(NULL, "Images", "Image Remote", test_remote_image); ADD_TEST(NULL, "Images", "Image Click", test_click_image); ADD_TEST(NULL, "Images", "Image Async Load", test_load_image); diff --git a/src/bin/elementary/test_image.c b/src/bin/elementary/test_image.c index 67f90ddaaf..fd59a63c56 100644 --- a/src/bin/elementary/test_image.c +++ b/src/bin/elementary/test_image.c @@ -81,6 +81,78 @@ test_image(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_in evas_object_show(win); } + +static void +im_align_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +{ + double h,v; + Evas_Object *win = data; + Evas_Object *im = evas_object_data_get(win, "im"); + Evas_Object *h_sl = evas_object_data_get(win, "h_sl"); + Evas_Object *v_sl = evas_object_data_get(win, "v_sl"); + + h = elm_slider_value_get(h_sl); + v = elm_slider_value_get(v_sl); + evas_object_size_hint_align_set(im, h, v); + evas_object_size_hint_align_get(im, &h, &v); + printf("align %.3f %.3f\n", h, v); +} + +void +test_image_swallow_align(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) +{ + Evas_Object *win, *box, *im, *ly, *sl; + char buf[PATH_MAX]; + + win = elm_win_util_standard_add("image align", "Test Align Inside Layout"); + elm_win_autodel_set(win, EINA_TRUE); + + box = elm_box_add(win); + evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_win_resize_object_add(win, box); + evas_object_show(box); + + ly = elm_layout_add(win); + snprintf(buf, sizeof(buf), "%s/objects/test.edj", elm_app_data_dir_get()); + elm_layout_file_set(ly, buf, "image_align"); + evas_object_size_hint_weight_set(ly, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(ly, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_box_pack_end(box, ly); + evas_object_show(ly); + + im = elm_image_add(win); + snprintf(buf, sizeof(buf), "%s/images/logo.png", elm_app_data_dir_get()); + elm_image_file_set(im, buf, NULL); + evas_object_size_hint_weight_set(im, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(im, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_layout_content_set(ly, "swallow", im); + evas_object_show(im); + evas_object_data_set(win, "im", im); + + sl = elm_slider_add(win); + elm_slider_value_set(sl, 0.5); + elm_object_text_set(sl, "Horiz Align"); + evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, 0.0); + evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_smart_callback_add(sl, "changed", im_align_cb, win); + elm_box_pack_end(box, sl); + evas_object_show(sl); + evas_object_data_set(win, "h_sl", sl); + + sl = elm_slider_add(win); + elm_slider_value_set(sl, 0.5); + elm_object_text_set(sl, "Vert Align"); + evas_object_size_hint_weight_set(sl, EVAS_HINT_EXPAND, 0.0); + evas_object_size_hint_align_set(sl, EVAS_HINT_FILL, EVAS_HINT_FILL); + evas_object_smart_callback_add(sl, "changed", im_align_cb, win); + elm_box_pack_end(box, sl); + evas_object_show(sl); + evas_object_data_set(win, "v_sl", sl); + + evas_object_resize(win, 300, 600); + evas_object_show(win); +} + static void _download_start_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) {