1 From 78c7d4c7b7f3737375643238d5cfaa84ca2e7d07 Mon Sep 17 00:00:00 2001
2 From: Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com>
3 Date: Wed, 14 Aug 2013 15:16:12 +0300
4 Subject: [PATCH 26/33] Example app code clean-up.
7 efl_webview/efl_webview.gyp | 2 +-
8 efl_webview/examples/main.c | 179 ++++++++++++++++++++++++++++++++++++++++
9 efl_webview/examples/main.cc | 190 -------------------------------------------
10 3 files changed, 180 insertions(+), 191 deletions(-)
11 create mode 100644 efl_webview/examples/main.c
12 delete mode 100644 efl_webview/examples/main.cc
14 diff --git a/efl_webview/efl_webview.gyp b/efl_webview/efl_webview.gyp
15 index c71eb7b..630102b 100644
16 --- a/efl_webview/efl_webview.gyp
17 +++ b/efl_webview/efl_webview.gyp
26 ['toolkit_uses_efl == 1', {
27 diff --git a/efl_webview/examples/main.c b/efl_webview/examples/main.c
29 index 0000000..7f18e8d
31 +++ b/efl_webview/examples/main.c
33 +// Copyright (c) 2013 Intel Corporation. All rights reserved.
34 +// Use of this source code is governed by a BSD-style license that can be
35 +// found in the LICENSE file.
38 +#include <Ecore_Evas.h>
39 +#include <Elementary.h>
41 +#include "efl_webview/public/xwalk_main.h"
42 +#include "efl_webview/public/xwalk_view.h"
44 +static const char APP_NAME[] = "EFL WebView Example";
46 +static int window_width = 800;
47 +static int window_height = 600;
50 +on_back_button_clicked(void *user_data, Evas_Object *back_button,
53 + xwalk_view_back((Evas_Object*)user_data);
57 +on_forward_button_clicked(void *user_data, Evas_Object *forward_button,
60 + xwalk_view_forward((Evas_Object*)user_data);
64 +on_reload_button_clicked(void *user_data, Evas_Object *forward_button,
67 + xwalk_view_reload((Evas_Object*)user_data);
71 +on_url_entry_activated(void *user_data, Evas_Object *url_entry,
74 + const char* url = elm_entry_entry_get(url_entry);
75 + xwalk_view_url_set((Evas_Object*)user_data, url);
79 +on_title_changed(void *user_data, Evas_Object *xwalk_view, void *event_info)
81 + const char *title = (const char *)event_info;
82 + elm_win_title_set((Evas_Object*)user_data, title);
86 +on_url_changed(void *user_data, Evas_Object *xwalk_view, void *event_info)
88 + char *url = elm_entry_utf8_to_markup((const char *)event_info);
89 + elm_entry_entry_set((Evas_Object*)user_data, url);
94 +on_loadingstate_changed(void *user_data,
95 + Evas_Object *xwalk_view,
98 + elm_progressbar_pulse((Evas_Object*)user_data, *(Eina_Bool*)event_info);
101 +static void window_create()
103 + /* Create elementary window */
104 + Evas_Object* elm_window = elm_win_util_standard_add("efl-webview-window",
106 + elm_win_autodel_set(elm_window, EINA_TRUE);
107 + elm_object_focus_allow_set(elm_window, EINA_TRUE);
109 + /* Create vertical layout that holds navigation bar and webview area */
110 + Evas_Object* vertical_layout = elm_box_add(elm_window);
111 + elm_box_padding_set(vertical_layout, 0, 4);
112 + evas_object_size_hint_weight_set(vertical_layout, EVAS_HINT_EXPAND,
114 + elm_win_resize_object_add(elm_window, vertical_layout);
115 + evas_object_show(vertical_layout);
117 + /* Create horizontal layout for navigation bar */
118 + Evas_Object* horizontal_layout = elm_box_add(elm_window);
119 + elm_box_horizontal_set(horizontal_layout, EINA_TRUE);
120 + evas_object_size_hint_weight_set(horizontal_layout, EVAS_HINT_EXPAND, 0.0);
121 + evas_object_size_hint_align_set(horizontal_layout, EVAS_HINT_FILL, 0.0);
122 + elm_box_pack_end(vertical_layout, horizontal_layout);
123 + evas_object_show(horizontal_layout);
125 + /* Create back button */
126 + Evas_Object* back_button = elm_button_add(elm_window);
127 + elm_object_text_set(back_button, "BACK");
128 + elm_box_pack_end(horizontal_layout, back_button);
129 + evas_object_show(back_button);
131 + /* Create forward button */
132 + Evas_Object* forward_button = elm_button_add(elm_window);
133 + elm_object_text_set(forward_button, "FORWARD");
134 + elm_box_pack_end(horizontal_layout, forward_button);
135 + evas_object_show(forward_button);
137 + /* Create reload button */
138 + Evas_Object* reload_button = elm_button_add(elm_window);
139 + elm_object_text_set(reload_button, "RELOAD");
140 + elm_box_pack_end(horizontal_layout, reload_button);
141 + evas_object_show(reload_button);
143 + /* Create url entry widget */
144 + Evas_Object* url_entry = elm_entry_add(elm_window);
145 + elm_entry_single_line_set(url_entry, EINA_TRUE);
146 + elm_entry_scrollable_set(url_entry, EINA_TRUE);
147 + elm_entry_cnp_mode_set(url_entry, ELM_CNP_MODE_PLAINTEXT);
148 + elm_entry_scrollbar_policy_set(url_entry, ELM_SCROLLER_POLICY_OFF,
149 + ELM_SCROLLER_POLICY_OFF);
150 + elm_entry_text_style_user_push(url_entry, "DEFAULT='font_size=16'");
151 + evas_object_size_hint_weight_set(url_entry, EVAS_HINT_EXPAND,
153 + evas_object_size_hint_align_set(url_entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
154 + elm_box_pack_end(horizontal_layout, url_entry);
155 + evas_object_show(url_entry);
157 + Evas_Object* progress_bar = elm_progressbar_add(elm_window);
158 + elm_progressbar_span_size_set(progress_bar, 10);
159 + elm_progressbar_pulse_set(progress_bar, EINA_TRUE);
160 + elm_progressbar_unit_format_set(progress_bar, NULL);
161 + evas_object_size_hint_align_set(progress_bar, EVAS_HINT_FILL, 1);
162 + evas_object_size_hint_weight_set(progress_bar, 0.01, EVAS_HINT_EXPAND);
163 + elm_box_pack_end(horizontal_layout, progress_bar);
164 + evas_object_show(progress_bar);
166 + /* Create WebView */
167 + Evas_Object* web_view = xwalk_view_add(evas_object_evas_get(elm_window));
168 + evas_object_size_hint_weight_set(web_view, EVAS_HINT_EXPAND,
170 + evas_object_size_hint_align_set(web_view, EVAS_HINT_FILL, EVAS_HINT_FILL);
171 + elm_box_pack_end(vertical_layout, web_view);
172 + elm_object_focus_set(web_view, EINA_TRUE);
173 + evas_object_show(web_view);
175 + evas_object_smart_callback_add(back_button, "clicked",
176 + on_back_button_clicked, web_view);
177 + evas_object_smart_callback_add(forward_button, "clicked",
178 + on_forward_button_clicked, web_view);
179 + evas_object_smart_callback_add(reload_button, "clicked",
180 + on_reload_button_clicked, web_view);
181 + evas_object_smart_callback_add(url_entry, "activated",
182 + on_url_entry_activated, web_view);
184 + evas_object_smart_callback_add(web_view, "title,changed",
185 + on_title_changed, elm_window);
186 + evas_object_smart_callback_add(web_view, "url,changed",
187 + on_url_changed, url_entry);
188 + evas_object_smart_callback_add(web_view, "loadingstate,changed",
189 + on_loadingstate_changed, progress_bar);
191 + evas_object_resize(elm_window, window_width, window_height);
192 + evas_object_show(elm_window);
195 +int main(int argc, char *argv[])
197 + // FIXME: Handle chrome command line and url.
198 + // It is needed only in development stage.
199 + xwalk_init(argc, argv);
201 + elm_init(argc, argv);
203 + elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
212 diff --git a/efl_webview/examples/main.cc b/efl_webview/examples/main.cc
213 deleted file mode 100644
214 index c0cbf4b..0000000
215 --- a/efl_webview/examples/main.cc
218 -// Copyright (c) 2013 Intel Corporation. All rights reserved.
219 -// Use of this source code is governed by a BSD-style license that can be
220 -// found in the LICENSE file.
223 -#include <Ecore_Evas.h>
224 -#include <Elementary.h>
226 -#include "efl_webview/lib/process_main.h"
227 -#include "efl_webview/lib/webview.h"
228 -#include "efl_webview/public/xwalk_main.h"
229 -#include "efl_webview/public/xwalk_view.h"
231 -static const char APP_NAME[] = "EFL WebView Example";
233 -static int window_width = 800;
234 -static int window_height = 600;
237 -on_back_button_clicked(void *user_data, Evas_Object *back_button,
240 - xwalk_view_back((Evas_Object*)user_data);
244 -on_forward_button_clicked(void *user_data, Evas_Object *forward_button,
247 - xwalk_view_forward((Evas_Object*)user_data);
251 -on_reload_button_clicked(void *user_data, Evas_Object *forward_button,
254 - xwalk_view_reload((Evas_Object*)user_data);
258 -on_url_entry_activated(void *user_data, Evas_Object *url_entry,
261 - const char* url = elm_entry_entry_get(url_entry);
262 - xwalk_view_url_set((Evas_Object*)user_data, url);
266 -on_progress(void *user_data, Evas_Object *xwalk_view, void *event_info)
268 - /* double progress = *(double *)event_info; */
269 - /* FIXME : implement. */
273 -on_title_changed(void *user_data, Evas_Object *xwalk_view, void *event_info)
275 - const char *title = (const char *)event_info;
276 - elm_win_title_set((Evas_Object*)user_data, title);
280 -on_url_changed(void *user_data, Evas_Object *xwalk_view, void *event_info)
282 - char *url = elm_entry_utf8_to_markup((const char *)event_info);
283 - elm_entry_entry_set((Evas_Object*)user_data, url);
288 -on_loadingstate_changed(void *user_data,
289 - Evas_Object *xwalk_view,
292 - elm_progressbar_pulse((Evas_Object*)user_data, *(bool*)event_info);
295 -static void window_create()
297 - /* Create elementary window */
298 - Evas_Object* elm_window = elm_win_util_standard_add("efl-webview-window",
300 - elm_win_autodel_set(elm_window, EINA_TRUE);
301 - elm_object_focus_allow_set(elm_window, EINA_TRUE);
303 - /* Create vertical layout that holds navigation bar and webview area */
304 - Evas_Object* vertical_layout = elm_box_add(elm_window);
305 - elm_box_padding_set(vertical_layout, 0, 4);
306 - evas_object_size_hint_weight_set(vertical_layout, EVAS_HINT_EXPAND,
308 - elm_win_resize_object_add(elm_window, vertical_layout);
309 - evas_object_show(vertical_layout);
311 - /* Create horizontal layout for navigation bar */
312 - Evas_Object* horizontal_layout = elm_box_add(elm_window);
313 - elm_box_horizontal_set(horizontal_layout, EINA_TRUE);
314 - evas_object_size_hint_weight_set(horizontal_layout, EVAS_HINT_EXPAND, 0.0);
315 - evas_object_size_hint_align_set(horizontal_layout, EVAS_HINT_FILL, 0.0);
316 - elm_box_pack_end(vertical_layout, horizontal_layout);
317 - evas_object_show(horizontal_layout);
319 - /* Create back button */
320 - Evas_Object* back_button = elm_button_add(elm_window);
321 - elm_object_text_set(back_button, "BACK");
322 - elm_box_pack_end(horizontal_layout, back_button);
323 - evas_object_show(back_button);
325 - /* Create forward button */
326 - Evas_Object* forward_button = elm_button_add(elm_window);
327 - elm_object_text_set(forward_button, "FORWARD");
328 - elm_box_pack_end(horizontal_layout, forward_button);
329 - evas_object_show(forward_button);
331 - /* Create reload button */
332 - Evas_Object* reload_button = elm_button_add(elm_window);
333 - elm_object_text_set(reload_button, "RELOAD");
334 - elm_box_pack_end(horizontal_layout, reload_button);
335 - evas_object_show(reload_button);
337 - /* Create url entry widget */
338 - Evas_Object* url_entry = elm_entry_add(elm_window);
339 - elm_entry_single_line_set(url_entry, EINA_TRUE);
340 - elm_entry_scrollable_set(url_entry, EINA_TRUE);
341 - elm_entry_cnp_mode_set(url_entry, ELM_CNP_MODE_PLAINTEXT);
342 - elm_entry_scrollbar_policy_set(url_entry, ELM_SCROLLER_POLICY_OFF,
343 - ELM_SCROLLER_POLICY_OFF);
344 - elm_entry_text_style_user_push(url_entry, "DEFAULT='font_size=16'");
345 - evas_object_size_hint_weight_set(url_entry, EVAS_HINT_EXPAND,
347 - evas_object_size_hint_align_set(url_entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
348 - elm_box_pack_end(horizontal_layout, url_entry);
349 - evas_object_show(url_entry);
351 - Evas_Object* progress_bar = elm_progressbar_add(elm_window);
352 - elm_progressbar_span_size_set(progress_bar, 10);
353 - elm_progressbar_pulse_set(progress_bar, EINA_TRUE);
354 - elm_progressbar_unit_format_set(progress_bar, NULL);
355 - evas_object_size_hint_align_set(progress_bar, EVAS_HINT_FILL, 1);
356 - evas_object_size_hint_weight_set(progress_bar, 0.01, EVAS_HINT_EXPAND);
357 - elm_box_pack_end(horizontal_layout, progress_bar);
358 - evas_object_show(progress_bar);
360 - /* Create WebView */
361 - Evas_Object* web_view = xwalk_view_add(evas_object_evas_get(elm_window));
362 - evas_object_size_hint_weight_set(web_view, EVAS_HINT_EXPAND,
364 - evas_object_size_hint_align_set(web_view, EVAS_HINT_FILL, EVAS_HINT_FILL);
365 - elm_box_pack_end(vertical_layout, web_view);
366 - elm_object_focus_set(web_view, EINA_TRUE);
367 - evas_object_show(web_view);
369 - evas_object_smart_callback_add(back_button, "clicked",
370 - on_back_button_clicked, web_view);
371 - evas_object_smart_callback_add(forward_button, "clicked",
372 - on_forward_button_clicked, web_view);
373 - evas_object_smart_callback_add(reload_button, "clicked",
374 - on_reload_button_clicked, web_view);
375 - evas_object_smart_callback_add(url_entry, "activated",
376 - on_url_entry_activated, web_view);
378 - evas_object_smart_callback_add(web_view, "load,progress",
379 - on_progress, elm_window);
380 - evas_object_smart_callback_add(web_view, "title,changed",
381 - on_title_changed, elm_window);
382 - evas_object_smart_callback_add(web_view, "url,changed",
383 - on_url_changed, url_entry);
384 - evas_object_smart_callback_add(web_view, "loadingstate,changed",
385 - on_loadingstate_changed, progress_bar);
387 - evas_object_resize(elm_window, window_width, window_height);
388 - evas_object_show(elm_window);
391 -int main(int argc, char *argv[])
393 - // FIXME: Handle chrome command line and url.
394 - // It is needed only in development stage.
395 - xwalk_init(argc, argv);
397 - elm_init(argc, argv);
399 - elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);