ryuan pushed a commit to branch master. http://git.enlightenment.org/core/elementary.git/commit/?id=3ba4e4f7a3ca2acb850cb22c7adf29f4abc7ac52
commit 3ba4e4f7a3ca2acb850cb22c7adf29f4abc7ac52 Author: Ryuan Choi <[email protected]> Date: Sun Jan 26 12:20:03 2014 +0900 test_web_ui: Added a button to test select tag and window.open() elm_web provide UI compoents by extending ewebkit. This patch adds a button to test select tag and window.open() --- src/bin/test_web.c | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 57 insertions(+), 1 deletion(-) diff --git a/src/bin/test_web.c b/src/bin/test_web.c index ee20420..cb6ecf1 100644 --- a/src/bin/test_web.c +++ b/src/bin/test_web.c @@ -345,6 +345,48 @@ _useragent_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info) } static void +_select_tag_test_cb(void *data, Evas_Object *obj, void *event_info) +{ + Web_Test *wt = data; + const char *selected = elm_object_item_text_get(event_info); + const char select_html[] = "<!doctype html><body>" + "<select>" + "<option>eina</option>" + "<option>ecore</option>" + "<option>evas</option>" + "<option>edje</option>" + "<option>eet</option>" + "<option>emotion</option>" + "<option>elementary</option>" + "</select>" + "</body>"; + + printf("selected test : %s\n", selected); + elm_object_text_set(obj, selected); + + elm_web_html_string_load(wt->web, select_html, NULL, NULL); +} + +static void +_new_window_test_cb(void *data, Evas_Object *obj, void *event_info) +{ + Web_Test *wt = data; + const char *selected = elm_object_item_text_get(event_info); + const char new_window_html[] = "<!doctype html><body>" + "<script>" + "var open = function() {" + " window.open('http://www.enlightenment.org','','width=400,height=300');" + "};" + "</script>" + "<input type='button' onclick='open();' value='click to open new window'>" + "</body>"; + + printf("selected test : %s\n", selected); + elm_object_text_set(obj, selected); + + elm_web_html_string_load(wt->web, new_window_html, NULL, NULL); +} +static void _main_web_del_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { Web_Test *wt = data; @@ -513,7 +555,7 @@ test_web(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info void test_web_ui(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) { - Evas_Object *win, *bx, *web; + Evas_Object *win, *bx, *web, *hoversel; Web_Test *wt; elm_need_web(); @@ -528,15 +570,29 @@ test_web_ui(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_in elm_win_resize_object_add(win, bx); evas_object_show(bx); + hoversel = elm_hoversel_add(bx); + elm_hoversel_hover_parent_set(hoversel, win); + elm_object_text_set(hoversel, "Test cases"); + + elm_hoversel_item_add(hoversel, "<select> tag", NULL, ELM_ICON_NONE, + _select_tag_test_cb, wt); + elm_hoversel_item_add(hoversel, "new window", NULL, ELM_ICON_NONE, + _new_window_test_cb, wt); + elm_box_pack_end(bx, hoversel); + evas_object_show(hoversel); + web = elm_web_add(win); evas_object_size_hint_weight_set(web, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND); evas_object_size_hint_align_set(web, EVAS_HINT_FILL, EVAS_HINT_FILL); elm_box_pack_end(bx, web); evas_object_show(web); + elm_web_window_create_hook_set(web, _new_window_hook, wt); + evas_object_event_callback_add(web, EVAS_CALLBACK_DEL, _main_web_del_cb, wt); wt->web = web; + elm_web_html_string_load(wt->web, "<!doctype html><body>Hello, WebKit/Efl</body>", NULL, NULL); --
