From bdc0d994c117d80a7cd18ae9755978e532736376 Mon Sep 17 00:00:00 2001 From: Chris Young Date: Sat, 2 Jul 2011 22:04:51 +0000 Subject: Add an option to open new tabs next to the current tab. Needs some additional logic as opening multiple tabs results in the new tabs being in reverse order to that expected. svn path=/trunk/netsurf/; revision=12559 --- !NetSurf/Resources/de/Messages | 1 + !NetSurf/Resources/en/Messages | 1 + !NetSurf/Resources/fr/Messages | 1 + !NetSurf/Resources/it/Messages | 1 + !NetSurf/Resources/nl/Messages | 1 + amiga/gui.c | 9 ++++++++- amiga/gui_options.c | 19 +++++++++++++++++-- amiga/options.h | 3 +++ 8 files changed, 33 insertions(+), 3 deletions(-) diff --git a/!NetSurf/Resources/de/Messages b/!NetSurf/Resources/de/Messages index 5f2bb6204..c71817f63 100644 --- a/!NetSurf/Resources/de/Messages +++ b/!NetSurf/Resources/de/Messages @@ -1406,6 +1406,7 @@ DownloadDir:Downloadverzeichnis TabbedBrowsing:Registernavigation (Tabs) TabActive:Neuen Tab im Hintergrund öffnen TabMiddle:Mittlere Maustaste öffnet Tab +TabLast:Open new tabs after all existing tabs DownloadNotify:Downloadende melden SearchWeb:Websuche SearchURL:Suche über URL Leiste diff --git a/!NetSurf/Resources/en/Messages b/!NetSurf/Resources/en/Messages index fe8b27291..0fcfdce34 100644 --- a/!NetSurf/Resources/en/Messages +++ b/!NetSurf/Resources/en/Messages @@ -1427,6 +1427,7 @@ DownloadDir:Initial download location TabbedBrowsing:Tabbed browsing TabActive:Open new tabs in background TabMiddle:Middle mouse button opens tabs +TabLast:Open new tabs after all existing tabs DownloadNotify:Notify on completion SearchWeb:Web search SearchURL:Search from URL bar diff --git a/!NetSurf/Resources/fr/Messages b/!NetSurf/Resources/fr/Messages index 904916fa0..3fe1abb65 100644 --- a/!NetSurf/Resources/fr/Messages +++ b/!NetSurf/Resources/fr/Messages @@ -1412,6 +1412,7 @@ DownloadDir:Initial download location TabbedBrowsing:Tabbed browsing TabActive:Open new tabs in background TabMiddle:Middle mouse button opens tabs +TabLast:Open new tabs after all existing tabs DownloadNotify:Notify on completion SearchWeb:Web search SearchURL:Search from URL bar diff --git a/!NetSurf/Resources/it/Messages b/!NetSurf/Resources/it/Messages index 31f586650..3ca755a49 100644 --- a/!NetSurf/Resources/it/Messages +++ b/!NetSurf/Resources/it/Messages @@ -1414,6 +1414,7 @@ DownloadDir:Percorso predefinito per i trasferimenti TabbedBrowsing:Navigazione a schede TabActive:Apri in sottofondo le nuove schede aperte da un link TabMiddle:Tasto centrale del mouse per l'apertura delle schede (Tab) +TabLast:Open new tabs after all existing tabs DownloadNotify:Notifica al completamento (Ringhio) SearchWeb:Ricerca nel Web SearchURL:Ricerca da barra URL diff --git a/!NetSurf/Resources/nl/Messages b/!NetSurf/Resources/nl/Messages index a382e86f4..f4c1747ab 100644 --- a/!NetSurf/Resources/nl/Messages +++ b/!NetSurf/Resources/nl/Messages @@ -1407,6 +1407,7 @@ DownloadDir:Initial download location TabbedBrowsing:Tabbed browsing TabActive:Open new tabs in background TabMiddle:Middle mouse button opens tabs +TabLast:Open new tabs after all existing tabs DownloadNotify:Notify on completion SearchWeb:Web search SearchURL:Search from URL bar diff --git a/amiga/gui.c b/amiga/gui.c index ba6245feb..6e115c2d8 100755 --- a/amiga/gui.c +++ b/amiga/gui.c @@ -2411,7 +2411,14 @@ struct gui_window *gui_create_browser_window(struct browser_window *bw, TNA_CloseGadget, TRUE, TAG_DONE); - AddTail(&gwin->shared->tab_list,gwin->tab_node); + if(option_new_tab_last) + { + AddTail(&gwin->shared->tab_list, gwin->tab_node); + } + else + { + Insert(&gwin->shared->tab_list, gwin->tab_node, clone->window->tab_node); + } RefreshSetGadgetAttrs((struct Gadget *)gwin->shared->objects[GID_TABS], gwin->shared->win, NULL, diff --git a/amiga/gui_options.c b/amiga/gui_options.c index 83963257b..0f453439f 100755 --- a/amiga/gui_options.c +++ b/amiga/gui_options.c @@ -114,6 +114,7 @@ enum GID_OPTS_DLDIR, GID_OPTS_TAB_ACTIVE, GID_OPTS_TAB_2, + GID_OPTS_TAB_LAST, GID_OPTS_SEARCH_PROV, GID_OPTS_CLIPBOARD, GID_OPTS_CMENU_ENABLE, @@ -280,6 +281,7 @@ void ami_gui_opts_setup(void) gadlab[GID_OPTS_DLDIR] = (char *)ami_utf8_easy((char *)messages_get("DownloadDir")); gadlab[GID_OPTS_TAB_ACTIVE] = (char *)ami_utf8_easy((char *)messages_get("TabActive")); gadlab[GID_OPTS_TAB_2] = (char *)ami_utf8_easy((char *)messages_get("TabMiddle")); + gadlab[GID_OPTS_TAB_LAST] = (char *)ami_utf8_easy((char *)messages_get("TabLast")); gadlab[GID_OPTS_SEARCH_PROV] = (char *)ami_utf8_easy((char *)messages_get("SearchProvider")); gadlab[GID_OPTS_CLIPBOARD] = (char *)ami_utf8_easy((char *)messages_get("ClipboardUTF8")); gadlab[GID_OPTS_CMENU_ENABLE] = (char *)ami_utf8_easy((char *)messages_get("Enable")); @@ -1110,6 +1112,12 @@ void ami_gui_opts_open(void) GA_RelVerify, TRUE, GA_Text, gadlab[GID_OPTS_TAB_ACTIVE], GA_Selected, !option_new_tab_active, + CheckBoxEnd, + LAYOUT_AddChild, gow->objects[GID_OPTS_TAB_LAST] = CheckBoxObject, + GA_ID, GID_OPTS_TAB_LAST, + GA_RelVerify, TRUE, + GA_Text, gadlab[GID_OPTS_TAB_LAST], + GA_Selected, option_new_tab_last, CheckBoxEnd, LAYOUT_AddChild, gow->objects[GID_OPTS_TAB_2] = CheckBoxObject, GA_ID, GID_OPTS_TAB_2, @@ -1118,10 +1126,11 @@ void ami_gui_opts_open(void) GA_Selected, option_button_2_tab, CheckBoxEnd, LayoutEnd, // tabbed browsing + LAYOUT_AddChild,VGroupObject, // temp extra group + LAYOUT_BevelStyle, BVS_GROUP, // stolen from below + LAYOUT_Label, gadlab[GRP_OPTS_CONTEXTMENU], // and this LAYOUT_AddChild,VGroupObject, LAYOUT_SpaceOuter, TRUE, - LAYOUT_BevelStyle, BVS_GROUP, - LAYOUT_Label, gadlab[GRP_OPTS_CONTEXTMENU], LAYOUT_AddChild, gow->objects[GID_OPTS_CMENU_ENABLE] = CheckBoxObject, GA_ID, GID_OPTS_CMENU_ENABLE, GA_RelVerify, TRUE, @@ -1136,6 +1145,8 @@ void ami_gui_opts_open(void) GA_Selected, option_sticky_context_menu, CheckBoxEnd, LayoutEnd, // context menus + CHILD_WeightedHeight, 0, + LayoutEnd, // temp extra group for spacing LayoutEnd, // hgroup CHILD_WeightedHeight, 0, LAYOUT_AddChild, HGroupObject, @@ -1563,6 +1574,10 @@ void ami_gui_opts_use(void) if(data) option_new_tab_active = false; else option_new_tab_active = true; + GetAttr(GA_Selected,gow->objects[GID_OPTS_TAB_LAST],(ULONG *)&data); + if(data) option_new_tab_last = true; + else option_new_tab_last = false; + GetAttr(GA_Selected,gow->objects[GID_OPTS_TAB_2],(ULONG *)&data); if(data) option_button_2_tab = true; else option_button_2_tab = false; diff --git a/amiga/options.h b/amiga/options.h index dda6f5127..7101bbfe8 100644 --- a/amiga/options.h +++ b/amiga/options.h @@ -32,6 +32,7 @@ extern bool option_sticky_context_menu; extern bool option_truecolour_mouse_pointers; extern bool option_use_os_pointers; extern bool option_new_tab_active; +extern bool option_new_tab_last; extern bool option_kiosk_mode; extern char *option_search_engines_file; extern char *option_search_ico_file; @@ -79,6 +80,7 @@ bool option_sticky_context_menu = false; \ bool option_truecolour_mouse_pointers = false; \ bool option_use_os_pointers = true; \ bool option_new_tab_active = false; \ +bool option_new_tab_last = true; \ bool option_kiosk_mode = false; \ char *option_search_engines_file = 0; \ char *option_search_ico_file = 0; \ @@ -126,6 +128,7 @@ int option_amiga_ydpi = 72; \ { "truecolour_mouse_pointers", OPTION_BOOL, &option_truecolour_mouse_pointers}, \ { "os_mouse_pointers", OPTION_BOOL, &option_use_os_pointers}, \ { "new_tab_is_active", OPTION_BOOL, &option_new_tab_active}, \ +{ "new_tab_last", OPTION_BOOL, &option_new_tab_last}, \ { "kiosk_mode", OPTION_BOOL, &option_kiosk_mode}, \ { "search_engines_file", OPTION_STRING, &option_search_engines_file }, \ { "search_ico_file", OPTION_STRING, &option_search_ico_file }, \ -- cgit v1.2.3