diff options
Diffstat (limited to 'lib/src/sugar-browser-chandler.c')
-rw-r--r-- | lib/src/sugar-browser-chandler.c | 85 |
1 files changed, 75 insertions, 10 deletions
diff --git a/lib/src/sugar-browser-chandler.c b/lib/src/sugar-browser-chandler.c index a65519a..da6e9d0 100644 --- a/lib/src/sugar-browser-chandler.c +++ b/lib/src/sugar-browser-chandler.c @@ -2,7 +2,10 @@ #include "sugar-browser-chandler.h" enum { - HANDLE_CONTENT, + DOWNLOAD_STARTED, + DOWNLOAD_COMPLETED, + DOWNLOAD_CANCELLED, + DOWNLOAD_PROGRESS, LAST_SIGNAL }; static guint signals[LAST_SIGNAL] = { 0 }; @@ -19,8 +22,8 @@ sugar_browser_chandler_init(SugarBrowserChandler *browserChandler) static void sugar_browser_chandler_class_init(SugarBrowserChandlerClass *browser_chandler_class) { - signals[HANDLE_CONTENT] = - g_signal_new ("handle-content", + signals[DOWNLOAD_STARTED] = + g_signal_new ("download-started", G_OBJECT_CLASS_TYPE (browser_chandler_class), G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (SugarBrowserChandlerClass, handle_content), @@ -30,6 +33,37 @@ sugar_browser_chandler_class_init(SugarBrowserChandlerClass *browser_chandler_cl G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING); + + signals[DOWNLOAD_COMPLETED] = + g_signal_new ("download-completed", + G_OBJECT_CLASS_TYPE (browser_chandler_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (SugarBrowserChandlerClass, handle_content), + NULL, NULL, + sugar_marshal_VOID__STRING, + G_TYPE_NONE, 1, + G_TYPE_STRING); + + signals[DOWNLOAD_CANCELLED] = + g_signal_new ("download-cancelled", + G_OBJECT_CLASS_TYPE (browser_chandler_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (SugarBrowserChandlerClass, handle_content), + NULL, NULL, + sugar_marshal_VOID__STRING, + G_TYPE_NONE, 1, + G_TYPE_STRING); + + signals[DOWNLOAD_PROGRESS] = + g_signal_new ("download-progress", + G_OBJECT_CLASS_TYPE (browser_chandler_class), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (SugarBrowserChandlerClass, handle_content), + NULL, NULL, + sugar_marshal_VOID__STRING_INT, + G_TYPE_NONE, 2, + G_TYPE_STRING, + G_TYPE_INT); } SugarBrowserChandler * @@ -42,15 +76,46 @@ sugar_get_browser_chandler() } void -sugar_browser_chandler_handle_content (SugarBrowserChandler *browser_chandler, - const char *url, - const char *mime_type, - const char *tmp_file_name) -{ +sugar_browser_chandler_download_started (SugarBrowserChandler *browser_chandler, + const char *url, + const char *mime_type, + const char *tmp_file_name) +{ g_signal_emit(browser_chandler, - signals[HANDLE_CONTENT], + signals[DOWNLOAD_STARTED], 0 /* details */, url, mime_type, - tmp_file_name); + tmp_file_name); +} + +void +sugar_browser_chandler_download_completed (SugarBrowserChandler *browser_chandler, + const char *tmp_file_name) +{ + g_signal_emit(browser_chandler, + signals[DOWNLOAD_COMPLETED], + 0 /* details */, + tmp_file_name); +} + +void sugar_browser_chandler_download_cancelled (SugarBrowserChandler *browser_chandler, + const char *tmp_file_name) +{ + g_signal_emit(browser_chandler, + signals[DOWNLOAD_CANCELLED], + 0 /* details */, + tmp_file_name); +} + +void +sugar_browser_chandler_update_progress (SugarBrowserChandler *browser_chandler, + const char *tmp_file_name, + const int percent) +{ + g_signal_emit(browser_chandler, + signals[DOWNLOAD_PROGRESS], + 0 /* details */, + tmp_file_name, + percent); } |