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"
14 static Elm_Genlist_Item_Class _itc;
17 _item_text_get(void *data, Evas_Object *obj __UNUSED__, const char *part)
19 static Elm_Genlist_Item_Class *_itc = NULL;
22 _item_label_get(void *data, Evas_Object *obj __UNUSED__, const char *part)
23 >>>>>>> remotes/origin/upstream
25 time_t t = (time_t)ecore_time_unix_get();
27 int i = (int)(long)data;
29 if (!strcmp(part, "elm.text"))
30 snprintf(buf, sizeof(buf), "Item # %i", i);
34 snprintf(buf, sizeof(buf), "created at %s", ctime(&t));
43 _item_content_get(void *data __UNUSED__, Evas_Object *obj, const char *part)
45 Evas_Object *ic = elm_icon_add(obj);
47 if (!strcmp(part, "elm.swallow.icon"))
48 elm_icon_standard_set(ic, "clock");
50 evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
55 _item_sel_cb(void *data, Evas_Object *obj, void *event_info)
57 printf("sel item data [%p] on genlist obj [%p], item pointer [%p]\n",
58 data, obj, event_info);
62 _genlist_add(Evas_Object *box)
64 Evas_Object *list = elm_genlist_add(elm_object_parent_widget_get(box));
65 evas_object_size_hint_weight_set(list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
66 evas_object_size_hint_align_set(list, EVAS_HINT_FILL, EVAS_HINT_FILL);
67 evas_object_size_hint_min_set(list, 200, 160);
68 elm_box_pack_end(box, list);
69 evas_object_show(list);
75 _genlist_fill(Evas_Object *list)
79 for (i = 0; i < N_ITEMS; i++)
82 elm_genlist_item_append(list, &_itc,
84 elm_genlist_item_append(list, _itc,
85 >>>>>>> remotes/origin/upstream
86 (void *)(long)i, NULL,
87 ELM_GENLIST_ITEM_NONE,
93 elm_main(int argc __UNUSED__, char **argv __UNUSED__)
95 Evas_Object *win, *bg, *box;
98 win = elm_win_add(NULL, "icon", ELM_WIN_BASIC);
99 elm_win_title_set(win, "Icon");
100 elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
101 elm_win_autodel_set(win, EINA_TRUE);
103 bg = elm_bg_add(win);
104 elm_bg_color_set(bg, 255,255 ,255);
105 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
106 elm_win_resize_object_add(win, bg);
107 evas_object_show(bg);
109 box = elm_box_add(win);
110 elm_box_horizontal_set(box, EINA_TRUE);
111 evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
112 evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
113 elm_win_resize_object_add(win, box);
114 evas_object_show(box);
117 _itc.item_style = "double_label";
118 _itc.func.text_get = _item_text_get;
119 _itc.func.content_get = _item_content_get;
120 _itc.func.state_get = NULL;
121 _itc.func.del = NULL;
123 list = _genlist_add(box);
126 list = _genlist_add(box);
127 elm_genlist_horizontal_mode_set(list, ELM_LIST_LIMIT);
130 list = _genlist_add(box);
131 elm_genlist_compress_mode_set(list, EINA_TRUE);
134 list = _genlist_add(box);
135 elm_genlist_height_for_width_mode_set(list, EINA_TRUE);
139 _itc = elm_genlist_item_class_new();
140 _itc->item_style = "double_label";
141 _itc->func.text_get = _item_label_get;
142 _itc->func.content_get = _item_content_get;
143 _itc->func.state_get = NULL;
144 _itc->func.del = NULL;
147 list = _genlist_add(box);
150 list = _genlist_add(box);
151 elm_genlist_mode_set(list, ELM_LIST_LIMIT);
154 list = _genlist_add(box);
155 elm_genlist_mode_set(list, ELM_LIST_COMPRESS);
156 >>>>>>> remotes/origin/upstream
159 evas_object_size_hint_min_set(bg, 800, 160);
160 evas_object_size_hint_max_set(bg, 800, 640);
161 evas_object_resize(win, 800, 320);
162 evas_object_show(win);