From a6e16b9ef85c4c380a113c9de5d94622cb29f8c6 Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Tue, 24 Feb 2009 11:58:52 +0000 Subject: [PATCH] genlist theme issue - fixed. SVN revision: 39174 --- data/themes/default.edc | 2 + src/bin/test.c | 154 ++++++++++++++++++++++++++++++++++++++++++++++-- 2 files changed, 150 insertions(+), 6 deletions(-) diff --git a/data/themes/default.edc b/data/themes/default.edc index f8e9b7c..95838c1 100644 --- a/data/themes/default.edc +++ b/data/themes/default.edc @@ -7388,6 +7388,8 @@ collections { description { state: "default" 0.0; fixed: 1 0; align: 1.0 0.5; + aspect: 1.0 1.0; + aspect_preference: VERTICAL; rel1 { relative: 1.0 0.0; offset: -5 4; diff --git a/src/bin/test.c b/src/bin/test.c index a4400da..60c6548 100644 --- a/src/bin/test.c +++ b/src/bin/test.c @@ -2338,7 +2338,7 @@ Evas_Object *gl2_icon_get(const void *data, Evas_Object *obj, const char *part) else if ((tit->mode & 0x3) == 2) snprintf(buf, sizeof(buf), "%s/images/panel_01.jpg", PACKAGE_DATA_DIR); else if ((tit->mode & 0x3) == 3) - snprintf(buf, sizeof(buf), "%s/images/plant_01.jpg", PACKAGE_DATA_DIR); + snprintf(buf, sizeof(buf), "%s/images/rock_01.jpg", PACKAGE_DATA_DIR); elm_icon_file_set(ic, buf, NULL); } else if (!strcmp(part, "elm.swallow.end")) @@ -2379,8 +2379,8 @@ my_bt_31(void *data, Evas_Object *obj, void *event_info) static Testitem tit[3]; int i; - win = elm_win_add(NULL, "genlist-2", ELM_WIN_BASIC); - elm_win_title_set(win, "Genlist 2"); + win = elm_win_add(NULL, "genlist-3", ELM_WIN_BASIC); + elm_win_title_set(win, "Genlist 3"); elm_win_autodel_set(win, 1); bg = elm_bg_add(win); @@ -2457,9 +2457,150 @@ my_bt_31(void *data, Evas_Object *obj, void *event_info) evas_object_show(win); } +static Elm_Genlist_Item_Class itc3; +char *gl3_label_get(const void *data, Evas_Object *obj, const char *part) +{ + Testitem *tit = data; + char buf[256]; + snprintf(buf, sizeof(buf), "Item mode %i", tit->mode); + return strdup(buf); +} +Evas_Object *gl3_icon_get(const void *data, Evas_Object *obj, const char *part) +{ + Testitem *tit = data; + char buf[PATH_MAX]; + if (!strcmp(part, "elm.swallow.icon")) + { + Evas_Object *bx = elm_box_add(obj); + Evas_Object *ic; + elm_box_horizontal_set(bx, 1); + + ic = elm_icon_add(obj); +// if ((tit->mode & 0x3) == 0) + snprintf(buf, sizeof(buf), "%s/images/logo_small.png", PACKAGE_DATA_DIR); +// else if ((tit->mode & 0x3) == 1) +// snprintf(buf, sizeof(buf), "%s/images/logo.png", PACKAGE_DATA_DIR); +// else if ((tit->mode & 0x3) == 2) +// snprintf(buf, sizeof(buf), "%s/images/panel_01.jpg", PACKAGE_DATA_DIR); +// else if ((tit->mode & 0x3) == 3) +// snprintf(buf, sizeof(buf), "%s/images/rock_01.jpg", PACKAGE_DATA_DIR); + elm_icon_file_set(ic, buf, NULL); + elm_icon_scale_set(ic, 0, 0); + evas_object_show(ic); + elm_box_pack_end(bx, ic); + ic = elm_icon_add(obj); + elm_icon_file_set(ic, buf, NULL); + elm_icon_scale_set(ic, 0, 0); + evas_object_show(ic); + elm_box_pack_end(bx, ic); + evas_object_show(bx); + return bx; + } + else if (!strcmp(part, "elm.swallow.end")) + { + Evas_Object *ck; + ck = elm_check_add(obj); + evas_object_show(ck); + return ck; + } + return NULL; +} +Evas_Bool gl3_state_get(const void *data, Evas_Object *obj, const char *part) +{ + return 0; +} +void gl3_del(const void *data, Evas_Object *obj) +{ +} + static void my_bt_32(void *data, Evas_Object *obj, void *event_info) { + Evas_Object *win, *bg, *gl, *bx, *bx2, *bt; + static Testitem tit[3]; + int i; + + win = elm_win_add(NULL, "genlist-4", ELM_WIN_BASIC); + elm_win_title_set(win, "Genlist 4"); + elm_win_autodel_set(win, 1); + + bg = elm_bg_add(win); + elm_win_resize_object_add(win, bg); + evas_object_size_hint_weight_set(bg, 1.0, 1.0); + evas_object_show(bg); + + bx = elm_box_add(win); + evas_object_size_hint_weight_set(bx, 1.0, 1.0); + elm_win_resize_object_add(win, bx); + evas_object_show(bx); + + gl = elm_genlist_add(win); + evas_object_size_hint_align_set(gl, -1.0, -1.0); + evas_object_size_hint_weight_set(gl, 1.0, 1.0); + evas_object_show(gl); + + itc3.item_style = "default"; + itc3.func.label_get = gl3_label_get; + itc3.func.icon_get = gl3_icon_get; + itc3.func.state_get = gl3_state_get; + itc3.func.del = gl3_del; + + tit[0].mode = 0; + tit[0].item = elm_genlist_item_append(gl, &itc3, + &(tit[0])/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */, + NULL/* func data */); + tit[1].mode = 1; + tit[1].item = elm_genlist_item_append(gl, &itc3, + &(tit[1])/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */, + NULL/* func data */); + tit[2].mode = 2; + tit[2].item = elm_genlist_item_append(gl, &itc3, + &(tit[2])/* item data */, NULL/* parent */, ELM_GENLIST_ITEM_NONE, gl_sel/* func */, + NULL/* func data */); + + elm_box_pack_end(bx, gl); + evas_object_show(bx2); + + bx2 = elm_box_add(win); + elm_box_horizontal_set(bx2, 1); + elm_box_homogenous_set(bx2, 1); + evas_object_size_hint_weight_set(bx2, 1.0, 0.0); + evas_object_size_hint_align_set(bx2, -1.0, -1.0); + + bt = elm_button_add(win); + elm_button_label_set(bt, "[1]"); + evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[0])); + evas_object_size_hint_align_set(bt, -1.0, -1.0); + evas_object_size_hint_weight_set(bt, 1.0, 0.0); + elm_box_pack_end(bx2, bt); + evas_object_show(bt); + + bt = elm_button_add(win); + elm_button_label_set(bt, "[2]"); + evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[1])); + evas_object_size_hint_align_set(bt, -1.0, -1.0); + evas_object_size_hint_weight_set(bt, 1.0, 0.0); + elm_box_pack_end(bx2, bt); + evas_object_show(bt); + + bt = elm_button_add(win); + elm_button_label_set(bt, "[3]"); + evas_object_smart_callback_add(bt, "clicked", my_gl_update, &(tit[2])); + evas_object_size_hint_align_set(bt, -1.0, -1.0); + evas_object_size_hint_weight_set(bt, 1.0, 0.0); + elm_box_pack_end(bx2, bt); + evas_object_show(bt); + + elm_box_pack_end(bx, bx2); + evas_object_show(bx2); + + evas_object_resize(win, 320, 320); + evas_object_show(win); +} + +static void +my_bt_33(void *data, Evas_Object *obj, void *event_info) +{ Evas_Object *win, *bg, *bx, *ic, *ck; char buf[PATH_MAX]; @@ -2521,7 +2662,7 @@ my_bt_32(void *data, Evas_Object *obj, void *event_info) } static void -my_bt_33(void *data, Evas_Object *obj, void *event_info) +my_bt_34(void *data, Evas_Object *obj, void *event_info) { Evas_Object *win, *bg, *bx, *ic, *rd, *rdg; char buf[PATH_MAX]; @@ -2698,8 +2839,9 @@ my_win_main(void) elm_list_item_append(li, "Genlist", NULL, NULL, my_bt_29, NULL); elm_list_item_append(li, "Genlist 2", NULL, NULL, my_bt_30, NULL); elm_list_item_append(li, "Genlist 3", NULL, NULL, my_bt_31, NULL); - elm_list_item_append(li, "Checks", NULL, NULL, my_bt_32, NULL); - elm_list_item_append(li, "Radios", NULL, NULL, my_bt_33, NULL); + elm_list_item_append(li, "Genlist 4", NULL, NULL, my_bt_32, NULL); + elm_list_item_append(li, "Checks", NULL, NULL, my_bt_33, NULL); + elm_list_item_append(li, "Radios", NULL, NULL, my_bt_34, NULL); elm_list_go(li); -- 2.7.4