commit 8bc57f0f0a9362e2453ffc009e3b26e39e020d59
parent eeb7f5cfd504718f6ee730a09a371bd9be149798
Author: Kyle Milz <kmilz@ucalgary.ca>
Date: Mon, 1 Oct 2012 16:26:46 -0600
consolidate callback usage.
Diffstat:
3 files changed, 72 insertions(+), 83 deletions(-)
diff --git a/src/callbacks.c b/src/callbacks.c
@@ -10,6 +10,35 @@
#include "commands.h"
#include "callbacks.h"
+
+void inputbox_activate_cb (void *, Evas_Object *, void *);
+void inputbox_changed_cb (void *, Evas_Object *, void *);
+void inputbox_keypress_cb (void *, Evas *, Evas_Object *, void *);
+void inputbox_keyrelease_cb (void *, Evas *, Evas_Object *, void *);
+
+void webview_console_cb(void *, Evas_Object *, const char *, unsigned int, const char *);
+void webview_hoverlink_cb (void *, Evas_Object *, void*);
+void webview_hoverlink_out_cb (void *, Evas_Object *, void*);
+void webview_uri_changed_cb (void *, Evas_Object *, void*);
+void webview_load_finished_cb (void *, Evas_Object *, void*);
+void webview_progress_changed_cb(void *, Evas_Object *, void *);
+void webview_title_changed_cb (void *, Evas_Object *, void *);
+void webview_download_cb (void *, Evas_Object *, void *);
+void inputmethod_changed_cb (void *, Evas_Object *, void *);
+void webview_inspector_cb (void *, Evas_Object *, void *);
+void webview_inspector_close_cb (void *, Evas_Object *, void *);
+void load_error_cb (void *, Evas_Object *, void *);
+void webview_keypress_cb (void *, Evas *, Evas_Object *, void *);
+void webview_focus_in_cb (void *, Evas *, Evas_Object *, void *);
+void webview_focus_out_cb (void *, Evas *, Evas_Object *, void *);
+void webview_mousewheel_cb (void *, Evas *, Evas_Object *, void *);
+void _web_free_cb (void *, Evas *, Evas_Object *, void *);
+void _win_del_request_cb (void *, Evas_Object *, void *);
+void webview_create_window_cb(void*, Evas_Object*, Eina_Bool, const Elm_Web_Window_Features*);
+void populate_visited_links_cb(void *data, Evas_Object *obj, void *event_info);
+
+
+
static Eina_Bool commandhistoryfetch (const Arg *, void *);
static Eina_Bool process_keypress (void *, void*);
@@ -52,12 +81,6 @@ webview_progress_changed_cb(void *data, Evas_Object *obj, void *event_info)
}
void
-protocol_register_cb(void *data, Evas_Object *obj, void *event_info)
-{
- printf("protocol_register()\n");
-}
-
-void
load_error_cb(void *data, Evas_Object *obj, void *event_info)
{
/*
@@ -536,18 +559,6 @@ webview_keypress_cb(void *data, Evas *e, Evas_Object *obj, void *event_info)
}
void
-xss_detected_cb(void *data, Evas_Object *obj, void *event_info)
-{
- printf("xss_detected()\n");
-}
-
-void
-icon_received_cb(void *data, Evas_Object *obj, void *event_info)
-{
- printf("icon_received_cb()\n");
-}
-
-void
webview_hoverlink_cb(void *data, Evas_Object *obj, void *event_info)
{
Buffer_Data *td = data;
@@ -1076,3 +1087,41 @@ webview_create_window_cb(void *data, Evas_Object *obj, Eina_Bool js, const Elm_W
buffer_add(&a, wd);
}
+void
+setup_buffer_callbacks(Buffer_Data *td)
+{
+ evas_object_smart_callback_add(td->view, "title,changed", webview_title_changed_cb, td);
+ evas_object_smart_callback_add(td->view, "uri,changed", webview_uri_changed_cb, td);
+ evas_object_smart_callback_add(td->view, "load,progress", webview_progress_changed_cb, td);
+ // evas_object_smart_callback_add(td->web, "load,started", webview_load_committed_cb, td);
+ // evas_object_smart_callback_add(td->view, "load,document,finished", webview_document_finished_cb, td);
+ evas_object_smart_callback_add(td->view, "load,finished", webview_load_finished_cb, td);
+ evas_object_smart_callback_add(td->view, "download,request", webview_download_cb, td);
+ // evas_object_smart_callback_add(td->view, "link,hover,in", webview_hoverlink_cb, td);
+ // evas_object_smart_callback_add(td->view, "link,hover,out", webview_hoverlink_out_cb, td);
+ evas_object_smart_callback_add(td->view, "inputmethod,changed", inputmethod_changed_cb, td);
+
+ /* these signals are not offered by elm_web */
+ // evas_object_smart_callback_add(td->view, "load,error", load_error_cb, td);
+ // evas_object_smart_callback_add(td->view, "inspector,view,create", webview_inspector_cb, td);
+ // evas_object_smart_callback_add(td->view, "inspector,view,close", webview_inspector_close_cb, td);
+ // evas_object_smart_callback_add(td->view, "populate,visited,links", populate_visited_links_cb, td);
+
+ evas_object_event_callback_add(td->view, EVAS_CALLBACK_FREE, _web_free_cb, td);
+ evas_object_event_callback_add(td->view, EVAS_CALLBACK_KEY_DOWN, webview_keypress_cb, td);
+ evas_object_event_callback_add(td->view, EVAS_CALLBACK_KEY_DOWN, webview_keypress_cb, td);
+ evas_object_event_callback_add(td->view, EVAS_CALLBACK_FOCUS_IN, webview_focus_in_cb, td);
+ evas_object_event_callback_add(td->view, EVAS_CALLBACK_FOCUS_OUT, webview_focus_out_cb, td);
+ // evas_object_event_callback_add(td->web, EVAS_CALLBACK_MOUSE_UP, notify_event_cb, td);
+ evas_object_event_callback_add(td->view, EVAS_CALLBACK_MOUSE_WHEEL, webview_mousewheel_cb, td);
+}
+
+void
+setup_window_callbacks(Window_Data *wd)
+{
+ evas_object_smart_callback_add(wd->url, "activated", inputbox_activate_cb, wd);
+ evas_object_smart_callback_add(wd->url, "changed", inputbox_changed_cb, wd);
+ evas_object_event_callback_add(wd->url, EVAS_CALLBACK_KEY_DOWN, inputbox_keypress_cb, wd);
+ evas_object_event_callback_add(wd->url, EVAS_CALLBACK_KEY_UP, inputbox_keyrelease_cb, wd);
+}
+
diff --git a/src/callbacks.h b/src/callbacks.h
@@ -1,36 +1,6 @@
-
-void inputbox_activate_cb (void *, Evas_Object *, void *);
-void inputbox_changed_cb (void *, Evas_Object *, void *);
-void inputbox_keypress_cb (void *, Evas *, Evas_Object *, void *);
-void inputbox_keyrelease_cb (void *, Evas *, Evas_Object *, void *);
-
-void webview_console_cb(void *, Evas_Object *, const char *, unsigned int, const char *);
-void webview_hoverlink_cb (void *, Evas_Object *, void*);
-void webview_hoverlink_out_cb (void *, Evas_Object *, void*);
-void webview_uri_changed_cb (void *, Evas_Object *, void*);
-void webview_load_finished_cb (void *, Evas_Object *, void*);
-void webview_progress_changed_cb(void *, Evas_Object *, void *);
-void webview_title_changed_cb (void *, Evas_Object *, void *);
-void webview_download_cb (void *, Evas_Object *, void *);
-void inputmethod_changed_cb (void *, Evas_Object *, void *);
-void icon_received_cb (void *, Evas_Object *, void *);
-void xss_detected_cb (void *, Evas_Object *, void *);
-void webview_inspector_cb (void *, Evas_Object *, void *);
-void webview_inspector_close_cb (void *, Evas_Object *, void *);
-void protocol_register_cb (void *, Evas_Object *, void *);
-void load_error_cb (void *, Evas_Object *, void *);
-void webview_keypress_cb (void *, Evas *, Evas_Object *, void *);
-void webview_focus_in_cb (void *, Evas *, Evas_Object *, void *);
-void webview_focus_out_cb (void *, Evas *, Evas_Object *, void *);
-void webview_mousewheel_cb (void *, Evas *, Evas_Object *, void *);
-void _web_free_cb (void *, Evas *, Evas_Object *, void *);
-void _win_del_request_cb (void *, Evas_Object *, void *);
-void webview_create_window_cb(void*, Evas_Object*, Eina_Bool, const Elm_Web_Window_Features*);
-
-void populate_visited_links_cb(void *data, Evas_Object *obj, void *event_info);
-
-// void download_entry_free_cb(void *);
+void setup_buffer_callbacks(Buffer_Data*);
+void setup_window_callbacks(Window_Data*);
/*
static Eina_Bool webview_mimetype_cb(WebKitWebView *webview, WebKitWebFrame *frame, WebKitNetworkRequest *request, char *mime_type, WebKitWebPolicyDecision *decision, gpointer user_data);
diff --git a/src/utilities.c b/src/utilities.c
@@ -1140,34 +1140,7 @@ buffer_add(const Arg *arg, Window_Data *wd)
evas_object_data_set(td->view, "buffer_data", td);
- /* signals */
- evas_object_smart_callback_add(td->view, "title,changed", webview_title_changed_cb, td);
- evas_object_smart_callback_add(td->view, "uri,changed", webview_uri_changed_cb, td);
- evas_object_smart_callback_add(td->view, "load,progress", webview_progress_changed_cb, td);
- // evas_object_smart_callback_add(td->web, "load,started", webview_load_committed_cb, td);
- // evas_object_smart_callback_add(td->view, "load,document,finished", webview_document_finished_cb, td);
- evas_object_smart_callback_add(td->view, "load,finished", webview_load_finished_cb, td);
- evas_object_smart_callback_add(td->view, "download,request", webview_download_cb, td);
- evas_object_smart_callback_add(td->view, "link,hover,in", webview_hoverlink_cb, td);
- evas_object_smart_callback_add(td->view, "link,hover,out", webview_hoverlink_out_cb, td);
- evas_object_smart_callback_add(td->view, "inputmethod,changed", inputmethod_changed_cb, td);
-
- /* these signals are not offered by elm_web */
- // evas_object_smart_callback_add(td->view, "load,error", load_error_cb, td);
- evas_object_smart_callback_add(td->view, "inspector,view,create", webview_inspector_cb, td);
- evas_object_smart_callback_add(td->view, "inspector,view,close", webview_inspector_close_cb, td);
- evas_object_smart_callback_add(td->view, "protocolhandler,isregistered", protocol_register_cb, td);
- evas_object_smart_callback_add(td->view, "icon,received", icon_received_cb, td);
- evas_object_smart_callback_add(td->view, "xss,detected", xss_detected_cb, td);
- evas_object_smart_callback_add(td->view, "populate,visited,links", populate_visited_links_cb, td);
-
- evas_object_event_callback_add(td->view, EVAS_CALLBACK_FREE, _web_free_cb, td);
- evas_object_event_callback_add(td->view, EVAS_CALLBACK_KEY_DOWN, webview_keypress_cb, td);
- evas_object_event_callback_add(td->view, EVAS_CALLBACK_KEY_DOWN, webview_keypress_cb, td);
- evas_object_event_callback_add(td->view, EVAS_CALLBACK_FOCUS_IN, webview_focus_in_cb, td);
- evas_object_event_callback_add(td->view, EVAS_CALLBACK_FOCUS_OUT, webview_focus_out_cb, td);
- // evas_object_event_callback_add(td->web, EVAS_CALLBACK_MOUSE_UP, notify_event_cb, td);
- evas_object_event_callback_add(td->view, EVAS_CALLBACK_MOUSE_WHEEL, webview_mousewheel_cb, td);
+ setup_buffer_callbacks(td);
if (arg->i & CustomUrl)
ewk_view_uri_set(td->view, arg->s);
@@ -1320,11 +1293,6 @@ window_add(const Arg *arg, App_Data *ad)
elm_entry_text_style_user_push(url, "DEFAULT='font=Monospace font_size=12'");
evas_object_show(url);
- evas_object_smart_callback_add(url, "activated", inputbox_activate_cb, wd);
- evas_object_smart_callback_add(url, "changed", inputbox_changed_cb, wd);
- evas_object_event_callback_add(url, EVAS_CALLBACK_KEY_DOWN, inputbox_keypress_cb, wd);
- evas_object_event_callback_add(url, EVAS_CALLBACK_KEY_UP, inputbox_keyrelease_cb, wd);
-
wd->win = win;
wd->main_box = box;
wd->naviframe = naviframe;
@@ -1336,6 +1304,8 @@ window_add(const Arg *arg, App_Data *ad)
wd->progress_bar = progress;
wd->app = ad;
+ setup_window_callbacks(wd);
+
wd->mode = ModeNormal;
wd->echo_active = EINA_TRUE;