From 4479072d167d364f69e8963a5a2034761d6a8efc Mon Sep 17 00:00:00 2001 From: Richard Wilson Date: Mon, 28 Jun 2004 19:35:04 +0000 Subject: [project @ 2004-06-28 19:35:04 by rjw] Optional window size inheritance to appease tlsa. Updates to code comments. Ctrl-N shortcut to open a new window. svn path=/import/netsurf/; revision=1023 --- riscos/menus.c | 22 +++++++++++++++++----- riscos/options.h | 6 +++--- riscos/wimp.c | 5 ++--- riscos/window.c | 32 +++++++++++++++++--------------- 4 files changed, 39 insertions(+), 26 deletions(-) (limited to 'riscos') diff --git a/riscos/menus.c b/riscos/menus.c index de69f4211..295d03d4c 100644 --- a/riscos/menus.c +++ b/riscos/menus.c @@ -190,11 +190,12 @@ static wimp_MENU(4) toolbar_menu = { /* Window submenu */ -static wimp_MENU(3) window_menu = { +static wimp_MENU(4) window_menu = { { "Window" }, 7,2,7,0, 300, 44, 0, { { 0, wimp_NO_SUB_MENU, DEFAULT_FLAGS, { "WindowSave" } }, - { wimp_MENU_SEPARATE, wimp_NO_SUB_MENU, DEFAULT_FLAGS, { "WindowStagr" } }, + { 0, wimp_NO_SUB_MENU, DEFAULT_FLAGS, { "WindowStagr" } }, + { wimp_MENU_SEPARATE, wimp_NO_SUB_MENU, DEFAULT_FLAGS, { "WindowSize" } }, { wimp_MENU_LAST, wimp_NO_SUB_MENU, DEFAULT_FLAGS, { "WindowReset" } } } }; @@ -454,7 +455,7 @@ void ro_gui_menu_selection(wimp_selection *selection) case 5: /* Print */ break; case 6: /* New window */ - browser_window_create(current_gui->url ,current_gui->data.browser.bw); + browser_window_create(current_gui->url, current_gui->data.browser.bw); break; case 7: /* Page source */ ro_gui_view_source(c); @@ -582,6 +583,9 @@ void ro_gui_menu_selection(wimp_selection *selection) option_window_stagger = !option_window_stagger; break; case 2: + option_window_size_clone = !option_window_size_clone; + break; + case 3: option_window_screen_width = 0; option_window_screen_height = 0; break; @@ -977,7 +981,7 @@ static void ro_gui_menu_prepare_window(void) { */ if ((option_window_screen_width != 0) && (option_window_screen_height != 0)) { browser_window_menu->entries[1].icon_flags &= ~wimp_ICON_SHADED; - browser_window_menu->entries[2].icon_flags &= ~wimp_ICON_SHADED; + browser_window_menu->entries[3].icon_flags &= ~wimp_ICON_SHADED; /* Check if we are staggered */ @@ -989,7 +993,15 @@ static void ro_gui_menu_prepare_window(void) { } else { browser_window_menu->entries[1].menu_flags |= wimp_MENU_TICKED; browser_window_menu->entries[1].icon_flags |= wimp_ICON_SHADED; - browser_window_menu->entries[2].icon_flags |= wimp_ICON_SHADED; + browser_window_menu->entries[3].icon_flags |= wimp_ICON_SHADED; + } + + /* Set if we are cloing the window size + */ + if (option_window_size_clone) { + browser_window_menu->entries[2].menu_flags |= wimp_MENU_TICKED; + } else { + browser_window_menu->entries[2].menu_flags &= ~wimp_MENU_TICKED; } } diff --git a/riscos/options.h b/riscos/options.h index fc9401563..5c9392038 100644 --- a/riscos/options.h +++ b/riscos/options.h @@ -18,7 +18,6 @@ extern bool option_use_mouse_gestures; extern bool option_allow_text_selection; -extern bool option_show_toolbar; extern char *option_theme; extern char *option_language; extern bool option_dither_sprites; @@ -40,6 +39,7 @@ extern int option_window_height; extern int option_window_screen_width; extern int option_window_screen_height; extern bool option_window_stagger; +extern bool option_window_size_clone; extern int option_minimum_gif_delay; extern bool option_background_images; extern bool option_background_blending; @@ -47,7 +47,6 @@ extern bool option_background_blending; #define EXTRA_OPTION_DEFINE \ bool option_use_mouse_gestures = false;\ bool option_allow_text_selection = true;\ -bool option_show_toolbar = true;\ char *option_theme = 0;\ char *option_language = 0;\ bool option_dither_sprites = true;\ @@ -69,6 +68,7 @@ int option_window_height = 0; \ int option_window_screen_width = 0; \ int option_window_screen_height = 0; \ bool option_window_stagger = true; \ +bool option_window_size_clone = true; \ int option_minimum_gif_delay = 10; \ bool option_background_images = true; \ bool option_background_blending = false; @@ -76,7 +76,6 @@ bool option_background_blending = false; #define EXTRA_OPTION_TABLE \ { "use_mouse_gestures", OPTION_BOOL, &option_use_mouse_gestures },\ { "allow_text_selection", OPTION_BOOL, &option_allow_text_selection },\ -{ "show_toolbar", OPTION_BOOL, &option_show_toolbar },\ { "theme", OPTION_STRING, &option_theme },\ { "language", OPTION_STRING, &option_language },\ { "dither_sprites", OPTION_BOOL, &option_dither_sprites },\ @@ -98,6 +97,7 @@ bool option_background_blending = false; { "window_screen_width", OPTION_INTEGER, &option_window_screen_width }, \ { "window_screen_height", OPTION_INTEGER, &option_window_screen_height }, \ { "window_stagger", OPTION_BOOL, &option_window_stagger }, \ +{ "window_size_clone", OPTION_BOOL, &option_window_size_clone }, \ { "minimum_gif_delay", OPTION_INTEGER, &option_minimum_gif_delay }, \ { "background_images", OPTION_BOOL, &option_background_images }, \ { "background_blending", OPTION_BOOL, &option_background_blending } diff --git a/riscos/wimp.c b/riscos/wimp.c index 8880232c9..ce07237d6 100644 --- a/riscos/wimp.c +++ b/riscos/wimp.c @@ -29,7 +29,7 @@ static wimpextend_furniture_sizes furniture_sizes; /** - * Gets the default horzontal scrollbar height + * Gets the horzontal scrollbar height */ int ro_get_hscroll_height(wimp_w w) { wimp_version_no version; @@ -57,10 +57,9 @@ int ro_get_hscroll_height(wimp_w w) { /** - * Gets the default horzontal scrollbar height + * Gets the vertical scrollbar width */ int ro_get_vscroll_width(wimp_w w) { - wimp_version_no version; /* Read the hscroll height */ diff --git a/riscos/window.c b/riscos/window.c index bd67b8acf..84ff81506 100644 --- a/riscos/window.c +++ b/riscos/window.c @@ -73,7 +73,7 @@ gui_window *gui_create_browser_window(struct browser_window *bw, /* Set the window position */ - if (clone && clone->window) { + if (clone && clone->window && option_window_size_clone) { state.w = clone->window->window; error = xwimp_get_window_state(&state); if (error) { @@ -152,7 +152,7 @@ gui_window *gui_create_browser_window(struct browser_window *bw, wimp_ICON_BUTTON_TYPE_SHIFT; window.sprite_area = wimpspriteop_AREA; window.xmin = 100; - window.ymin = window.extent.y1 + 100; + window.ymin = 100; window.title_data.indirected_text.text = g->title; window.title_data.indirected_text.validation = (char *) -1; window.title_data.indirected_text.size = 255; @@ -166,7 +166,7 @@ gui_window *gui_create_browser_window(struct browser_window *bw, free(g); return 0; } - + ro_theme_create_toolbar(g); g->next = window_list; @@ -698,21 +698,20 @@ void ro_gui_window_mouse_at(wimp_pointer* pointer) * Process Mouse_Click events in a toolbar. */ -void ro_gui_toolbar_click(gui_window* g, wimp_pointer* pointer) -{ - bool back; +void ro_gui_toolbar_click(gui_window* g, wimp_pointer* pointer) { + + /* Reject Menu clicks + */ + if (pointer->buttons == wimp_CLICK_MENU) return; + + /* Handle the buttons appropriately + */ switch (pointer->i) { case ICON_TOOLBAR_BACK: + history_back(g->data.browser.bw, g->data.browser.bw->history); + break; case ICON_TOOLBAR_FORWARD: - back = (pointer->i == ICON_TOOLBAR_BACK); - if (pointer->buttons == wimp_CLICK_ADJUST) - back = !back; - if (back) - history_back(g->data.browser.bw, - g->data.browser.bw->history); - else - history_forward(g->data.browser.bw, - g->data.browser.bw->history); + history_forward(g->data.browser.bw, g->data.browser.bw->history); break; case ICON_TOOLBAR_STOP: @@ -1025,6 +1024,9 @@ bool ro_gui_window_keypress(gui_window *g, int key, bool toolbar) browser_window_stop(g->data.browser.bw); return true; + case 14: /* CTRL+N */ + browser_window_create(g->url, g->data.browser.bw); + return true; case 18: /* CTRL+R */ browser_window_reload(g->data.browser.bw); return true; -- cgit v1.2.3