summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Wilson <rjw@netsurf-browser.org>2004-06-28 19:35:04 +0000
committerRichard Wilson <rjw@netsurf-browser.org>2004-06-28 19:35:04 +0000
commit4479072d167d364f69e8963a5a2034761d6a8efc (patch)
tree2be7b0579319168cbb079922c310160d3777eba5
parentc6dd3cb9abe3a11f764f9f23b3102f31bd7b2052 (diff)
downloadnetsurf-4479072d167d364f69e8963a5a2034761d6a8efc.tar.gz
netsurf-4479072d167d364f69e8963a5a2034761d6a8efc.tar.bz2
[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
-rw-r--r--!NetSurf/Resources/en/Messages5
-rw-r--r--!NetSurf/Resources/fr/Messages5
-rw-r--r--riscos/menus.c22
-rw-r--r--riscos/options.h6
-rw-r--r--riscos/wimp.c5
-rw-r--r--riscos/window.c32
6 files changed, 45 insertions, 30 deletions
diff --git a/!NetSurf/Resources/en/Messages b/!NetSurf/Resources/en/Messages
index 0dab38037..0a19079ed 100644
--- a/!NetSurf/Resources/en/Messages
+++ b/!NetSurf/Resources/en/Messages
@@ -17,7 +17,7 @@ Draw:Draw ‹^F3
Text:Text ^F3
SaveURL:Save location
Print:Print...
-NewWindow:New window
+NewWindow:New window ^N
ViewSrc:View source... F8
Object:Object
ObjInfo:Info
@@ -54,6 +54,7 @@ OptDefault:Set as default
Window:Window
WindowSave:Set as default position
WindowStagr:Stagger window position
+WindowSize:Maintain window size
WindowReset:Reset default position
Help:Help
HelpContent:Contents F1
@@ -208,7 +209,7 @@ HelpBrowserMenu3-2-2:\Stoggle the display of the throbber.|MURL bar uses the rem
HelpBrowserMenu3-2-3:\Stoggle the display of the status bar.|MHorizontal scroll bar uses the remaining width.
HelpBrowserMenu3-3:\Rcontrol the default window positioning.
HelpBrowserMenu3-3-0:\Sto make the current window position the default.
-HelpBrowserMenu3-3-2:\Sto return to the default window positioning.
+HelpBrowserMenu3-3-3:\Sto return to the default window positioning.
HelpBrowserMenu3-4:\Smake your local display options the default options for NetSurf.
HelpBrowserMenu4:\Rsee the help resources available.
HelpBrowserMenu4-0:\Sopen the documentation contents page in a new \w.
diff --git a/!NetSurf/Resources/fr/Messages b/!NetSurf/Resources/fr/Messages
index 7b5a6798e..c063af7e6 100644
--- a/!NetSurf/Resources/fr/Messages
+++ b/!NetSurf/Resources/fr/Messages
@@ -17,7 +17,7 @@ Draw:Draw ‹^F3
Text:Texte ^F3
SaveURL:Sauver le lieu
Print:Imprimer...
-NewWindow:New window
+NewWindow:New window ^N
ViewSrc:Voir le source... F8
Object:Objet
ObjInfo:Info
@@ -54,6 +54,7 @@ OptDefault:Définir par défaut
Window:Fenêtre
WindowSave:Définir comme position par défaut
WindowStagr:Stagger window position
+WindowSize:Maintain window size
WindowReset:RAZ de la position par défaut
Help:Aide
HelpContent:Contenus F1
@@ -206,7 +207,7 @@ HelpBrowserMenu3-2-2:\Stoggle the display of the throbber.|MURL bar uses the rem
HelpBrowserMenu3-2-3:\Stoggle the display of the status bar.|MHorizontal scroll bar uses the remaining width.
HelpBrowserMenu3-3:\Rcontrol the default window positioning.
HelpBrowserMenu3-3-0:\Sto make the current window position the default.
-HelpBrowserMenu3-3-2:\Sto return to the default window positioning.
+HelpBrowserMenu3-3-3:\Sto return to the default window positioning.
HelpBrowserMenu3-4:\Smake your local display options the default options for NetSurf.
HelpBrowserMenu4:\Rsee the help resources available.
HelpBrowserMenu4-0:\Sopen the documentation contents page in a new \w.
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;