diff options
Diffstat (limited to '')
-rw-r--r-- | libraries/elementary/src/bin/test_floating.c | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/libraries/elementary/src/bin/test_floating.c b/libraries/elementary/src/bin/test_floating.c new file mode 100644 index 0000000..2e3ac94 --- /dev/null +++ b/libraries/elementary/src/bin/test_floating.c | |||
@@ -0,0 +1,103 @@ | |||
1 | #ifdef HAVE_CONFIG_H | ||
2 | # include "elementary_config.h" | ||
3 | #endif | ||
4 | #include <Elementary.h> | ||
5 | #ifndef ELM_LIB_QUICKLAUNCH | ||
6 | typedef struct _Testitem | ||
7 | { | ||
8 | Elm_Object_Item *item; | ||
9 | int mode; | ||
10 | int onoff; | ||
11 | } Testitem; | ||
12 | |||
13 | |||
14 | static Elm_Genlist_Item_Class itc1; | ||
15 | static char *glf_text_get(void *data, Evas_Object *obj __UNUSED__, const char *part __UNUSED__) | ||
16 | { | ||
17 | char buf[256]; | ||
18 | snprintf(buf, sizeof(buf), "Item # %i", (int)(long)data); | ||
19 | return strdup(buf); | ||
20 | } | ||
21 | |||
22 | static Evas_Object *glf_content_get(void *data __UNUSED__, Evas_Object *obj, const char *part __UNUSED__) | ||
23 | { | ||
24 | char buf[PATH_MAX]; | ||
25 | Evas_Object *ic = elm_icon_add(obj); | ||
26 | snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get()); | ||
27 | elm_icon_file_set(ic, buf, NULL); | ||
28 | evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1); | ||
29 | return ic; | ||
30 | } | ||
31 | static Eina_Bool glf_state_get(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const char *part __UNUSED__) | ||
32 | { | ||
33 | return EINA_FALSE; | ||
34 | } | ||
35 | static void glf_del(void *data __UNUSED__, Evas_Object *obj __UNUSED__) | ||
36 | { | ||
37 | } | ||
38 | |||
39 | static void | ||
40 | gl_sel(void *data, Evas_Object *obj, void *event_info) | ||
41 | { | ||
42 | printf("sel item data [%p] on genlist obj [%p], item pointer [%p]\n", data, obj, event_info); | ||
43 | } | ||
44 | |||
45 | static Eina_Bool | ||
46 | anim(void *data) | ||
47 | { | ||
48 | Evas_Object *gl = data; | ||
49 | Evas_Coord x, y; | ||
50 | |||
51 | y = 0; | ||
52 | x = (sin(ecore_loop_time_get()) * 500); | ||
53 | evas_object_move(gl, x, y); | ||
54 | return ECORE_CALLBACK_RENEW; | ||
55 | } | ||
56 | |||
57 | static void | ||
58 | _del(void *data, Evas *evas __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) | ||
59 | { | ||
60 | Ecore_Animator *ani = data; | ||
61 | |||
62 | ecore_animator_del(ani); | ||
63 | } | ||
64 | |||
65 | void | ||
66 | test_floating(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) | ||
67 | { | ||
68 | Evas_Object *win, *gl; | ||
69 | int i; | ||
70 | Ecore_Animator *ani; | ||
71 | |||
72 | win = elm_win_util_standard_add("floating", "Floating"); | ||
73 | elm_win_autodel_set(win, EINA_TRUE); | ||
74 | |||
75 | gl = elm_genlist_add(win); | ||
76 | evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); | ||
77 | evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL); | ||
78 | evas_object_move(gl, 800, 0); | ||
79 | evas_object_resize(gl, 480, 800); | ||
80 | evas_object_show(gl); | ||
81 | |||
82 | itc1.item_style = "default"; | ||
83 | itc1.func.text_get = glf_text_get; | ||
84 | itc1.func.content_get = glf_content_get; | ||
85 | itc1.func.state_get = glf_state_get; | ||
86 | itc1.func.del = glf_del; | ||
87 | |||
88 | for (i = 0; i < 20; i++) | ||
89 | { | ||
90 | elm_genlist_item_append(gl, &itc1, | ||
91 | (void *)(long)i/* item data */, | ||
92 | NULL/* parent */, | ||
93 | ELM_GENLIST_ITEM_NONE, | ||
94 | gl_sel/* func */, | ||
95 | (void *)(long)(i * 10)/* func data */); | ||
96 | } | ||
97 | evas_object_resize(win, 480, 800); | ||
98 | evas_object_show(win); | ||
99 | |||
100 | ani = ecore_animator_add(anim, gl); | ||
101 | evas_object_event_callback_add(win, EVAS_CALLBACK_DEL, _del, ani); | ||
102 | } | ||
103 | #endif | ||