seoz pushed a commit to branch master.

http://git.enlightenment.org/core/elementary.git/commit/?id=8bbfc33a517b86887492dc247d0bf41ce8f4b260

commit 8bbfc33a517b86887492dc247d0bf41ce8f4b260
Author: Daniel Juyung Seo <seojuyu...@gmail.com>
Date:   Sun Nov 9 18:36:27 2014 +0900

    test_box: Add box align test sample.
    
    This shows how elm_box_align_set() works.
---
 src/bin/test.c     |   2 +
 src/bin/test_box.c | 181 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 183 insertions(+)

diff --git a/src/bin/test.c b/src/bin/test.c
index 2a21d91..ed33f63 100644
--- a/src/bin/test.c
+++ b/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/src/bin/test_box.c b/src/bin/test_box.c
index bbc7f41..594fca6 100644
--- a/src/bin/test_box.c
+++ b/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);
+}

-- 


Reply via email to