From bd065d4a434755e67642a071e255cba596de8d1e Mon Sep 17 00:00:00 2001 From: Vincent Sanders Date: Wed, 15 Jan 2014 19:37:05 +0000 Subject: split browser gui operations up --- windows/download.c | 4 ++-- windows/download.h | 4 ++-- windows/gui.c | 19 ++++++++++++------- windows/gui.h | 4 +++- windows/main.c | 13 ++++++++----- 5 files changed, 27 insertions(+), 17 deletions(-) (limited to 'windows') diff --git a/windows/download.c b/windows/download.c index 5bf9798aa..189baa819 100644 --- a/windows/download.c +++ b/windows/download.c @@ -296,12 +296,12 @@ static void gui_download_window_done(struct gui_download_window *w) nsws_download_clear_data(w); } -static struct gui_download_table gui_download_table = { +static struct gui_download_table download_table = { .create = gui_download_window_create, .data = gui_download_window_data, .error = gui_download_window_error, .done = gui_download_window_done, }; -struct gui_download_table *win32_gui_download_table = &gui_download_table; +struct gui_download_table *win32_download_table = &download_table; diff --git a/windows/download.h b/windows/download.h index c1b13bf65..a53fab89f 100644 --- a/windows/download.h +++ b/windows/download.h @@ -23,6 +23,8 @@ #include #include "desktop/gui.h" +struct gui_download_table *win32_download_table; + typedef enum { DOWNLOAD_NONE, DOWNLOAD_WORKING, @@ -60,6 +62,4 @@ struct gui_download_window { void nsws_download_window_init(struct gui_window *); -struct gui_download_table *win32_gui_download_table; - #endif diff --git a/windows/gui.c b/windows/gui.c index fc0af679e..fa748254c 100644 --- a/windows/gui.c +++ b/windows/gui.c @@ -1809,7 +1809,7 @@ nsws_create_main_class(HINSTANCE hinstance) { return ret; } -static struct gui_window_table win32_window_table = { +static struct gui_window_table window_table = { .create = gui_window_create, .destroy = gui_window_destroy, .redraw = gui_window_redraw_window, @@ -1829,12 +1829,17 @@ static struct gui_window_table win32_window_table = { .stop_throbber = gui_window_stop_throbber, }; -static struct gui_table gui_table = { - .poll = gui_poll, - .get_clipboard = gui_get_clipboard, - .set_clipboard = gui_set_clipboard, +struct gui_window_table *win32_window_table = &window_table; + +static struct gui_clipboard_table clipboard_table = { + .get = gui_get_clipboard, + .set = gui_set_clipboard, +}; - .window = &win32_window_table, +struct gui_clipboard_table *win32_clipboard_table = &clipboard_table; + +static struct gui_table browser_table = { + .poll = gui_poll, }; -struct gui_table *win32_gui_table = &gui_table; +struct gui_browser_table *win32_browser_table = &browser_table; diff --git a/windows/gui.h b/windows/gui.h index 29c7f8485..3372dcc21 100644 --- a/windows/gui.h +++ b/windows/gui.h @@ -24,7 +24,9 @@ #include "desktop/gui.h" #include "windows/localhistory.h" -extern struct gui_table *win32_gui_table; +extern struct gui_window_table *win32_window_table; +extern struct gui_clipboard_table *win32_clipboard_table; +extern struct gui_browser_table *win32_browser_table; extern HINSTANCE hInstance; diff --git a/windows/main.c b/windows/main.c index 997d98120..638db6c5c 100644 --- a/windows/main.c +++ b/windows/main.c @@ -104,6 +104,13 @@ WinMain(HINSTANCE hInstance, HINSTANCE hLastInstance, LPSTR lpcli, int ncmd) const char *addr; nsurl *url; nserror error; + struct gui_table win32_gui_table = { + .browser = win32_browser_table, + .window = win32_window_table, + .clipboard = win32_clipboard_table, + .download = win32_download_table, + }; + win32_gui_table->browser->get_resource_url = get_resource_url; if (SLEN(lpcli) > 0) { argvw = CommandLineToArgvW(GetCommandLineW(), &argc); @@ -150,11 +157,7 @@ WinMain(HINSTANCE hInstance, HINSTANCE hLastInstance, LPSTR lpcli, int ncmd) /* common initialisation */ messages = filepath_find(respaths, "messages"); - - win32_gui_table->download = nsgtk_gui_download_table; - win32_gui_table->get_resource_url = get_resource_url; - - ret = netsurf_init(messages, win32_gui_table); + ret = netsurf_init(messages, &win32_gui_table); free(messages); if (ret != NSERROR_OK) { free(options_file_location); -- cgit v1.2.3