2 //gcc -g `pkg-config --cflags --libs elementary` genlist_example_03.c -o genlist_example_03
4 #include <Elementary.h>
6 # include "elementary_config.h"
13 static Elm_Genlist_Item_Class _itc;
16 _item_label_get(void *data, Evas_Object *obj __UNUSED__, const char *part)
18 time_t t = (time_t)ecore_time_unix_get();
20 int i = (int)(long)data;
22 if (!strcmp(part, "elm.text"))
23 snprintf(buf, sizeof(buf), "Item # %i", i);
27 snprintf(buf, sizeof(buf), "created at %s", ctime(&t));
36 _item_content_get(void *data __UNUSED__, Evas_Object *obj, const char *part)
38 Evas_Object *ic = elm_icon_add(obj);
40 if (!strcmp(part, "elm.swallow.icon"))
41 elm_icon_standard_set(ic, "clock");
43 evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
48 _item_sel_cb(void *data, Evas_Object *obj, void *event_info)
50 printf("sel item data [%p] on genlist obj [%p], item pointer [%p]\n",
51 data, obj, event_info);
55 _genlist_add(Evas_Object *box)
57 Evas_Object *list = elm_genlist_add(elm_object_parent_widget_get(box));
58 evas_object_size_hint_weight_set(list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
59 evas_object_size_hint_align_set(list, EVAS_HINT_FILL, EVAS_HINT_FILL);
60 evas_object_size_hint_min_set(list, 200, 160);
61 elm_box_pack_end(box, list);
62 evas_object_show(list);
68 _genlist_fill(Evas_Object *list)
72 for (i = 0; i < N_ITEMS; i++)
74 elm_genlist_item_append(list, &_itc,
75 (void *)(long)i, NULL,
76 ELM_GENLIST_ITEM_NONE,
82 elm_main(int argc __UNUSED__, char **argv __UNUSED__)
84 Evas_Object *win, *bg, *box;
87 win = elm_win_add(NULL, "icon", ELM_WIN_BASIC);
88 elm_win_title_set(win, "Icon");
89 elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
90 elm_win_autodel_set(win, EINA_TRUE);
93 elm_bg_color_set(bg, 255,255 ,255);
94 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
95 elm_win_resize_object_add(win, bg);
98 box = elm_box_add(win);
99 elm_box_horizontal_set(box, EINA_TRUE);
100 evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
101 evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
102 elm_win_resize_object_add(win, box);
103 evas_object_show(box);
105 _itc.item_style = "double_label";
106 _itc.func.label_get = _item_label_get;
107 _itc.func.content_get = _item_content_get;
108 _itc.func.state_get = NULL;
109 _itc.func.del = NULL;
111 list = _genlist_add(box);
114 list = _genlist_add(box);
115 elm_genlist_horizontal_mode_set(list, ELM_LIST_LIMIT);
118 list = _genlist_add(box);
119 elm_genlist_compress_mode_set(list, EINA_TRUE);
122 list = _genlist_add(box);
123 elm_genlist_height_for_width_mode_set(list, EINA_TRUE);
126 evas_object_size_hint_min_set(bg, 800, 160);
127 evas_object_size_hint_max_set(bg, 800, 640);
128 evas_object_resize(win, 800, 320);
129 evas_object_show(win);