1 #include <Elementary.h>
3 # include "elementary_config.h"
5 #ifndef ELM_LIB_QUICKLAUNCH
8 fill(Evas_Object *win, Eina_Bool do_bg)
10 Evas_Object *bg, *sc, *bx, *ic, *bb, *av, *en;
16 elm_win_resize_object_add(win, bg);
17 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
21 sc = elm_scroller_add(win);
22 evas_object_size_hint_weight_set(sc, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
23 elm_win_resize_object_add(win, sc);
25 bx = elm_box_add(win);
26 evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, 0.0);
27 evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, EVAS_HINT_FILL);
29 en = elm_entry_add(win);
30 elm_entry_scrollable_set(en, EINA_TRUE);
31 evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);
32 evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);
33 elm_object_text_set(en, "This is a single line");
34 elm_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
36 elm_entry_single_line_set(en, 1);
38 elm_entry_single_line_set(en, EINA_TRUE);
39 >>>>>>> remotes/origin/upstream
41 elm_box_pack_end(bx, en);
43 en = elm_entry_add(win);
44 elm_entry_scrollable_set(en, EINA_TRUE);
45 evas_object_size_hint_weight_set(en, EVAS_HINT_EXPAND, 0.0);
46 evas_object_size_hint_align_set(en, EVAS_HINT_FILL, 0.5);
47 elm_object_text_set(en, "Entry 2");
48 elm_entry_scrollbar_policy_set(en, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_OFF);
50 elm_entry_single_line_set(en, 1);
52 elm_entry_single_line_set(en, EINA_TRUE);
53 >>>>>>> remotes/origin/upstream
55 elm_box_pack_end(bx, en);
57 ic = elm_icon_add(win);
58 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
59 elm_icon_file_set(ic, buf, NULL);
61 elm_icon_scale_set(ic, 0, 0);
63 elm_icon_resizable_set(ic, 0, 0);
64 >>>>>>> remotes/origin/upstream
65 evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_HORIZONTAL, 1, 1);
67 bb = elm_bubble_add(win);
68 elm_object_text_set(bb, "Message 3");
69 elm_object_part_text_set(bb, "info", "10:32 4/11/2008");
70 elm_object_part_content_set(bb, "icon", ic);
72 evas_object_size_hint_weight_set(bb, EVAS_HINT_EXPAND, 0.0);
73 evas_object_size_hint_align_set(bb, EVAS_HINT_FILL, EVAS_HINT_FILL);
75 av = elm_anchorblock_add(win);
76 elm_anchorblock_hover_style_set(av, "popout");
77 elm_anchorblock_hover_parent_set(av, win);
78 elm_object_text_set(av,
79 "Hi there. This is the most recent message in the "
80 "list of messages. It has one <a href=tel:+614321234>+61 432 1234</a> "
81 "(phone number) to click on.");
83 av = elm_entry_add(win);
84 elm_entry_anchor_hover_style_set(av, "popout");
85 elm_entry_anchor_hover_parent_set(av, win);
86 elm_object_text_set(av,
87 "Hi there. This is the most recent message in the "
88 "list of messages. It has one <a href=tel:+614321234>+61 432 1234</a> "
89 "(phone number) to click on.");
90 >>>>>>> remotes/origin/upstream
91 elm_object_content_set(bb, av);
93 elm_box_pack_end(bx, bb);
96 ic = elm_icon_add(win);
97 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
98 elm_icon_file_set(ic, buf, NULL);
99 evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
101 bb = elm_bubble_add(win);
102 elm_object_text_set(bb, "Message 2");
103 elm_object_part_text_set(bb, "info", "7:16 27/10/2008");
104 elm_object_part_content_set(bb, "icon", ic);
105 evas_object_show(ic);
106 evas_object_size_hint_weight_set(bb, EVAS_HINT_EXPAND, 0.0);
107 evas_object_size_hint_align_set(bb, EVAS_HINT_FILL, EVAS_HINT_FILL);
109 av = elm_anchorblock_add(win);
110 elm_anchorblock_hover_style_set(av, "popout");
111 elm_anchorblock_hover_parent_set(av, win);
112 elm_object_text_set(av,
113 "Hey what are you doing? This is the second last message "
114 "Hi there. This is the most recent message in the "
115 "list. It's a longer one so it can wrap more and "
116 "contains a <a href=contact:john>John</a> contact "
117 "link in it to test popups on links. The idea is that "
118 "all SMS's are scanned for things that look like phone "
119 "numbers or names that are in your contacts list, and "
120 "if they are, they become clickable links that pop up "
121 "a menus of obvious actions to perform on this piece "
122 "of information. This of course can be later explicitly "
123 "done by links maybe running local apps or even being "
124 "web URL's too that launch the web browser and point it "
125 "to that URL. <item relsize=16x16 vsize=full href=emoticon/omg></item>");
127 av = elm_entry_add(win);
128 elm_entry_anchor_hover_style_set(av, "popout");
129 elm_entry_anchor_hover_parent_set(av, win);
130 elm_object_text_set(av,
131 "Hey what are you doing? This is the second last message "
132 "Hi there. This is the most recent message in the "
133 "list. It's a longer one so it can wrap more and "
134 "contains a <a href=contact:john>John</a> contact "
135 "link in it to test popups on links. The idea is that "
136 "all SMS's are scanned for things that look like phone "
137 "numbers or names that are in your contacts list, and "
138 "if they are, they become clickable links that pop up "
139 "a menus of obvious actions to perform on this piece "
140 "of information. This of course can be later explicitly "
141 "done by links maybe running local apps or even being "
142 "web URL's too that launch the web browser and point it "
143 "to that URL. <item relsize=16x16 vsize=full href=emoticon/omg></item>");
144 >>>>>>> remotes/origin/upstream
145 elm_object_content_set(bb, av);
146 evas_object_show(av);
147 elm_box_pack_end(bx, bb);
148 evas_object_show(bb);
150 ic = elm_icon_add(win);
151 snprintf(buf, sizeof(buf), "%s/images/logo_small.png", elm_app_data_dir_get());
152 elm_icon_file_set(ic, buf, NULL);
154 elm_icon_scale_set(ic, 0, 0);
156 elm_icon_resizable_set(ic, 0, 0);
157 >>>>>>> remotes/origin/upstream
158 evas_object_size_hint_aspect_set(ic, EVAS_ASPECT_CONTROL_HORIZONTAL, 1, 1);
160 bb = elm_bubble_add(win);
161 elm_object_text_set(bb, "Message 1");
162 elm_object_part_text_set(bb, "info", "20:47 18/6/2008");
163 elm_object_part_content_set(bb, "icon", ic);
164 evas_object_show(ic);
165 evas_object_size_hint_weight_set(bb, EVAS_HINT_EXPAND, 0.0);
166 evas_object_size_hint_align_set(bb, EVAS_HINT_FILL, EVAS_HINT_FILL);
169 av = elm_anchorblock_add(win);
170 elm_anchorblock_hover_style_set(av, "popout");
171 elm_anchorblock_hover_parent_set(av, win);
173 av = elm_entry_add(win);
174 elm_entry_anchor_hover_style_set(av, "popout");
175 elm_entry_anchor_hover_parent_set(av, win);
176 >>>>>>> remotes/origin/upstream
177 elm_object_text_set(av, "This is a short message. <item relsize=16x16 vsize=full href=emoticon/haha></item>");
178 elm_object_content_set(bb, av);
179 evas_object_show(av);
180 elm_box_pack_end(bx, bb);
181 evas_object_show(bb);
183 elm_object_content_set(sc, bx);
184 evas_object_show(bx);
186 evas_object_show(sc);
190 cb_mouse_move(void *data, Evas *evas __UNUSED__, Evas_Object *obj, void *event_info)
192 Evas_Event_Mouse_Move *ev = event_info;
193 Evas_Object *orig = data;
198 if (!ev->buttons) return;
199 evas_object_geometry_get(obj, &x, &y, NULL, NULL);
200 evas_object_move(obj,
201 x + (ev->cur.canvas.x - ev->prev.output.x),
202 y + (ev->cur.canvas.y - ev->prev.output.y));
203 evas_object_image_size_get(orig, &w, &h);
205 evas_object_map_enable_set(orig, EINA_TRUE);
206 evas_object_raise(orig);
207 for (i = 0; i < 4; i++)
212 snprintf(key, sizeof(key), "h-%i\n", i);
213 hand = evas_object_data_get(orig, key);
214 evas_object_raise(hand);
215 evas_object_geometry_get(hand, &x, &y, NULL, NULL);
218 evas_map_point_coord_set(p, i, x, y, 0);
219 if (i == 0) evas_map_point_image_uv_set(p, i, 0, 0);
220 else if (i == 1) evas_map_point_image_uv_set(p, i, w, 0);
221 else if (i == 2) evas_map_point_image_uv_set(p, i, w, h);
222 else if (i == 3) evas_map_point_image_uv_set(p, i, 0, h);
224 evas_object_map_set(orig, p);
229 create_handles(Evas_Object *obj)
232 Evas_Coord x, y, w, h;
234 evas_object_geometry_get(obj, &x, &y, &w, &h);
235 for (i = 0; i < 4; i++)
241 hand = evas_object_image_filled_add(evas_object_evas_get(obj));
242 evas_object_resize(hand, 31, 31);
243 snprintf(buf, sizeof(buf), "%s/images/pt.png", elm_app_data_dir_get());
244 evas_object_image_file_set(hand, buf, NULL);
245 if (i == 0) evas_object_move(hand, x - 15, y - 15);
246 else if (i == 1) evas_object_move(hand, x + w - 15, y - 15);
247 else if (i == 2) evas_object_move(hand, x + w - 15, y + h - 15);
248 else if (i == 3) evas_object_move(hand, x - 15, y + h - 15);
249 evas_object_event_callback_add(hand, EVAS_CALLBACK_MOUSE_MOVE, cb_mouse_move, obj);
250 evas_object_show(hand);
251 snprintf(key, sizeof(key), "h-%i\n", i);
252 evas_object_data_set(obj, key, hand);
257 test_win_inline(void *data __UNUSED__, Evas_Object *obj __UNUSED__, void *event_info __UNUSED__)
259 Evas_Object *win, *bg, *win2, *win3;
262 win = elm_win_add(NULL, "window-inline", ELM_WIN_BASIC);
263 elm_win_title_set(win, "Window Inline");
264 elm_win_autodel_set(win, EINA_TRUE);
266 bg = elm_bg_add(win);
267 snprintf(buf, sizeof(buf), "%s/images/plant_01.jpg", elm_app_data_dir_get());
268 elm_bg_file_set(bg, buf, NULL);
269 elm_win_resize_object_add(win, bg);
270 evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
271 evas_object_show(bg);
273 win2 = elm_win_add(win, "inlined", ELM_WIN_INLINED_IMAGE);
274 fill(win2, EINA_TRUE);
276 evas_object_move(win2, 20, 60);
277 evas_object_resize(win2, 300, 200);
278 // image object for win2 is unlinked to its pos/size - so manual control
279 // this allows also for using map and other things with it.
280 evas_object_move(elm_win_inlined_image_object_get(win2), 20, 40);
281 evas_object_resize(elm_win_inlined_image_object_get(win2), 200, 320);
282 evas_object_show(win2);
284 win3 = elm_win_add(win, "inlined", ELM_WIN_INLINED_IMAGE);
285 elm_win_alpha_set(win3, EINA_TRUE);
286 fill(win3, EINA_FALSE);
288 evas_object_resize(win3, 300, 200);
289 evas_object_move(elm_win_inlined_image_object_get(win3), 80, 180);
290 evas_object_resize(elm_win_inlined_image_object_get(win3), 300, 200);
291 evas_object_show(win3);
293 create_handles(elm_win_inlined_image_object_get(win3));
295 evas_object_resize(win, 400, 600);
296 evas_object_show(win);