test_box: Add box align test sample.

This shows how elm_box_align_set() works.
This commit is contained in:
Daniel Juyung Seo 2014-11-09 18:36:27 +09:00
parent 9cb07eb5fa
commit 0645ba436d
2 changed files with 183 additions and 0 deletions

View File

@ -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);

View File

@ -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);
}