forked from enlightenment/efl
test_box: Add box align test sample.
This shows how elm_box_align_set() works.
This commit is contained in:
parent
9cb07eb5fa
commit
0645ba436d
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue