diff options
Diffstat (limited to 'libraries/elementary/src/bin/test_panel.c')
-rw-r--r-- | libraries/elementary/src/bin/test_panel.c | 267 |
1 files changed, 0 insertions, 267 deletions
diff --git a/libraries/elementary/src/bin/test_panel.c b/libraries/elementary/src/bin/test_panel.c deleted file mode 100644 index ee88b8c..0000000 --- a/libraries/elementary/src/bin/test_panel.c +++ /dev/null | |||
@@ -1,267 +0,0 @@ | |||
1 | #ifdef HAVE_CONFIG_H | ||
2 | # include "elementary_config.h" | ||
3 | #endif | ||
4 | #include <Elementary.h> | ||
5 | #ifndef ELM_LIB_QUICKLAUNCH | ||
6 | |||
7 | #define LIST_ITEM_MAX 20 | ||
8 | |||
9 | static Elm_Genlist_Item_Class itc; | ||
10 | |||
11 | static void _bstatus(void *data, Evas_Object *obj, void *event_info); | ||
12 | static void _tstatus(void *data, Evas_Object *obj, void *event_info); | ||
13 | static char *_text_get(void *data, Evas_Object *obj, const char *source); | ||
14 | static Evas_Object *_content_get(void *data, Evas_Object *obj, const char *source); | ||
15 | static Eina_Bool _state_get(void *data, Evas_Object *obj, const char *source); | ||
16 | static void _item_del(void *data, Evas_Object *obj); | ||
17 | static void _fill_list(Evas_Object *obj); | ||
18 | static Eina_Bool _dir_has_subs(const char *path); | ||
19 | |||
20 | static Eina_List *dirs = NULL; | ||
21 | |||
22 | static void | ||
23 | _tstatus(void *data, Evas_Object *obj, void *event_info __UNUSED__) | ||
24 | { | ||
25 | Elm_Object_Item *tb_it; | ||
26 | const char *status; | ||
27 | |||
28 | if (elm_panel_hidden_get((Evas_Object*)data)) | ||
29 | status = "hidden"; | ||
30 | else | ||
31 | status = "shown"; | ||
32 | printf("The top panel is currently %s\n", status); | ||
33 | tb_it = elm_toolbar_selected_item_get(obj); | ||
34 | elm_toolbar_item_selected_set(tb_it, EINA_FALSE); | ||
35 | } | ||
36 | |||
37 | static void | ||
38 | _bstatus(void *data, Evas_Object *obj, void *event_info __UNUSED__) | ||
39 | { | ||
40 | Elm_Object_Item *tb_it; | ||
41 | const char *status; | ||
42 | |||
43 | if (elm_panel_hidden_get((Evas_Object*)data)) | ||
44 | status = "hidden"; | ||
45 | else | ||
46 | status = "shown"; | ||
47 | printf("The bottom panel is currently %s\n", status); | ||
48 | tb_it = elm_toolbar_selected_item_get(obj); | ||
49 | elm_toolbar_item_selected_set(tb_it, EINA_FALSE); | ||
50 | } | ||
51 | |||
52 | static char * | ||
53 | _text_get(void *data, Evas_Object *obj __UNUSED__, const char *source __UNUSED__) | ||
54 | { | ||
55 | return strdup(ecore_file_file_get(data)); | ||
56 | } | ||
57 | |||
58 | static Evas_Object * | ||
59 | _content_get(void *data, Evas_Object *obj, const char *source) | ||
60 | { | ||
61 | if (!strcmp(source, "elm.swallow.icon")) | ||
62 | { | ||
63 | Evas_Object *ic; | ||
64 | |||
65 | ic = elm_icon_add(obj); | ||
66 | if (ecore_file_is_dir((char *)data)) | ||
67 | elm_icon_standard_set(ic, "folder"); | ||
68 | else | ||
69 | elm_icon_standard_set(ic, "file"); | ||
70 | evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1); | ||
71 | evas_object_show(ic); | ||
72 | return ic; | ||
73 | } | ||
74 | return NULL; | ||
75 | } | ||
76 | |||
77 | static Eina_Bool | ||
78 | _state_get(void *data __UNUSED__, Evas_Object *obj __UNUSED__, const char *source __UNUSED__) | ||
79 | { | ||
80 | return EINA_FALSE; | ||
81 | } | ||
82 | |||
83 | static void | ||
84 | _item_del(void *data, Evas_Object *obj __UNUSED__) | ||
85 | { | ||
86 | eina_stringshare_del(data); | ||
87 | } | ||
88 | |||
89 | static void | ||
90 | _fill_list(Evas_Object *obj) | ||
91 | { | ||
92 | DIR *d; | ||
93 | struct dirent *de; | ||
94 | Eina_List *l; | ||
95 | char *real; | ||
96 | unsigned int x = 0; | ||
97 | |||
98 | if (!dirs) | ||
99 | { | ||
100 | if (!(d = opendir(getenv("HOME")))) return; | ||
101 | while ((de = readdir(d)) && (x < LIST_ITEM_MAX)) | ||
102 | { | ||
103 | char buff[PATH_MAX]; | ||
104 | |||
105 | if (de->d_name[0] == '.') continue; | ||
106 | snprintf(buff, sizeof(buff), "%s/%s", getenv("HOME"), de->d_name); | ||
107 | if (!ecore_file_is_dir(buff)) continue; | ||
108 | x++; | ||
109 | real = ecore_file_realpath(buff); | ||
110 | dirs = eina_list_sorted_insert(dirs, EINA_COMPARE_CB(strcoll), real); | ||
111 | } | ||
112 | closedir(d); | ||
113 | } | ||
114 | EINA_LIST_FOREACH(dirs, l, real) | ||
115 | { | ||
116 | Eina_Bool result = EINA_FALSE; | ||
117 | |||
118 | result = _dir_has_subs(real); | ||
119 | if (!result) | ||
120 | elm_genlist_item_append(obj, &itc, eina_stringshare_add(real), | ||
121 | NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL); | ||
122 | else | ||
123 | elm_genlist_item_append(obj, &itc, eina_stringshare_add(real), | ||
124 | NULL, ELM_GENLIST_ITEM_TREE, | ||
125 | NULL, NULL); | ||
126 | } | ||
127 | } | ||
128 | |||
129 | static Eina_Bool | ||
130 | _dir_has_subs(const char *path) | ||
131 | { | ||
132 | DIR *d; | ||
133 | struct dirent *de; | ||
134 | Eina_Bool result = EINA_FALSE; | ||
135 | |||
136 | if (!path) return result; | ||
137 | if (!(d = opendir(path))) return result; | ||
138 | while ((de = readdir(d))) | ||
139 | { | ||
140 | char buff[PATH_MAX]; | ||
141 | |||
142 | if (de->d_name[0] == '.') continue; | ||
143 | snprintf(buff, sizeof(buff), "%s/%s", path, de->d_name); | ||
144 | if (ecore_file_is_dir(buff)) | ||
145 | { | ||
146 | result = EINA_TRUE; | ||
147 | break; | ||
148 | } | ||
149 | } | ||
150 | closedir(d); | ||
151 | return result; | ||
152 | } | ||
153 | |||
154 | void | ||
155 | test_panel(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__) | ||
156 | { | ||
157 | Evas_Object *win, *panel, *bx, *vbx, *toolbar; | ||
158 | Evas_Object *list; | ||
159 | |||
160 | win = elm_win_util_standard_add("panel", "Panel"); | ||
161 | elm_win_autodel_set(win, EINA_TRUE); | ||
162 | |||
163 | vbx = elm_box_add(win); | ||
164 | elm_win_resize_object_add(win, vbx); | ||
165 | evas_object_size_hint_weight_set(vbx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); | ||
166 | evas_object_size_hint_align_set(vbx, EVAS_HINT_FILL, EVAS_HINT_FILL); | ||
167 | evas_object_show(vbx); | ||
168 | |||
169 | bx = elm_box_add(win); | ||
170 | elm_box_horizontal_set(bx, EINA_TRUE); | ||
171 | evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); | ||
172 | evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, EVAS_HINT_FILL); | ||
173 | evas_object_show(bx); | ||
174 | |||
175 | panel = elm_panel_add(vbx); | ||
176 | elm_panel_orient_set(panel, ELM_PANEL_ORIENT_TOP); | ||
177 | evas_object_size_hint_weight_set(panel, EVAS_HINT_EXPAND, 0); | ||
178 | evas_object_size_hint_align_set(panel, EVAS_HINT_FILL, EVAS_HINT_FILL); | ||
179 | |||
180 | toolbar = elm_toolbar_add(panel); | ||
181 | elm_toolbar_homogeneous_set(toolbar, 0); | ||
182 | elm_toolbar_shrink_mode_set(toolbar, ELM_TOOLBAR_SHRINK_NONE); | ||
183 | evas_object_size_hint_weight_set(toolbar, EVAS_HINT_EXPAND, 0); | ||
184 | evas_object_size_hint_align_set(toolbar, EVAS_HINT_FILL, EVAS_HINT_FILL); | ||
185 | evas_object_show(toolbar); | ||
186 | |||
187 | elm_toolbar_item_append(toolbar, "home", "Hello", _tstatus, panel); | ||
188 | |||
189 | elm_object_content_set(panel, toolbar); | ||
190 | elm_box_pack_end(vbx, panel); | ||
191 | evas_object_show(panel); | ||
192 | |||
193 | panel = elm_panel_add(bx); | ||
194 | elm_panel_orient_set(panel, ELM_PANEL_ORIENT_LEFT); | ||
195 | evas_object_size_hint_weight_set(panel, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); | ||
196 | evas_object_size_hint_align_set(panel, 0, EVAS_HINT_FILL); | ||
197 | |||
198 | itc.item_style = "default"; | ||
199 | itc.func.text_get = _text_get; | ||
200 | itc.func.content_get = _content_get; | ||
201 | itc.func.state_get = _state_get; | ||
202 | itc.func.del = _item_del; | ||
203 | |||
204 | list = elm_genlist_add(panel); | ||
205 | evas_object_size_hint_min_set(list, 100, -1); | ||
206 | evas_object_size_hint_weight_set(list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); | ||
207 | evas_object_size_hint_align_set(list, EVAS_HINT_FILL, EVAS_HINT_FILL); | ||
208 | evas_object_show(list); | ||
209 | |||
210 | elm_object_content_set(panel, list); | ||
211 | |||
212 | elm_box_pack_end(bx, panel); | ||
213 | evas_object_show(panel); | ||
214 | |||
215 | _fill_list(list); | ||
216 | |||
217 | panel = elm_panel_add(bx); | ||
218 | elm_panel_orient_set(panel, ELM_PANEL_ORIENT_RIGHT); | ||
219 | evas_object_size_hint_weight_set(panel, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); | ||
220 | evas_object_size_hint_align_set(panel, 1, EVAS_HINT_FILL); | ||
221 | elm_panel_hidden_set(panel, EINA_TRUE); | ||
222 | |||
223 | list = elm_genlist_add(panel); | ||
224 | evas_object_size_hint_min_set(list, 100, -1); | ||
225 | evas_object_size_hint_weight_set(list, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); | ||
226 | evas_object_size_hint_align_set(list, EVAS_HINT_FILL, EVAS_HINT_FILL); | ||
227 | evas_object_show(list); | ||
228 | |||
229 | elm_object_content_set(panel, list); | ||
230 | |||
231 | elm_box_pack_end(bx, panel); | ||
232 | evas_object_show(panel); | ||
233 | |||
234 | _fill_list(list); | ||
235 | { | ||
236 | char *dir; | ||
237 | EINA_LIST_FREE(dirs, dir) | ||
238 | free(dir); | ||
239 | } | ||
240 | |||
241 | elm_box_pack_end(vbx, bx); | ||
242 | |||
243 | panel = elm_panel_add(vbx); | ||
244 | elm_panel_orient_set(panel, ELM_PANEL_ORIENT_BOTTOM); | ||
245 | evas_object_size_hint_weight_set(panel, EVAS_HINT_EXPAND, 0); | ||
246 | evas_object_size_hint_align_set(panel, EVAS_HINT_FILL, EVAS_HINT_FILL); | ||
247 | elm_panel_hidden_set(panel, EINA_TRUE); | ||
248 | |||
249 | toolbar = elm_toolbar_add(panel); | ||
250 | elm_toolbar_homogeneous_set(toolbar, 0); | ||
251 | elm_toolbar_shrink_mode_set(toolbar, ELM_TOOLBAR_SHRINK_NONE); | ||
252 | evas_object_size_hint_weight_set(toolbar, EVAS_HINT_EXPAND, 0); | ||
253 | evas_object_size_hint_align_set(toolbar, EVAS_HINT_FILL, EVAS_HINT_FILL); | ||
254 | evas_object_show(toolbar); | ||
255 | |||
256 | elm_toolbar_item_append(toolbar, "home", "Hello", _bstatus, panel); | ||
257 | |||
258 | elm_object_content_set(panel, toolbar); | ||
259 | elm_box_pack_end(vbx, panel); | ||
260 | evas_object_show(panel); | ||
261 | |||
262 | evas_object_resize(win, 320, 400); | ||
263 | evas_object_show(win); | ||
264 | } | ||
265 | |||
266 | |||
267 | #endif | ||