diff options
author | John Mark Bell <jmb@netsurf-browser.org> | 2003-08-24 22:39:55 +0000 |
---|---|---|
committer | John Mark Bell <jmb@netsurf-browser.org> | 2003-08-24 22:39:55 +0000 |
commit | 3c11ffdc9ffef96056504228577ab99046b49caf (patch) | |
tree | f5b55115c76080c8850e322fb035d3b48f1fda00 /riscos/gui.c | |
parent | dfbe3c84f1541590cf4bea240d0abfaf76d5afb1 (diff) | |
download | netsurf-3c11ffdc9ffef96056504228577ab99046b49caf.tar.gz netsurf-3c11ffdc9ffef96056504228577ab99046b49caf.tar.bz2 |
[project @ 2003-08-24 22:39:55 by jmb]
Make plugins work. Improve initialisation of AcornURI. Add support for <iframe> (still needs rendering tweaks). Add Ctrl-F2 key sequence to close window.
svn path=/import/netsurf/; revision=246
Diffstat (limited to 'riscos/gui.c')
-rw-r--r-- | riscos/gui.c | 85 |
1 files changed, 82 insertions, 3 deletions
diff --git a/riscos/gui.c b/riscos/gui.c index bf1bfe89c..fba52d1f5 100644 --- a/riscos/gui.c +++ b/riscos/gui.c @@ -17,6 +17,7 @@ #include "oslib/os.h" #include "oslib/osfile.h" #include "oslib/osgbpb.h" +#include "oslib/plugin.h" #include "oslib/wimp.h" #include "oslib/wimpspriteop.h" #include "oslib/uri.h" @@ -26,6 +27,7 @@ #include "netsurf/render/font.h" #include "netsurf/render/html.h" #include "netsurf/riscos/gui.h" +#include "netsurf/riscos/plugin.h" #include "netsurf/riscos/theme.h" #include "netsurf/riscos/uri.h" #include "netsurf/utils/log.h" @@ -221,7 +223,30 @@ ro_theme* current_theme = NULL; const char* BROWSER_VALIDATION = "\0"; const char* task_name = "NetSurf"; -const wimp_MESSAGE_LIST(4) task_messages = { {message_DATA_SAVE, message_DATA_LOAD, message_URI_PROCESS, 0} }; +const wimp_MESSAGE_LIST(22) task_messages = { + {message_DATA_SAVE, + message_DATA_LOAD, + message_URI_PROCESS, + message_PLUG_IN_OPENING, + message_PLUG_IN_CLOSED, + message_PLUG_IN_RESHAPE_REQUEST, + message_PLUG_IN_FOCUS, + message_PLUG_IN_URL_ACCESS, + message_PLUG_IN_STATUS, + message_PLUG_IN_BUSY, + message_PLUG_IN_STREAM_NEW, + message_PLUG_IN_STREAM_WRITE, + message_PLUG_IN_STREAM_WRITTEN, + message_PLUG_IN_STREAM_DESTROY, + message_PLUG_IN_OPEN, + message_PLUG_IN_CLOSE, + message_PLUG_IN_RESHAPE, + message_PLUG_IN_STREAM_AS_FILE, + message_PLUG_IN_NOTIFY, + message_PLUG_IN_ABORT, + message_PLUG_IN_ACTION, + /* message_PLUG_IN_INFORMED, (not provided by oslib) */ + 0} }; wimp_t task_handle; wimp_i ro_gui_iconbar_i; @@ -904,7 +929,7 @@ void gui_window_message(gui_window* g, gui_message* msg) switch (msg->type) { case msg_SET_URL: -fprintf(stderr, "Set URL '%s'\n", msg->data.set_url.url); + fprintf(stderr, "Set URL '%s'\n", msg->data.set_url.url); strncpy(g->url, msg->data.set_url.url, 255); wimp_set_icon_state(g->data.browser.toolbar, ro_theme_icon(current_theme, THEME_TOOLBAR, "TOOLBAR_URL"), 0, 0); if (g->data.browser.bw->history != NULL) @@ -1031,6 +1056,11 @@ void gui_init(int argc, char** argv) task_handle = wimp_initialise(wimp_VERSION_RO38, task_name, (wimp_message_list*) &task_messages, &version); + /* Issue a *Desktop to poke AcornURI into life */ + if(strcasecmp(getenv("NetSurf$Start_URI_Handler"), "yes") == 0) + xwimp_start_task("Desktop", NULL); + xos_cli("UnSet NetSurf$Start_Uri_Handler"); + iconbar.w = wimp_ICON_BAR_RIGHT; iconbar.icon.extent.x0 = 0; iconbar.icon.extent.y0 = 0; @@ -1879,10 +1909,33 @@ void gui_multitask(void) case message_URI_PROCESS : ro_uri_message_received(&(block.message)); break; + + case message_PLUG_IN_OPENING: + case message_PLUG_IN_CLOSED: + case message_PLUG_IN_RESHAPE_REQUEST: + case message_PLUG_IN_FOCUS: + case message_PLUG_IN_URL_ACCESS: + case message_PLUG_IN_STATUS: + case message_PLUG_IN_BUSY: + case message_PLUG_IN_STREAM_NEW: + case message_PLUG_IN_STREAM_WRITE: + case message_PLUG_IN_STREAM_WRITTEN: + case message_PLUG_IN_STREAM_DESTROY: + case message_PLUG_IN_OPEN: + case message_PLUG_IN_CLOSE: + case message_PLUG_IN_RESHAPE: + case message_PLUG_IN_STREAM_AS_FILE: + case message_PLUG_IN_NOTIFY: + case message_PLUG_IN_ABORT: + case message_PLUG_IN_ACTION: + plugin_msg_parse(&(block.message), + (event == wimp_USER_MESSAGE_ACKNOWLEDGE ? 1 : 0)); + break; } - if (block.message.action == message_QUIT) + if (block.message.action == message_QUIT){ netsurf_quit = 1; + } else ro_gui_poll_queue(event, &block); break; @@ -1955,6 +2008,10 @@ void ro_gui_keypress(wimp_key* key) { cache_dump(); } + else if (key->c == (wimp_KEY_CONTROL + wimp_KEY_F2)) + { + browser_window_destroy(g->data.browser.bw); + } } wimp_process_key(key->c); return; @@ -2116,6 +2173,28 @@ void gui_poll(void) ro_uri_message_received(&(block.message)); break; + case message_PLUG_IN_OPENING: + case message_PLUG_IN_CLOSED: + case message_PLUG_IN_RESHAPE_REQUEST: + case message_PLUG_IN_FOCUS: + case message_PLUG_IN_URL_ACCESS: + case message_PLUG_IN_STATUS: + case message_PLUG_IN_BUSY: + case message_PLUG_IN_STREAM_NEW: + case message_PLUG_IN_STREAM_WRITE: + case message_PLUG_IN_STREAM_WRITTEN: + case message_PLUG_IN_STREAM_DESTROY: + case message_PLUG_IN_OPEN: + case message_PLUG_IN_CLOSE: + case message_PLUG_IN_RESHAPE: + case message_PLUG_IN_STREAM_AS_FILE: + case message_PLUG_IN_NOTIFY: + case message_PLUG_IN_ABORT: + case message_PLUG_IN_ACTION: + plugin_msg_parse(&(block.message), + (event == wimp_USER_MESSAGE_ACKNOWLEDGE ? 1 : 0)); + break; + case message_QUIT : netsurf_quit = 1; break; |