1 #include <Elementary.h>
2 #ifndef ELM_LIB_QUICKLAUNCH
3 typedef struct _Testitem
11 static Elm_Grid_Cell_Class gcc;
14 grid_drag_up(void *data, Evas_Object *obj, void *event_info)
16 printf("Drag up: %p\n", event_info);
20 grid_drag_right(void *data, Evas_Object *obj, void *event_info)
22 printf("Drag right: %p\n", event_info);
26 grid_drag_down(void *data, Evas_Object *obj, void *event_info)
28 printf("Drag down: %p\n", event_info);
32 grid_drag_left(void *data, Evas_Object *obj, void *event_info)
34 printf("Drag left: %p\n", event_info);
38 grid_drag_stop(void *data, Evas_Object *obj, void *event_info)
40 printf("Drag stop: %p\n", event_info);
44 grid_selected(void *data, Evas_Object *obj, void *event_info)
46 printf("Selected: %p\n", event_info);
50 grid_clicked(void *data, Evas_Object *obj, void *event_info)
52 printf("Clicked: %p\n", event_info);
56 grid_longpress(void *data, Evas_Object *obj, void *event_info)
58 printf("longpress %p\n", event_info);
62 grid_cell_check_changed(void *data, Evas_Object *obj, void *event_info)
65 tit->onoff = elm_check_state_get(obj);
66 printf("cell %p onoff = %i\n", tit, tit->onoff);
70 grid_label_get(const void *data, Evas_Object *obj, const char *part)
72 const Testitem *tit = data;
74 snprintf(buf, sizeof(buf), "Photo %s", tit->path);
79 grid_icon_get(const void *data, Evas_Object *obj, const char *part)
81 const Testitem *tit = data;
82 if (!strcmp(part, "elm.swallow.icon"))
85 Evas_Object *icon = elm_bg_add(obj);
86 elm_bg_file_set(icon, tit->path, NULL);
87 evas_object_size_hint_aspect_set(icon, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
88 evas_object_show(icon);
91 else if (!strcmp(part, "elm.swallow.end"))
94 ck = elm_check_add(obj);
95 evas_object_propagate_events_set(ck, 0);
96 elm_check_state_set(ck, tit->onoff);
97 evas_object_smart_callback_add(ck, "changed", grid_cell_check_changed, data);
105 grid_state_get(const void *data, Evas_Object *obj, const char *part)
111 grid_del(const void *data, Evas_Object *obj)
116 grid_sel(void *data, Evas_Object *obj, void *event_info)
118 printf("sel item data [%p] on grid obj [%p], pointer [%p]\n", data, obj, event_info);
122 test_grid(void *data, Evas_Object *obj, void *event_info)
124 Evas_Object *win, *bg, *grid;
125 static Testitem item[144];
141 win = elm_win_add(NULL, "grid", ELM_WIN_BASIC);
142 elm_win_title_set(win, "Grid");
143 elm_win_autodel_set(win, 1);
145 bg = elm_bg_add(win);
146 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
147 elm_win_resize_object_add(win, bg);
148 evas_object_show(bg);
150 grid = elm_scrolled_grid_add(win);
151 elm_scrolled_grid_cell_size_set(grid, 150, 150);
152 elm_scrolled_grid_horizontal_set(grid, EINA_FALSE);
153 elm_scrolled_grid_multi_select_set(grid, EINA_TRUE);
154 evas_object_smart_callback_add(grid, "selected", grid_selected, NULL);
155 evas_object_smart_callback_add(grid, "clicked", grid_clicked, NULL);
156 evas_object_smart_callback_add(grid, "longpressed", grid_longpress, NULL);
157 evas_object_smart_callback_add(grid, "drag,start,up", grid_drag_up, NULL);
158 evas_object_smart_callback_add(grid, "drag,start,right", grid_drag_right, NULL);
159 evas_object_smart_callback_add(grid, "drag,start,down", grid_drag_down, NULL);
160 evas_object_smart_callback_add(grid, "drag,start,left", grid_drag_left, NULL);
161 evas_object_smart_callback_add(grid, "drag,stop", grid_drag_stop, NULL);
162 evas_object_size_hint_weight_set(grid, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
164 gcc.item_style = "default";
165 gcc.func.label_get = grid_label_get;
166 gcc.func.icon_get = grid_icon_get;
167 gcc.func.state_get = grid_state_get;
168 gcc.func.del = grid_del;
171 for (i = 0; i < 12 * 12; i++)
173 snprintf(buf, sizeof(buf), "%s/images/%s", PACKAGE_DATA_DIR,
177 item[i].path = eina_stringshare_add(buf);
178 item[i].cell = elm_scrolled_grid_cell_add(grid, &gcc, &(item[i]), grid_sel, NULL);
181 evas_object_show(grid);
182 elm_win_resize_object_add(win, grid);
184 evas_object_resize(win, 600, 600);
185 evas_object_show(win);