diff --git a/legacy/elementary/src/bin/test.c b/legacy/elementary/src/bin/test.c index 2a21d91f59..ed33f630c4 100644 --- a/legacy/elementary/src/bin/test.c +++ b/legacy/elementary/src/bin/test.c @@ -23,6 +23,7 @@ void test_box_pack(void *data, Evas_Object *obj, void *event_info); void test_box_horiz(void *data, Evas_Object *obj, void *event_info); void test_box_homo(void *data, Evas_Object *obj, void *event_info); void test_box_transition(void *data, Evas_Object *obj, void *event_info); +void test_box_align(void *data, Evas_Object *obj, void *event_info); void test_button(void *data, Evas_Object *obj, void *event_info); void test_cnp(void *data, Evas_Object *obj, void *event_info); void test_transit(void *data, Evas_Object *obj, void *event_info); @@ -549,6 +550,7 @@ add_tests: ADD_TEST(NULL, "Containers", "Box Horiz", test_box_horiz); ADD_TEST(NULL, "Containers", "Box Homogeneous", test_box_homo); ADD_TEST(NULL, "Containers", "Box Transition", test_box_transition); + ADD_TEST(NULL, "Containers", "Box Align", test_box_align); ADD_TEST(NULL, "Containers", "Table", test_table); ADD_TEST(NULL, "Containers", "Table Homogeneous", test_table2); ADD_TEST(NULL, "Containers", "Table 3", test_table3); diff --git a/legacy/elementary/src/bin/test_box.c b/legacy/elementary/src/bin/test_box.c index bbc7f4151d..594fca60ea 100644 --- a/legacy/elementary/src/bin/test_box.c +++ b/legacy/elementary/src/bin/test_box.c @@ -699,3 +699,184 @@ test_box_transition(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void * evas_object_resize(win, 300, 300); evas_object_show(win); } + +typedef struct _Box_Align_Data Box_Align_Data; +struct _Box_Align_Data +{ + Evas_Object *hor_box; // target box horizontal + Evas_Object *vert_box; // target box vertical + double hor; // horizontal slider + double vert; // vertical slider +}; + +static void +_box_align_win_del_cb(void *data, Evas *e EINA_UNUSED, + Evas_Object *obj EINA_UNUSED, + void *event_info EINA_UNUSED) +{ + free(data); +} + +static void +_hor_slider_changed_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) +{ + Box_Align_Data *bdata = data; + + bdata->hor = elm_slider_value_get(obj); + printf("box align: %0.2f %0.2f\n", bdata->hor, bdata->vert); + elm_box_align_set(bdata->hor_box, bdata->hor, bdata->vert); + elm_box_align_set(bdata->vert_box, bdata->hor, bdata->vert); +} + +static void +_vert_slider_changed_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) +{ + Box_Align_Data *bdata = data; + + bdata->vert = elm_slider_value_get(obj); + printf("box align: %0.2f %0.2f\n", bdata->hor, bdata->vert); + elm_box_align_set(bdata->hor_box, bdata->hor, bdata->vert); + elm_box_align_set(bdata->vert_box, bdata->hor, bdata->vert); +} + +void +_description_add(Evas_Object *bx_out, Box_Align_Data *bdata) +{ + Evas_Object *fr, *bx, *lb, *sl, *tb; + + // description + fr = elm_frame_add(bx_out); + evas_object_size_hint_weight_set(fr, EVAS_HINT_EXPAND, 0.0); + evas_object_size_hint_align_set(fr, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_box_pack_end(bx_out, fr); + elm_object_text_set(fr, "Description"); + evas_object_show(fr); + + bx = elm_box_add(fr); + elm_object_content_set(fr, bx); + evas_object_show(bx); + + lb = elm_label_add(fr); + elm_object_text_set(lb, "This test shows how elm_box_align_set() works."); + evas_object_size_hint_align_set(lb, 0.0, EVAS_HINT_FILL); + elm_box_pack_end(bx, lb); + evas_object_show(lb); + + tb = elm_table_add(bx); + evas_object_size_hint_weight_set(tb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(tb, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_box_pack_end(bx, tb); + evas_object_show(tb); + + lb = elm_label_add(tb); + elm_object_text_set(lb, " Horizontal "); + elm_table_pack(tb, lb, 0, 0, 1, 1); + evas_object_show(lb); + + lb = elm_label_add(tb); + elm_object_text_set(lb, " Vertical "); + elm_table_pack(tb, lb, 0, 1, 1, 1); + evas_object_show(lb); + + sl = elm_slider_add(fr); + elm_slider_unit_format_set(sl, "%1.2f"); + elm_slider_min_max_set(sl, 0.0, 1.0); + elm_slider_value_set(sl, 0.5); + bdata->hor = 0.5; + 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); + elm_table_pack(tb, sl, 1, 0, 1, 1); + evas_object_show(sl); + evas_object_smart_callback_add(sl, "changed", _hor_slider_changed_cb, bdata); + + sl = elm_slider_add(fr); + elm_slider_unit_format_set(sl, "%1.2f"); + elm_slider_min_max_set(sl, 0.0, 1.0); + elm_slider_value_set(sl, 0.5); + bdata->vert = 0.5; + 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); + elm_table_pack(tb, sl, 1, 1, 1, 1); + evas_object_show(sl); + evas_object_smart_callback_add(sl, "changed", _vert_slider_changed_cb, bdata); +} + +void +_align_box_add(Evas_Object *bx_out, Box_Align_Data *bdata) +{ + Evas_Object *bx, *sp, *bt; + + // test box - vertical + bdata->vert_box = bx = elm_box_add(bx_out); + evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_box_pack_end(bx_out, bx); + elm_box_align_set(bx, 0.5, 0.5); + evas_object_show(bx); + + bt = elm_button_add(bx); + elm_object_text_set(bt, "Button 1"); + evas_object_size_hint_weight_set(bt, 0.0, 0.0); + evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_box_pack_end(bx, bt); + evas_object_show(bt); + + bt = elm_button_add(bx); + elm_object_text_set(bt, "Button 2"); + evas_object_size_hint_weight_set(bt, 0.0, 0.0); + evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_box_pack_end(bx, bt); + evas_object_show(bt); + + // separator + sp = elm_separator_add(bx_out); + elm_separator_horizontal_set(sp, EINA_TRUE); + elm_box_pack_end(bx_out, sp); + evas_object_show(sp); + + // test box - horizontal + bdata->hor_box = bx = elm_box_add(bx_out); + evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_box_pack_end(bx_out, bx); + elm_box_align_set(bx, 0.5, 0.5); + elm_box_horizontal_set(bx, EINA_TRUE); + evas_object_show(bx); + + bt = elm_button_add(bx); + elm_object_text_set(bt, "Button 1"); + evas_object_size_hint_weight_set(bt, 0.0, 0.0); + evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_box_pack_end(bx, bt); + evas_object_show(bt); + + bt = elm_button_add(bx); + elm_object_text_set(bt, "Button 2"); + evas_object_size_hint_weight_set(bt, 0.0, 0.0); + evas_object_size_hint_align_set(bt, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_box_pack_end(bx, bt); + evas_object_show(bt); +} +void +test_box_align(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, + void *event_info EINA_UNUSED) +{ + Evas_Object *win, *bx_out; + Box_Align_Data *bdata= (Box_Align_Data *)calloc(1, sizeof(Box_Align_Data)); + + win = elm_win_util_standard_add("box-align", "Box Align"); + elm_win_autodel_set(win, EINA_TRUE); + evas_object_event_callback_add(win, EVAS_CALLBACK_DEL, + _box_align_win_del_cb, bdata); + + bx_out = elm_box_add(win); + evas_object_size_hint_weight_set(bx_out, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); + elm_win_resize_object_add(win, bx_out); + evas_object_show(bx_out); + + _description_add(bx_out, bdata); + _align_box_add(bx_out, bdata); + + evas_object_resize(win, 300, 400); + evas_object_show(win); +}