1 #include <Elementary.h>
2 #include <Elementary_Cursor.h>
4 # include "elementary_config.h"
6 #ifndef ELM_LIB_QUICKLAUNCH
8 typedef struct _Testitem
10 Elm_Gengrid_Item *item;
16 static Elm_Gengrid_Item_Class gic;
19 grd_lbl_get(void *data, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
21 const Testitem *ti = data;
23 snprintf(buf, sizeof(buf), "Photo %s", ti->path);
28 grd_icon_get(void *data, Evas_Object *obj, const char *part)
30 const Testitem *ti = data;
31 if (!strcmp(part, "elm.swallow.icon"))
33 Evas_Object *icon = elm_bg_add(obj);
34 elm_bg_file_set(icon, ti->path, NULL);
35 evas_object_size_hint_aspect_set(icon, EVAS_ASPECT_CONTROL_VERTICAL,
37 evas_object_show(icon);
43 static Elm_Genlist_Item_Class itct;
46 glt_exp(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
48 Elm_Genlist_Item *it = event_info;
49 Evas_Object *gl = elm_genlist_item_genlist_get(it);
50 int val = (int)(long)elm_genlist_item_data_get(it);
51 Elm_Genlist_Item *it1, *it2, *it3;
54 it1 = elm_genlist_item_append(gl, &itct, (void *)(long)(val + 1), it,
55 ELM_GENLIST_ITEM_NONE, NULL, NULL);
56 it2 = elm_genlist_item_append(gl, &itct, (void *)(long)(val + 2), it,
57 ELM_GENLIST_ITEM_NONE, NULL, NULL);
58 it3 = elm_genlist_item_append(gl, &itct, (void *)(long)(val + 3), it,
59 ELM_GENLIST_ITEM_SUBITEMS, NULL, NULL);
61 elm_genlist_item_cursor_set(it1, ELM_CURSOR_HAND2);
62 elm_genlist_item_cursor_set(it2, ELM_CURSOR_HAND2);
63 elm_genlist_item_cursor_set(it3, ELM_CURSOR_HAND1);
68 glt_con(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
70 Elm_Genlist_Item *it = event_info;
71 elm_genlist_item_subitems_clear(it);
75 glt_exp_req(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
77 Elm_Genlist_Item *it = event_info;
78 elm_genlist_item_expanded_set(it, 1);
82 glt_con_req(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info)
84 Elm_Genlist_Item *it = event_info;
85 elm_genlist_item_expanded_set(it, 0);
89 glt_label_get(void *data, Evas_Object *obj __UNUSED__, const char *part __UNUSED__)
92 snprintf(buf, sizeof(buf), "Item mode %i", (int)(long)data);
97 test_cursor(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
99 Evas_Object *win, *bg, *bx, *bt, *list, *entry, *ck;
102 win = elm_win_add(NULL, "cursor", ELM_WIN_BASIC);
103 elm_win_title_set(win, "Cursor");
104 elm_win_autodel_set(win, 1);
106 bg = elm_bg_add(win);
107 elm_win_resize_object_add(win, bg);
108 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
109 evas_object_show(bg);
110 elm_object_cursor_set(bg, ELM_CURSOR_CIRCLE);
112 bx = elm_box_add(win);
113 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
114 elm_win_resize_object_add(win, bx);
115 evas_object_show(bx);
117 ck = elm_clock_add(win);
118 elm_object_cursor_set(ck, ELM_CURSOR_CLOCK);
119 elm_box_pack_end(bx, ck);
120 evas_object_show(ck);
122 bt = elm_button_add(win);
123 elm_object_cursor_set(bt, ELM_CURSOR_COFFEE_MUG);
124 elm_button_label_set(bt, "Coffee Mug");
125 elm_box_pack_end(bx, bt);
126 evas_object_show(bt);
128 bt = elm_button_add(win);
129 elm_object_cursor_set(bt, ELM_CURSOR_CLOCK);
130 elm_button_label_set(bt, "Cursor unset");
131 elm_object_cursor_unset(bt);
132 elm_box_pack_end(bx, bt);
133 evas_object_show(bt);
135 list = elm_list_add(win);
136 elm_box_pack_end(bx, list);
137 evas_object_size_hint_weight_set(list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
138 evas_object_size_hint_fill_set(list, EVAS_HINT_FILL, EVAS_HINT_FILL);
139 elm_object_cursor_set(list, ELM_CURSOR_WATCH);
140 lit = elm_list_item_append(list, "watch over list | hand1", NULL, NULL, NULL,
142 elm_list_item_cursor_set(lit, ELM_CURSOR_HAND1);
143 lit = elm_list_item_append(list, "watch over list | hand2", NULL, NULL, NULL,
145 elm_list_item_cursor_set(lit, ELM_CURSOR_HAND2);
147 evas_object_show(list);
149 entry = elm_scrolled_entry_add(win);
150 elm_scrolled_entry_entry_set(entry, "Xterm cursor");
151 elm_scrolled_entry_single_line_set(entry, EINA_TRUE);
152 evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, 0);
153 evas_object_size_hint_fill_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
154 elm_box_pack_end(bx, entry);
155 evas_object_show(entry);
156 elm_object_cursor_set(entry, ELM_CURSOR_XTERM);
158 evas_object_resize(win, 320, 480);
159 evas_object_show(win);
163 test_cursor2(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
165 Evas_Object *win, *bg, *bx, *o, *grid, *gl;
166 Elm_Genlist_Item *it1, *it2, *it3;
167 Elm_Toolbar_Item *tit;
170 static Testitem ti[144];
185 win = elm_win_add(NULL, "cursor2", ELM_WIN_BASIC);
186 elm_win_title_set(win, "Cursor 2");
187 elm_win_autodel_set(win, 1);
189 bg = elm_bg_add(win);
190 elm_win_resize_object_add(win, bg);
191 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
192 evas_object_show(bg);
194 bx = elm_box_add(win);
195 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
196 elm_win_resize_object_add(win, bx);
197 evas_object_show(bx);
199 o = elm_toolbar_add(win);
200 elm_toolbar_homogenous_set(o, 0);
201 evas_object_size_hint_weight_set(o, 0.0, 0.0);
202 evas_object_size_hint_align_set(o, EVAS_HINT_FILL, 0.0);
203 tit = elm_toolbar_item_append(o, NULL, "Bogosity", NULL, NULL);
204 elm_toolbar_item_cursor_set(tit, ELM_CURSOR_BOGOSITY);
205 tit = elm_toolbar_item_append(o, NULL, "Unset", NULL, NULL);
206 elm_toolbar_item_cursor_set(tit, ELM_CURSOR_BOGOSITY);
207 elm_toolbar_item_cursor_unset(tit);
208 tit = elm_toolbar_item_append(o, NULL, "Xterm", NULL, NULL);
209 elm_toolbar_item_cursor_set(tit, ELM_CURSOR_XTERM);
210 elm_box_pack_end(bx, o);
213 o = elm_list_add(win);
214 elm_box_pack_end(bx, o);
215 evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
216 evas_object_size_hint_fill_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
217 lit = elm_list_item_append(o, "cursor bogosity", NULL, NULL, NULL, NULL);
218 elm_list_item_cursor_set(lit, ELM_CURSOR_BOGOSITY);
219 lit = elm_list_item_append(o, "cursor unset", NULL, NULL, NULL, NULL);
220 elm_list_item_cursor_set(lit, ELM_CURSOR_BOGOSITY);
221 elm_list_item_cursor_unset(lit);
222 lit = elm_list_item_append(o, "cursor xterm", NULL, NULL, NULL, NULL);
223 elm_list_item_cursor_set(lit, ELM_CURSOR_XTERM);
227 gl = elm_genlist_add(win);
228 evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
229 evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
230 evas_object_show(gl);
232 itct.item_style = "default";
233 itct.func.label_get = glt_label_get;
235 it1 = elm_genlist_item_append(gl, &itct, (void *) 1, NULL,
236 ELM_GENLIST_ITEM_SUBITEMS, NULL, NULL);
237 it2 = elm_genlist_item_append(gl, &itct, (void *) 2, NULL,
238 ELM_GENLIST_ITEM_SUBITEMS, NULL, NULL);
239 it3 = elm_genlist_item_append(gl, &itct, (void *) 3, NULL,
240 ELM_GENLIST_ITEM_NONE, NULL, NULL);
242 elm_genlist_item_cursor_set(it1, ELM_CURSOR_HAND1);
243 elm_genlist_item_cursor_set(it2, ELM_CURSOR_HAND1);
244 elm_genlist_item_cursor_set(it3, ELM_CURSOR_CROSS);
246 evas_object_smart_callback_add(gl, "expand,request", glt_exp_req, gl);
247 evas_object_smart_callback_add(gl, "contract,request", glt_con_req, gl);
248 evas_object_smart_callback_add(gl, "expanded", glt_exp, gl);
249 evas_object_smart_callback_add(gl, "contracted", glt_con, gl);
251 elm_box_pack_end(bx, gl);
253 grid = elm_gengrid_add(win);
254 elm_gengrid_item_size_set(grid, 130, 130);
255 elm_gengrid_horizontal_set(grid, EINA_FALSE);
256 elm_gengrid_multi_select_set(grid, EINA_TRUE);
257 evas_object_size_hint_weight_set(grid, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
258 evas_object_size_hint_fill_set(grid, EVAS_HINT_FILL, EVAS_HINT_FILL);
260 gic.item_style = "default";
261 gic.func.label_get = grd_lbl_get;
262 gic.func.icon_get = grd_icon_get;
265 for (i = 0; i < 3 * 3; i++)
267 snprintf(buf, sizeof(buf), "%s/images/%s", PACKAGE_DATA_DIR, img[n]);
270 ti[i].path = eina_stringshare_add(buf);
271 ti[i].item = elm_gengrid_item_append(grid, &gic, &(ti[i]), NULL, NULL);
273 elm_gengrid_item_cursor_set(ti[i].item, ELM_CURSOR_HAND1);
275 elm_gengrid_item_cursor_set(ti[i].item, ELM_CURSOR_CLOCK);
277 elm_gengrid_item_selected_set(ti[i].item, EINA_TRUE);
279 elm_box_pack_end(bx, grid);
280 evas_object_show(grid);
282 evas_object_resize(win, 320, 480);
283 evas_object_show(win);
287 test_cursor3(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
289 Evas_Object *win, *bg, *bx, *o;
293 win = elm_win_add(NULL, "cursor3", ELM_WIN_BASIC);
294 elm_win_title_set(win, "Cursor 3");
295 elm_win_autodel_set(win, 1);
297 snprintf(buf, sizeof(buf), "%s/objects/cursors.edj", PACKAGE_DATA_DIR);
298 elm_theme_extension_add(NULL, buf);
300 bg = elm_bg_add(win);
301 elm_win_resize_object_add(win, bg);
302 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
303 evas_object_show(bg);
305 bx = elm_box_add(win);
306 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
307 elm_win_resize_object_add(win, bx);
308 evas_object_show(bx);
310 o = elm_button_add(win);
311 elm_object_cursor_set(o, ELM_CURSOR_HAND1);
312 elm_object_cursor_engine_only_set(o, EINA_FALSE);
313 elm_button_label_set(o, "hand1");
314 elm_box_pack_end(bx, o);
317 o = elm_button_add(win);
318 elm_object_cursor_set(o, ELM_CURSOR_HAND2);
319 elm_button_label_set(o, "hand2 x");
320 elm_box_pack_end(bx, o);
323 o = elm_button_add(win);
324 elm_object_cursor_set(o, ELM_CURSOR_HAND2);
325 elm_object_cursor_engine_only_set(o, EINA_FALSE);
326 elm_button_label_set(o, "hand2");
327 elm_box_pack_end(bx, o);
330 o = elm_button_add(win);
331 elm_object_cursor_set(o, "hand3");
332 elm_object_cursor_engine_only_set(o, EINA_FALSE);
333 elm_button_label_set(o, "hand3");
334 elm_box_pack_end(bx, o);
337 o = elm_button_add(win);
338 elm_object_cursor_set(o, "hand3");
339 elm_object_cursor_engine_only_set(o, EINA_FALSE);
340 elm_object_cursor_style_set(o, "transparent");
341 elm_button_label_set(o, "hand3 transparent");
342 elm_box_pack_end(bx, o);
345 o = elm_button_add(win);
346 elm_object_cursor_set(o, "hand3");
347 elm_object_cursor_engine_only_set(o, EINA_FALSE);
348 elm_object_cursor_unset(o);
349 elm_button_label_set(o, "unset");
350 elm_box_pack_end(bx, o);
353 o = elm_button_add(win);
354 elm_object_cursor_set(o, "hand4");
355 elm_button_label_set(o, "not existent");
356 elm_box_pack_end(bx, o);
359 elm_cursor_engine_only_set(0);
360 o = elm_button_add(win);
361 elm_object_cursor_set(o, "hand2");
362 elm_button_label_set(o, "hand 2 engine only config false");
363 elm_box_pack_end(bx, o);
366 elm_cursor_engine_only_set(1);
367 o = elm_button_add(win);
368 elm_object_cursor_set(o, "hand2");
369 elm_button_label_set(o, "hand 2 engine only config true");
370 elm_box_pack_end(bx, o);
373 o = elm_list_add(win);
374 elm_box_pack_end(bx, o);
375 evas_object_size_hint_weight_set(o, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
376 evas_object_size_hint_fill_set(o, EVAS_HINT_FILL, EVAS_HINT_FILL);
377 lit = elm_list_item_append(o, "cursor hand2 x", NULL, NULL, NULL, NULL);
378 elm_list_item_cursor_set(lit, ELM_CURSOR_HAND2);
379 lit = elm_list_item_append(o, "cursor hand2", NULL, NULL, NULL, NULL);
380 elm_list_item_cursor_set(lit, ELM_CURSOR_HAND2);
381 elm_list_item_cursor_engine_only_set(lit, EINA_FALSE);
382 lit = elm_list_item_append(o, "cursor hand3", NULL, NULL, NULL, NULL);
383 elm_list_item_cursor_set(lit, "hand3");
384 elm_list_item_cursor_engine_only_set(lit, EINA_FALSE);
385 lit = elm_list_item_append(o, "cursor hand3 transparent", NULL, NULL,
387 elm_list_item_cursor_set(lit, "hand3");
388 elm_list_item_cursor_style_set(lit, "transparent");
389 elm_list_item_cursor_engine_only_set(lit, EINA_FALSE);
393 evas_object_resize(win, 320, 480);
394 evas_object_show(win);