summaryrefslogtreecommitdiff
path: root/riscos/gui.c
diff options
context:
space:
mode:
authorSteve Fryatt <steve@stevefryatt.org.uk>2011-02-20 23:16:33 +0000
committerSteve Fryatt <steve@stevefryatt.org.uk>2011-02-20 23:16:33 +0000
commitcd9c0998e9849472473e577c4c04906e380896e1 (patch)
tree9bef19ebd3d56eccd03fa5613f1506c82762584b /riscos/gui.c
parentf54fc080c2a96ffdb713a9c8b5d0ccb604197c07 (diff)
downloadnetsurf-cd9c0998e9849472473e577c4c04906e380896e1.tar.gz
netsurf-cd9c0998e9849472473e577c4c04906e380896e1.tar.bz2
Merge branches/stevef/toolbars to trunk.
svn path=/trunk/netsurf/; revision=11741
Diffstat (limited to 'riscos/gui.c')
-rw-r--r--riscos/gui.c83
1 files changed, 13 insertions, 70 deletions
diff --git a/riscos/gui.c b/riscos/gui.c
index 4d8b5a17c..8ebbc4fe6 100644
--- a/riscos/gui.c
+++ b/riscos/gui.c
@@ -74,6 +74,7 @@
#include "riscos/gui.h"
#include "riscos/help.h"
#include "riscos/hotlist.h"
+#include "riscos/iconbar.h"
#include "riscos/menus.h"
#include "riscos/message.h"
#include "riscos/options.h"
@@ -86,6 +87,7 @@
#include "riscos/sslcert.h"
#include "riscos/textselection.h"
#include "riscos/theme.h"
+#include "riscos/toolbar.h"
#include "riscos/treeview.h"
#include "riscos/uri.h"
#include "riscos/url_protocol.h"
@@ -93,6 +95,7 @@
#include "riscos/wimp.h"
#include "riscos/wimp_event.h"
#include "riscos/wimputils.h"
+#include "riscos/window.h"
#include "utils/filename.h"
#include "utils/log.h"
#include "utils/messages.h"
@@ -249,7 +252,6 @@ static struct
static void ro_gui_create_dirs(void);
static void ro_gui_create_dir(char *path);
static void ro_gui_choose_language(void);
-static void ro_gui_icon_bar_create(void);
static void ro_gui_signal(int sig);
static void ro_gui_cleanup(void);
static void ro_gui_handle_event(wimp_event_no event, wimp_block *block);
@@ -257,7 +259,6 @@ static void ro_gui_null_reason_code(void);
static void ro_gui_close_window_request(wimp_close *close);
static void ro_gui_pointer_leaving_window(wimp_leaving *leaving);
static void ro_gui_pointer_entering_window(wimp_entering *entering);
-static bool ro_gui_icon_bar_click(wimp_pointer *pointer);
static void ro_gui_check_resolvers(void);
static void ro_gui_drag_end(wimp_dragged *drag);
static void ro_gui_keypress(wimp_key *key);
@@ -349,7 +350,7 @@ static void gui_init(int argc, char** argv)
option_theme_path = strdup("NetSurf:Themes");
if (!option_theme_save)
option_theme_save = strdup(CHOICES_PREFIX "Themes");
-
+
tree_set_icon_dir(strdup("NetSurf:Resources.Icons"));
if (!option_theme || ! option_toolbar_browser ||
@@ -479,12 +480,16 @@ static void gui_init(int argc, char** argv)
ro_gui_query_init();
/* Initialise the history subsystem */
ro_gui_history_init();
+ /* Initialise toolbars */
+ ro_toolbar_init();
+ /* Initialise browser windows */
+ ro_gui_window_initialise();
/* Done with the templates file */
wimp_close_template();
- /* Create Iconbar icon */
- ro_gui_icon_bar_create();
+ /* Create Iconbar icon and menus */
+ ro_gui_iconbar_initialise();
/* Finally, check Inet$Resolvers for sanity */
ro_gui_check_resolvers();
@@ -621,31 +626,6 @@ const char *ro_gui_default_language(void)
/**
- * Create an iconbar icon.
- */
-
-void ro_gui_icon_bar_create(void)
-{
- os_error *error;
-
- wimp_icon_create icon = {
- wimp_ICON_BAR_RIGHT,
- { { 0, 0, 68, 68 },
- wimp_ICON_SPRITE | wimp_ICON_HCENTRED | wimp_ICON_VCENTRED |
- (wimp_BUTTON_CLICK << wimp_ICON_BUTTON_TYPE_SHIFT),
- { "!netsurf" } } };
- error = xwimp_create_icon(&icon, 0);
- if (error) {
- LOG(("xwimp_create_icon: 0x%x: %s",
- error->errnum, error->errmess));
- die(error->errmess);
- }
- ro_gui_wimp_event_register_mouse_click(wimp_ICON_BAR,
- ro_gui_icon_bar_click);
-}
-
-
-/**
* Warn the user if Inet$Resolvers is not set.
*/
@@ -1234,43 +1214,6 @@ void ro_gui_pointer_entering_window(wimp_entering *entering)
/**
- * Handle Mouse_Click events on the iconbar icon.
- */
-
-bool ro_gui_icon_bar_click(wimp_pointer *pointer)
-{
- char url[80];
- int key_down = 0;
-
- if (pointer->buttons == wimp_CLICK_MENU) {
- ro_gui_menu_create(iconbar_menu, pointer->pos.x,
- 96 + iconbar_menu_height, wimp_ICON_BAR,
- true);
-
- } else if (pointer->buttons == wimp_CLICK_SELECT) {
- if (option_homepage_url && option_homepage_url[0]) {
- browser_window_create(option_homepage_url, NULL, 0,
- true, false);
- } else {
- snprintf(url, sizeof url,
- "file:///<NetSurf$Dir>/Docs/welcome/index_%s",
- option_language);
- browser_window_create(url, NULL, 0, true, false);
- }
-
- } else if (pointer->buttons == wimp_CLICK_ADJUST) {
- xosbyte1(osbyte_SCAN_KEYBOARD, 0 ^ 0x80, 0, &key_down);
- if (key_down == 0)
- ro_gui_menu_handle_action(pointer->w, HOTLIST_SHOW,
- false);
- else
- ro_gui_debugwin_open();
- }
- return true;
-}
-
-
-/**
* Handle User_Drag_Box events.
*/
@@ -1302,8 +1245,8 @@ void ro_gui_drag_end(wimp_dragged *drag)
ro_treeview_drag_end(drag);
break;
- case GUI_DRAG_TOOLBAR_CONFIG:
- ro_gui_theme_toolbar_editor_drag_end(drag);
+ case GUI_DRAG_BUTTONBAR:
+ ro_gui_button_bar_drag_end(drag);
break;
case GUI_DRAG_FRAME:
@@ -1376,7 +1319,7 @@ void ro_gui_user_message(wimp_event_no event, wimp_message *message)
break;
case message_MENUS_DELETED:
- ro_gui_menu_closed(true);
+ ro_gui_menu_closed();
break;
case message_CLAIM_ENTITY: