From 7e1b2be19d0897b83213112e35ebd80766c6c493 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Wed, 27 Jan 2010 04:57:57 +0000 Subject: [PATCH] better - n mapbufs SVN revision: 45619 --- legacy/elementary/src/bin/test_launcher.c | 98 +++++++++++++++-------- 1 file changed, 66 insertions(+), 32 deletions(-) diff --git a/legacy/elementary/src/bin/test_launcher.c b/legacy/elementary/src/bin/test_launcher.c index d9f703979b..a922201e3c 100644 --- a/legacy/elementary/src/bin/test_launcher.c +++ b/legacy/elementary/src/bin/test_launcher.c @@ -4,11 +4,18 @@ static void mode_cb(void *data, Evas_Object *obj, void *event_info) { - Evas_Object *mb = data; - if (elm_mapbuf_enabled_get(mb)) - elm_mapbuf_enabled_set(mb, 0); - else - elm_mapbuf_enabled_set(mb, 1); + Evas_Object *win = data; + Evas_Object *mb; + Eina_List *mbs, *l; + + mbs = evas_object_data_get(win, "mbs"); + EINA_LIST_FOREACH(mbs, l, mb) + { + if (elm_mapbuf_enabled_get(mb)) + elm_mapbuf_enabled_set(mb, 0); + else + elm_mapbuf_enabled_set(mb, 1); + } } static void @@ -21,15 +28,29 @@ full_cb(void *data, Evas_Object *obj, void *event_info) static void alpha_cb(void *data, Evas_Object *obj, void *event_info) { - Evas_Object *mb = data; - elm_mapbuf_alpha_set(mb, elm_check_state_get(obj)); + Evas_Object *win = data; + Evas_Object *mb; + Eina_List *mbs, *l; + + mbs = evas_object_data_get(win, "mbs"); + EINA_LIST_FOREACH(mbs, l, mb) + { + elm_mapbuf_alpha_set(mb, elm_check_state_get(obj)); + } } static void smooth_cb(void *data, Evas_Object *obj, void *event_info) { - Evas_Object *mb = data; - elm_mapbuf_smooth_set(mb, elm_check_state_get(obj)); + Evas_Object *win = data; + Evas_Object *mb; + Eina_List *mbs, *l; + + mbs = evas_object_data_get(win, "mbs"); + EINA_LIST_FOREACH(mbs, l, mb) + { + elm_mapbuf_smooth_set(mb, elm_check_state_get(obj)); + } } static void @@ -42,7 +63,7 @@ close_cb(void *data, Evas_Object *obj, void *event_info) void test_launcher(void *data, Evas_Object *obj, void *event_info) { - Evas_Object *win, *bg, *sc, *tb, *pad, *bt, *ic, *lb, *tb2, *mb, *ck; + Evas_Object *win, *bg, *sc, *tb, *pad, *bt, *ic, *lb, *tb2, *mb, *ck, *bx; int i, j, k, n, m; char buf[PATH_MAX]; const char *names[] = @@ -52,6 +73,7 @@ test_launcher(void *data, Evas_Object *obj, void *event_info) "Lots", "Of", "Labels", "Make", "Everyone", "Happy", "And", "Calm" }; + Eina_List *mbs = NULL; win = elm_win_add(NULL, "launcher", ELM_WIN_BASIC); elm_win_title_set(win, "Launcher"); @@ -64,37 +86,40 @@ test_launcher(void *data, Evas_Object *obj, void *event_info) elm_win_resize_object_add(win, bg); evas_object_show(bg); - mb = elm_mapbuf_add(win); + bx = elm_box_add(win); + elm_box_homogenous_set(bx, 1); + elm_box_horizontal_set(bx, 1); - tb = elm_table_add(win); - evas_object_size_hint_weight_set(tb, 0.0, 0.0); - evas_object_size_hint_align_set(tb, 0.5, 0.5); n = 0; m = 0; - for (k = 0 ; k < 4; k++) + for (k = 0 ; k < 8; k++) { - pad = evas_object_rectangle_add(evas_object_evas_get(win)); - evas_object_size_hint_min_set(pad, 470, 4); - evas_object_size_hint_weight_set(pad, 0.0, 0.0); - evas_object_size_hint_align_set(pad, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_table_pack(tb, pad, (k * 7) + 1, 0, 5, 1); + tb = elm_table_add(win); + evas_object_size_hint_weight_set(tb, 0.0, 0.0); + evas_object_size_hint_align_set(tb, 0.5, 0.5); pad = evas_object_rectangle_add(evas_object_evas_get(win)); evas_object_size_hint_min_set(pad, 470, 4); evas_object_size_hint_weight_set(pad, 0.0, 0.0); evas_object_size_hint_align_set(pad, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_table_pack(tb, pad, (k * 7) + 1, 14, 5, 1); + elm_table_pack(tb, pad, 1, 0, 5, 1); + + pad = evas_object_rectangle_add(evas_object_evas_get(win)); + evas_object_size_hint_min_set(pad, 470, 4); + evas_object_size_hint_weight_set(pad, 0.0, 0.0); + evas_object_size_hint_align_set(pad, EVAS_HINT_FILL, EVAS_HINT_FILL); + elm_table_pack(tb, pad, 1, 14, 5, 1); pad = evas_object_rectangle_add(evas_object_evas_get(win)); evas_object_size_hint_min_set(pad, 4, 4); evas_object_size_hint_weight_set(pad, 0.0, 0.0); evas_object_size_hint_align_set(pad, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_table_pack(tb, pad, k * 7, 1, 1, 12); + elm_table_pack(tb, pad, 0, 1, 1, 12); pad = evas_object_rectangle_add(evas_object_evas_get(win)); evas_object_size_hint_min_set(pad, 4, 4); evas_object_size_hint_weight_set(pad, 0.0, 0.0); evas_object_size_hint_align_set(pad, EVAS_HINT_FILL, EVAS_HINT_FILL); - elm_table_pack(tb, pad, (k * 7) + 6, 1, 1, 12); + elm_table_pack(tb, pad, 6, 1, 1, 12); for (j = 0; j < 6; j++) { @@ -106,7 +131,7 @@ test_launcher(void *data, Evas_Object *obj, void *event_info) elm_icon_scale_set(ic, 0, 0); evas_object_size_hint_weight_set(ic, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(ic, 0.5, 0.5); - elm_table_pack(tb, ic, (k * 7) + 1 + i, 1 + (j * 2), 1, 1); + elm_table_pack(tb, ic, 1 + i, 1 + (j * 2), 1, 1); evas_object_show(ic); lb = elm_label_add(win); @@ -114,16 +139,25 @@ test_launcher(void *data, Evas_Object *obj, void *event_info) elm_label_label_set(lb, names[m]); evas_object_size_hint_weight_set(lb, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(lb, 0.5, 0.5); - elm_table_pack(tb, lb, (k * 7) + 1 + i, 1 + (j * 2) + 1, 1, 1); + elm_table_pack(tb, lb, 1 + i, 1 + (j * 2) + 1, 1, 1); evas_object_show(lb); n++; if (n > 23) n = 0; m++; if (m > 15) m = 0; } } + mb = elm_mapbuf_add(win); + elm_mapbuf_content_set(mb, tb); + evas_object_show(tb); + + elm_box_pack_end(bx, mb); + evas_object_show(mb); + + mbs = eina_list_append(mbs, mb); } - elm_mapbuf_content_set(mb, tb); - evas_object_show(tb); + + // fixme: free mbs + evas_object_data_set(win, "mbs", mbs); sc = elm_scroller_add(win); elm_scroller_bounce_set(sc, 1, 0); @@ -131,8 +165,8 @@ test_launcher(void *data, Evas_Object *obj, void *event_info) evas_object_size_hint_weight_set(sc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); elm_win_resize_object_add(win, sc); - elm_scroller_content_set(sc, mb); - evas_object_show(mb); + elm_scroller_content_set(sc, bx); + evas_object_show(bx); elm_scroller_page_relative_set(sc, 1.0, 1.0); evas_object_show(sc); @@ -144,7 +178,7 @@ test_launcher(void *data, Evas_Object *obj, void *event_info) ck = elm_check_add(win); elm_check_label_set(ck, "Mapbuf"); elm_check_state_set(ck, 0); - evas_object_smart_callback_add(ck, "changed", mode_cb, mb); + evas_object_smart_callback_add(ck, "changed", mode_cb, win); evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(ck, 0.05, 0.99); elm_table_pack(tb2, ck, 0, 0, 1, 1); @@ -153,7 +187,7 @@ test_launcher(void *data, Evas_Object *obj, void *event_info) ck = elm_check_add(win); elm_check_label_set(ck, "Alpha"); elm_check_state_set(ck, 1); - evas_object_smart_callback_add(ck, "changed", alpha_cb, mb); + evas_object_smart_callback_add(ck, "changed", alpha_cb, win); evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(ck, 0.20, 0.99); elm_table_pack(tb2, ck, 1, 0, 1, 1); @@ -162,7 +196,7 @@ test_launcher(void *data, Evas_Object *obj, void *event_info) ck = elm_check_add(win); elm_check_label_set(ck, "Smooth"); elm_check_state_set(ck, 1); - evas_object_smart_callback_add(ck, "changed", smooth_cb, mb); + evas_object_smart_callback_add(ck, "changed", smooth_cb, win); evas_object_size_hint_weight_set(ck, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(ck, 0.40, 0.99); elm_table_pack(tb2, ck, 2, 0, 1, 1);