Hi,

well as the main Email that I sent would cause bounces all round, I'll
try to create sub-threads here for individual features; the
'foundations' are in overview / glade / Misc, then the features are [in
order] favicon, search, save, theme, customization, Menu; uploads is an
unmerged branch as it should merge without real conflicts; overview is
now 2  threads as even after the sub-threading this Email was 127k, so
hopefully I'll save lots of approving oversize Emails to the list; at
the cost of proliferation of threads, though I hope that's manageable;
currently overview/scaffolding is 95k of actual message content, as is
search; they could be further sub-threaded [search in  particular
naturally has web-search / page-search domains] in case of need

John-Mark Bell wrote:
> Precis:
>
> This is Mark Benjamin's GTK work. It builds for GTK, with warnings. It does 
> not build for RISC OS. The Amiga frontend conflicts loads when merged to 
> trunk, so all bets are off there.
>

I have now hopefully modified the branch to account for the amiga compile 
errors too; as well as adding the enums that I must have omitted at first time 
of asking Chris :-)

>
>
> Changed files
>
>
>  !NetSurf/Resources/de/Messages |  113 ++
>  !NetSurf/Resources/en/Messages |  111 ++
>  !NetSurf/Resources/fr/Messages |  115 ++
>  !NetSurf/Resources/it/Messages |  146 ++-
>  !NetSurf/Resources/nl/Messages |  113 ++
>  Docs/Doxyfile                  |    2 
>  Makefile                       |    8 
>  Makefile.sources               |   25 
>  amiga/download.c               |    2 
>  amiga/gui.c                    |    6 
>  amiga/menu.c                   |    2 
>  amiga/save_complete.c          |  827 +----------------
>  amiga/search.c                 |  668 +-------------
>  beos/beos_scaffolding.cpp      |    4 
>  content/content.c              |    3 
>  content/fetchcache.c           |   97 +-
>  desktop/browser.c              |   34 
>  desktop/browser.h              |    1 
>  desktop/gui.h                  |    5 
>  desktop/options.c              |    8 
>  desktop/options.h              |    2 
>  gtk/dialogs/gtk_options.c      |  198 +++-
>  gtk/dialogs/gtk_options.h      |    2 
>  gtk/dialogs/gtk_source.c       |  222 ++--
>  gtk/gtk_download.c             |    4 
>  gtk/gtk_gui.c                  |  114 +-
>  gtk/gtk_gui.h                  |   14 
>  gtk/gtk_login.c                |    2 
>  gtk/gtk_scaffolding.c          | 1952 
> +++++++++++++++++++++++++++--------------
>  gtk/gtk_scaffolding.h          |  233 ++++
>  gtk/gtk_selection.c            |    5 
>  gtk/gtk_tabs.c                 |   34 
>  gtk/gtk_window.c               |  115 +-
>  gtk/gtk_window.h               |   40 
>  gtk/options.h                  |   10 
>  gtk/res/netsurf.glade          | 1661 ++--------------------------------
>  gtk/res/options.glade          |  772 ++++++++++------
>  image/ico.c                    |    9 
>  image/ico.h                    |    1 
>  render/html.c                  |    8 
>  render/html.h                  |    3 
>  render/html_redraw.c           |    2 
>  render/textplain.c             |    2 
>  riscos/save.c                  |   64 +
>  riscos/search.c                |  618 ------------
>  riscos/window.c                |   13 
>  utils/config.h                 |    5 
>  utils/container.c              |  170 ++-
>  utils/container.h              |    3 
>  utils/utils.c                  |   17 
>  utils/utils.h                  |    1 
>  51 files changed, 3855 insertions(+), 4731 deletions(-)
> Index: gtk/gtk_tabs.c
>   
mainly consequential amendments for reinstatement of privacy /
encapsulation from gtkmain branch
> ===================================================================
> --- gtk/gtk_tabs.c    (revision 8438)
> +++ gtk/gtk_tabs.c    (working copy)
> @@ -23,12 +23,13 @@
>  #include "desktop/browser.h"
>  #include "content/content.h"
>  #include "desktop/options.h"
> +#include "desktop/search.h"
>  #include "utils/utils.h"
>  #include "gtk/options.h"
>  #include "gtk/gtk_tabs.h"
>  
>  #define TAB_WIDTH_N_CHARS 15
> -#define GET_WIDGET(x) glade_xml_get_widget(gladeWindows, (x))
> +#define GET_WIDGET(x) glade_xml_get_widget(gladeNetsurf, (x))
>  
>  static GtkWidget *nsgtk_tab_label_setup(struct gui_window *window);
>  static void nsgtk_tab_visibility_update(GtkNotebook *notebook, GtkWidget 
> *child,
> @@ -58,15 +59,19 @@
>  
>  void nsgtk_tab_add(struct gui_window *window, bool background)
>  {
> -     GtkWidget *tabs = GTK_WIDGET(nsgtk_scaffolding_get_notebook(window));
> +     GtkWidget *tabs = GTK_WIDGET(nsgtk_scaffolding_notebook(
> +                     nsgtk_get_scaffold(window)));
>       GtkWidget *tabBox = nsgtk_tab_label_setup(window);
>       gint remember = gtk_notebook_get_current_page(GTK_NOTEBOOK(tabs));
>       gtk_notebook_append_page(GTK_NOTEBOOK(tabs), 
> -                     GTK_WIDGET(window->scrolledwindow), tabBox);
> -     /*causes gtk errors can't set a parent
> +                     GTK_WIDGET(nsgtk_window_get_scrolledwindow(window)),
> +                     tabBox);
> +     /*causes gtk errors can't set a parent */
>       gtk_notebook_set_tab_reorderable(GTK_NOTEBOOK(tabs), 
> -                     GTK_WIDGET(window->scrolledwindow), true); */
> -     gtk_widget_show_all(GTK_WIDGET(window->scrolledwindow));
> +                     GTK_WIDGET(nsgtk_window_get_scrolledwindow(window)),
> +                     true);
> +     gtk_widget_show_all(GTK_WIDGET(nsgtk_window_get_scrolledwindow(
> +                     window)));
>       gtk_notebook_set_current_page(GTK_NOTEBOOK(tabs), 
>                       gtk_notebook_get_n_pages(GTK_NOTEBOOK(tabs)) - 1);
>       if (option_new_blank) {
> @@ -75,13 +80,15 @@
>               blankpage = g_strconcat("file:///", res_dir_location, 
>                               "blankpage", NULL); */
>               /* segfaults 
> -             struct browser_window *bw = nsgtk_get_browser_for_gui(window);
> +             struct browser_window *bw =
> +                             gui_window_get_browser_window(window);
>               browser_window_go(bw, blankpage, 0, true); */
>               /* free(blankpage); */
>       }
>       if (background)
>               gtk_notebook_set_current_page(GTK_NOTEBOOK(tabs), remember);
> -     gtk_widget_grab_focus(GTK_WIDGET(window->scaffold->url_bar));
> +     gtk_widget_grab_focus(GTK_WIDGET(nsgtk_scaffolding_urlbar(
> +                     nsgtk_get_scaffold(window))));
>  }
>  
>  void nsgtk_tab_visibility_update(GtkNotebook *notebook, GtkWidget *child,
> @@ -97,12 +104,14 @@
>  void nsgtk_tab_set_title(struct gui_window *g, const char *title)
>  {
>       GtkWidget *label;
> -     gboolean is_top_level = (g->tab != NULL);
> +     GtkWidget *tab;
> +     tab = nsgtk_window_get_tab(g);
> +     gboolean is_top_level = (tab != NULL);
>  
>       if (is_top_level) {
> -             label = g_object_get_data(G_OBJECT(g->tab), "label");
> +             label = g_object_get_data(G_OBJECT(tab), "label");
>               gtk_label_set_text(GTK_LABEL(label), title);
> -             gtk_widget_set_tooltip_text(g->tab, title);
> +             gtk_widget_set_tooltip_text(tab, title);
>       }
>  }
>  
> @@ -147,7 +156,7 @@
>       g_object_set_data(G_OBJECT(hbox), "label", label);
>       g_object_set_data(G_OBJECT(hbox), "close-button", button);
>  
> -     window->tab = hbox;
> +     nsgtk_window_set_tab(window, hbox);
>  
>       gtk_widget_show_all(hbox);
>       return hbox;
> @@ -183,6 +192,7 @@
>       GtkWidget *window = gtk_notebook_get_nth_page(notebook, page_num);
>       struct gui_window *gw = g_object_get_data(G_OBJECT(window),
>                       "gui_window");
> +     search_reset();
>       if (gw)
>               nsgtk_scaffolding_set_top_level(gw);
>  }
> Index: gtk/dialogs/gtk_options.c
>   
new options for search web from url bar [default off]; select search
provider; view source in new tab; theme selection / addition; load theme
list from file; real time add theme name to combo;
> ===================================================================
> --- gtk/dialogs/gtk_options.c (revision 8438)
> +++ gtk/dialogs/gtk_options.c (working copy)
> @@ -2,6 +2,7 @@
>   * Copyright 2006 Rob Kendrick <[email protected]>
>   * Copyright 2008 Mike Lester <[email protected]>
>   * Copyright 2009 Daniel Silverstone <[email protected]>
> + * Copyright 2009 Mark Benjamin <[email protected]>
>   *
>   * This file is part of NetSurf, http://www.netsurf-browser.org/
>   *
> @@ -27,15 +28,18 @@
>  #include <glade/glade.h>
>  #include "desktop/options.h"
>  #include "desktop/print.h"
> +#include "desktop/searchweb.h"
>  #include "gtk/options.h"
>  #include "gtk/gtk_gui.h"
>  #include "gtk/gtk_scaffolding.h"
> +#include "gtk/gtk_theme.h"
>  #include "gtk/dialogs/gtk_options.h"
>  #include "gtk/gtk_window.h"
>  #include "utils/log.h"
>  #include "utils/utils.h"
> +#include "utils/messages.h"
>  
> -GtkDialog *wndPreferences;
> +GtkDialog *wndPreferences = NULL;
>  static GladeXML *gladeFile;
>  static gchar *glade_location;
>  static struct browser_window *current_browser;
> @@ -97,6 +101,12 @@
>  DECLARE(fileChooserDownloads);
>  DECLARE(checkFocusNew);
>  DECLARE(checkNewBlank);
> +DECLARE(checkUrlSearch);
> +DECLARE(comboSearch);
> +DECLARE(combotheme);
> +DECLARE(buttonaddtheme);
> +DECLARE(sourceButtonTab);
> +static GtkWidget *sourceButtonWindow;
>  
>  DECLARE(spinMarginTop);
>  DECLARE(spinMarginBottom);
> @@ -133,7 +143,13 @@
>       wndPreferences = GTK_DIALOG(glade_xml_get_widget(gladeFile,
>                               "dlgPreferences"));
>       gtk_window_set_transient_for (GTK_WINDOW(wndPreferences), parent);
> -             
> +     
> +     FIND_WIDGET(sourceButtonTab);
> +     FIND_WIDGET(sourceButtonWindow);
> +     GSList *group = gtk_radio_button_get_group(GTK_RADIO_BUTTON(
> +                     sourceButtonWindow));
> +     gtk_radio_button_set_group(GTK_RADIO_BUTTON(sourceButtonTab), group);
> +     
>       /* set the widgets to reflect the current options */
>       nsgtk_options_load();
>       
> @@ -188,7 +204,13 @@
>       
>       CONNECT(checkFocusNew, "toggled");
>       CONNECT(checkNewBlank, "toggled");
> +     CONNECT(checkUrlSearch, "toggled");
> +     CONNECT(comboSearch, "changed");
>       
> +     CONNECT(combotheme, "changed");
> +     CONNECT(buttonaddtheme, "clicked");
> +     CONNECT(sourceButtonTab, "toggled");
> +     
>       CONNECT(spinMarginTop, "value-changed");
>       CONNECT(spinMarginBottom, "value-changed");
>       CONNECT(spinMarginLeft, "value-changed");
> @@ -247,11 +269,11 @@
>                                                (value));                 \
>          } while (0)
>  
> -#define SET_FILE_CHOOSER(widgt, value)                                  \
> +#define SET_FILE_CHOOSER(widget, value)                                  \
>          do {                                                            \
> -                (widgt) = glade_xml_get_widget(gladeFile, #widgt);      \
> -                
> gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER((widgt)), \
> -                                                    (value));           \
> +                (widget) = glade_xml_get_widget(gladeFile, #widget);      \
> +                gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(\
> +                             (widget)), (value));                    \
>          } while (0)
>  
>  #define SET_BUTTON(widget)                                              \
> @@ -262,19 +284,18 @@
>  
>  void nsgtk_options_load(void) 
>  {
> -     GtkVBox *combolanguagevbox;
> -     gchar *languagefile;
> +     GtkBox *box;
> +     gchar *languagefile, *themefile;
>       const char *default_accept_language = 
>                       option_accept_language ? option_accept_language : "en";
>       int combo_row_count = 0;
>       int active_language = 0;
>       int proxytype = 0;
>       FILE *fp;
> -     char buf[20];
> +     char buf[50];
>  
>       /* Create combobox */
> -     combolanguagevbox = 
> -             GTK_VBOX(glade_xml_get_widget(gladeFile, "combolanguagevbox"));
> +     box = GTK_BOX(glade_xml_get_widget(gladeFile, "combolanguagevbox"));
>       comboLanguage = gtk_combo_box_new_text();
>  
>       languagefile = g_strconcat(res_dir_location, "languages", NULL);
> @@ -309,10 +330,35 @@
>       /** \todo localisation */
>       gtk_widget_set_tooltip_text(GTK_WIDGET(comboLanguage), 
>                       "set preferred language for web pages");
> -     gtk_box_pack_start(GTK_BOX(combolanguagevbox), 
> -                     comboLanguage, FALSE, FALSE, 0);
> +     gtk_box_pack_start(box, comboLanguage, FALSE, FALSE, 0);
>       gtk_widget_show(comboLanguage);
> +     
> +     /* populate theme combo from themelist file */
> +     box = GTK_BOX(glade_xml_get_widget(gladeFile, "themehbox"));
> +     combotheme = gtk_combo_box_new_text();
> +     themefile = g_strconcat(res_dir_location, "themelist", NULL);
> +     fp = fopen((const char *)themefile, "r");
> +     g_free(themefile);
> +     if (fp == NULL) {
> +             LOG(("Failed opening themes file"));
> +             warn_user("FileError", (const char *) themefile);
> +             return;
> +     }
> +     while (fgets(buf, sizeof(buf), fp)) {
> +             /* Ignore blank lines */
> +             if (buf[0] == '\0')
> +                     continue;
>  
> +             /* Remove trailing \n */
> +             buf[strlen(buf) - 1] = '\0';
> +
> +             gtk_combo_box_append_text(GTK_COMBO_BOX(combotheme), buf);
> +     }
> +     gtk_combo_box_set_active(GTK_COMBO_BOX(combotheme), 
> +                     option_current_theme);
> +     gtk_box_pack_start(box, combotheme, FALSE, TRUE, 0);
> +     gtk_widget_show(combotheme);            
> +
>       SET_ENTRY(entryHomePageURL,
>                       option_homepage_url ? option_homepage_url : "");
>       SET_BUTTON(setCurrentPage);
> @@ -380,7 +426,12 @@
>       
>       SET_CHECK(checkFocusNew, option_focus_new);
>       SET_CHECK(checkNewBlank, option_new_blank);
> +     SET_CHECK(checkUrlSearch, option_search_url_bar);
> +     SET_COMBO(comboSearch, option_search_provider);
>       
> +     SET_BUTTON(buttonaddtheme);
> +     SET_CHECK(sourceButtonTab, option_source_tab);
> +             
>       SET_SPIN(spinMarginTop, option_margin_top);
>       SET_SPIN(spinMarginBottom, option_margin_bottom);
>       SET_SPIN(spinMarginLeft, option_margin_left);
> @@ -417,6 +468,14 @@
>       }
>       return stay_alive;
>  }
> +
> +bool nsgtk_options_combo_theme_add(const char *themename)
> +{
> +     if (wndPreferences == NULL)
> +             return false;
> +     gtk_combo_box_append_text(GTK_COMBO_BOX(combotheme), themename);
> +     return true;
> +}
>       
>  
>  /* Defines the callback functions for all widgets and specifies
> @@ -643,42 +702,43 @@
>  END_HANDLER
>  
>  COMBO_CHANGED(comboButtonType, option_button_type)
> -     struct gui_window *current = window_list;
> +     nsgtk_scaffolding *current = scaf_list;
>  
>       while (current) {
> +             nsgtk_scaffolding_reset_offset(current);
>               switch(option_button_type) {
>               case 0:
>                       gtk_toolbar_set_style(
> -                             GTK_TOOLBAR(current->scaffold->tool_bar),
> +                             GTK_TOOLBAR(nsgtk_scaffolding_toolbar(current)),
>                               GTK_TOOLBAR_ICONS);
>                       gtk_toolbar_set_icon_size(
> -                             GTK_TOOLBAR(current->scaffold->tool_bar),
> +                             GTK_TOOLBAR(nsgtk_scaffolding_toolbar(current)),
>                               GTK_ICON_SIZE_SMALL_TOOLBAR);
>                       break;
>               case 1:
>                       gtk_toolbar_set_style(
> -                             GTK_TOOLBAR(current->scaffold->tool_bar),
> +                             GTK_TOOLBAR(nsgtk_scaffolding_toolbar(current)),
>                               GTK_TOOLBAR_ICONS);
>                       gtk_toolbar_set_icon_size(
> -                             GTK_TOOLBAR(current->scaffold->tool_bar),
> +                             GTK_TOOLBAR(nsgtk_scaffolding_toolbar(current)),
>                               GTK_ICON_SIZE_LARGE_TOOLBAR);
>                       break;
>               case 2:
>                       gtk_toolbar_set_style(
> -                             GTK_TOOLBAR(current->scaffold->tool_bar),
> +                             GTK_TOOLBAR(nsgtk_scaffolding_toolbar(current)),
>                               GTK_TOOLBAR_BOTH);
>                       gtk_toolbar_set_icon_size(
> -                             GTK_TOOLBAR(current->scaffold->tool_bar),
> +                             GTK_TOOLBAR(nsgtk_scaffolding_toolbar(current)),
>                               GTK_ICON_SIZE_LARGE_TOOLBAR);
>                       break;
>               case 3:
>                       gtk_toolbar_set_style(
> -                             GTK_TOOLBAR(current->scaffold->tool_bar),
> +                             GTK_TOOLBAR(nsgtk_scaffolding_toolbar(current)),
>                               GTK_TOOLBAR_TEXT);
>               default:
>                       break;
>               }
> -             current = current->next;
> +             current = nsgtk_scaffolding_iterate(current);
>       }
>  END_HANDLER
>  
> @@ -704,6 +764,100 @@
>  CHECK_CHANGED(checkNewBlank, option_new_blank)
>  END_HANDLER
>  
> +CHECK_CHANGED(checkUrlSearch, option_search_url_bar)
> +END_HANDLER
> +
> +COMBO_CHANGED(comboSearch, option_search_provider)   
> +     nsgtk_scaffolding *current = scaf_list;
> +     char *name;
> +     /* refresh web search prefs from file */
> +     search_web_provider_details(option_search_provider);
> +     /* retrieve ico */
> +     search_ico = search_web_retrieve_ico(false);
> +     /* callback may handle changing gui */
> +     if (search_ico != NULL)
> +             gui_window_set_search_ico();
> +     /* set entry */
> +     name = search_web_provider_name();
> +     while (current) {
> +             nsgtk_scaffolding_set_websearch(current, name);
> +             current = nsgtk_scaffolding_iterate(current);
> +     }
> +     free(name);
> +END_HANDLER
> +
> +COMBO_CHANGED(combotheme, option_current_theme)
> +     nsgtk_scaffolding *current = scaf_list;
> +     if (option_current_theme != 0) {
> +             if (current_theme_name != NULL)
> +                     free(current_theme_name);
> +             current_theme_name = strdup(gtk_combo_box_get_active_text(
> +                             GTK_COMBO_BOX(combotheme)));
> +             nsgtk_theme_prepare();
> +     } else if (current_theme_name != NULL) {
> +             free(current_theme_name);
> +             current_theme_name = NULL;
> +     }
> +     while (current) {
> +             nsgtk_theme_implement(current);
> +             current = nsgtk_scaffolding_iterate(current);
> +     }               
> +END_HANDLER
> +
> +BUTTON_CLICKED(buttonaddtheme)
> +     char *themesfolder, *filename, *directory;
> +     GtkWidget *fc = gtk_file_chooser_dialog_new(
> +                     messages_get("gtkAddThemeTitle"),
> +                     GTK_WINDOW(wndPreferences),
> +                     GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER,
> +                     GTK_STOCK_OK, GTK_RESPONSE_ACCEPT,
> +                     GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, NULL);
> +     themesfolder = g_strconcat(res_dir_location, "themes", NULL);
> +     gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(fc), 
> +                     themesfolder);
> +     gint res = gtk_dialog_run(GTK_DIALOG(fc));
> +     if (res == GTK_RESPONSE_ACCEPT) {
> +             filename = gtk_file_chooser_get_current_folder(
> +                             GTK_FILE_CHOOSER(fc));
> +             if (strcmp(filename, themesfolder) != 0) {
> +                     directory = strrchr(filename, '/');
> +                     *directory = '\0';
> +                     if (strcmp(filename, themesfolder) != 0) {
> +                             warn_user(messages_get(
> +                                             "gtkThemeFolderInstructions"), 
> +                                             0);
> +                             gtk_widget_destroy(GTK_WIDGET(fc));
> +                             free(filename);
> +                             free(themesfolder);
> +                             return FALSE;
> +                     } else {
> +                             directory++;
> +                     }
> +             } else {
> +                     free(filename);
> +                     filename = gtk_file_chooser_get_filename(
> +                                     GTK_FILE_CHOOSER(fc));
> +                     if (strcmp(filename, themesfolder) == 0) {
> +                             warn_user(messages_get("gtkThemeFolderSub"),
> +                                             0);
> +                             gtk_widget_destroy(GTK_WIDGET(fc));
> +                             free(filename);
> +                             free(themesfolder);
> +                             return FALSE;
> +                     }
> +                     directory = strrchr(filename, '/') + 1;
> +             }
> +             gtk_widget_destroy(GTK_WIDGET(fc));
> +             nsgtk_theme_add(directory);
> +             free(filename);
> +             free(themesfolder);
> +     }
> +
> +END_HANDLER
> +
> +CHECK_CHANGED(sourceButtonTab, option_source_tab)
> +END_HANDLER
> +
>  SPIN_CHANGED(spinMarginTop, option_margin_top)
>  END_HANDLER
>  
> Index: gtk/dialogs/gtk_options.h
> ===================================================================
> --- gtk/dialogs/gtk_options.h (revision 8438)
> +++ gtk/dialogs/gtk_options.h (working copy)
> @@ -1,5 +1,6 @@
>  /*
>   * Copyright 2006 Rob Kendrick <[email protected]>
> + * Copyright 2009 Mark Benjamin <[email protected]>
>   *
>   * This file is part of NetSurf, http://www.netsurf-browser.org/
>   *
> @@ -26,5 +27,6 @@
>  GtkDialog* nsgtk_options_init(struct browser_window *bw, GtkWindow *parent); 
>         /** Init options and load window */
>  void nsgtk_options_load(void);               /** Load current options into 
> window */
>  void nsgtk_options_save(void);               /** Save options from window */
> +bool nsgtk_options_combo_theme_add(const char *themename); /** add new theme 
> name to combo */
>  
>  #endif
> Index: gtk/res/options.glade
> ===================================================================
> --- gtk/res/options.glade     (revision 8438)
> +++ gtk/res/options.glade     (working copy)
> @@ -298,7 +298,7 @@
>                                      <property name="visible">True</property>
<etc>
> Index: !NetSurf/Resources/de/Messages
> ===================================================================
> --- !NetSurf/Resources/de/Messages    (revision 8438)
> +++ !NetSurf/Resources/de/Messages    (working copy)
<etc>
> Index: !NetSurf/Resources/en/Messages
> ===================================================================
> --- !NetSurf/Resources/en/Messages    (revision 8438)
> +++ !NetSurf/Resources/en/Messages    (working copy)
> @@ -429,12 +429,119 @@

worth commenting are the menu labels, including accelerators; allowing 
relatively straightforward I18n of accelerators as well as fully personal 
customization for advanced users

> +# gtk Menu / Button labels
> +#
> +
> +gtkNewTab:New _Tab
> +gtkNewTabAccel:<ctrl>t
> +gtkNewWindow:_New Window
> +gtkNewWindowAccel:<ctrl>n
> +gtkOpenFile:_Open File
> +gtkOpenFileAccel:<ctrl>o
> +gtkCloseWindow:_Close Window
> +gtkCloseWindowAccel:<ctrl><shift>w
> +gtkSavePage:Save Page..
> +gtkSavePageAccel:<ctrl>s
> +gtkExport:Export
> +gtkPlainText:Plain Text..
> +gtkDrawFile:Drawfile..
> +gtkPostScript:PostScript..
> +gtkPDF:PDF..
> +gtkPrintPreview:Print Preview..
> +gtkPrintPreviewAccel:<ctrl><shift>p
> +gtkPrint:Print..
> +gtkPrintAccel:<ctrl>p
> +gtkQuit:_Quit
> +gtkQuitAccel:<ctrl>q
> +
> +gtkCut:Cu_t
> +gtkCutAccel:<ctrl>x
> +gtkCopy:_Copy
> +gtkCopyAccel:<ctrl>c
> +gtkPaste:_Paste
> +gtkPasteAccel:<ctrl>v
> +gtkDelete:_Delete
> +gtkSelectAll:Select _All
> +gtkSelectAllAccel:<ctrl>a
> +gtkFind:_Find..
> +gtkFindAccel:<ctrl>f
> +gtkPreferences:P_references
> +
> +gtkStop:_Stop
> +gtkStopAccel:Escape
> +gtkReload:_Reload
> +gtkReloadAccel:F5
> +gtkScaleView:_Scale View
> +gtkZoomPlus:Zoom _in
> +gtkZoomPlusAccel:<ctrl>plus
> +gtkZoomMinus:Zoom _out
> +gtkZoomMinusAccel:<ctrl>minus
> +gtkZoomNormal:_Normal size
> +gtkZoomNormalAccel:<ctrl>0
> +gtkFullScreen:_Fullscreen
> +gtkFullScreenAccel:F11
> +gtkViewSource:View S_ource
> +gtkViewSourceAccel:F8
> +gtkImages:_Images
> +gtkForegroundImages:_Foreground Images
> +gtkBackgroundImages:_Background Images
> +gtkToolbars:_Toolbars
> +gtkMenuBar:_Menu Bar
> +gtkToolBar:_Button Bar
> +gtkStatusBar:_Status Bar
> +gtkDownloads:_Downloads
> +gtkDownloadsAccel:<ctrl>d
> +gtkSaveWindowSize:S_ave Window Size
> +gtkDebugging:De_bugging
> +gtkToggleDebugging:T_oggle debug rendering
> +gtkSaveBoxTree:_Save box tree
> +gtkSaveDomTree:Save DOM tree
> +
> +gtkBack:_Back
> +gtkBackAccel:<alt>Left
> +gtkForward:_Forward
> +gtkForwardAccel:<alt>Right
> +gtkHome:_Home
> +gtkHomeAccel:<alt>Down
> +gtkLocalHistory:_Local History
> +gtkLocalHistoryAccel:<ctrl>h
> +gtkGlobalHistory:_Global History
> +gtkGlobalHistoryAccel:<ctrl><shift>h
> +gtkAddBookMarks:_Add to Bookmarks..
> +gtkShowBookMarks:_Show Bookmarks..
> +gtkShowBookMarksAccel:F6
> +gtkOpenLocation:_Open Location..
> +gtkOpenLocationAccel:<ctrl>l
> +
> +gtkNextTab:_Next tab
> +gtkNextTabAccel:<ctrl>Right
> +gtkPrevTab:_Previous tab
> +gtkPrevTabAccel:<ctrl>Left
> +gtkCloseTab:_Close tab
> +gtkCloseTabAccel:<ctrl>w
> +
> +gtkContents:_Contents
> +gtkGuide:User _guide
> +gtkUserInformation:User _information
> +gtkAbout:_About
> +
<etc>
> Index: !NetSurf/Resources/fr/Messages
> ===================================================================
> --- !NetSurf/Resources/fr/Messages    (revision 8438)
> +++ !NetSurf/Resources/fr/Messages    (working copy)
<etc>
> Index: !NetSurf/Resources/nl/Messages
> ===================================================================
> --- !NetSurf/Resources/nl/Messages    (revision 8438)
> +++ !NetSurf/Resources/nl/Messages    (working copy)
> Index: !NetSurf/Resources/it/Messages
> ===================================================================
> --- !NetSurf/Resources/it/Messages    (revision 8438)
> +++ !NetSurf/Resources/it/Messages    (working copy)
> Index: Makefile.sources
> ===================================================================
> --- Makefile.sources  (revision 8438)
> +++ Makefile.sources  (working copy)
> @@ -8,12 +8,13 @@
>  S_CONTENT := content.c fetch.c fetchcache.c urldb.c                  \
>       fetchers/fetch_curl.c fetchers/fetch_data.c
>  S_CSS := css.c css_enum.c parser.c ruleset.c scanner.c
> -S_RENDER := box.c box_construct.c box_normalise.c directory.c                
> \
> +S_RENDER := box.c box_construct.c box_normalise.c directory.c favicon.c \
>       form.c html.c html_redraw.c hubbub_binding.c imagemap.c         \
>       layout.c list.c loosen.c table.c textplain.c
> -S_UTILS := base64.c filename.c hashtable.c locale.c messages.c talloc.c      
> \
> -     url.c utf8.c utils.c useragent.c
> -S_DESKTOP := knockout.c options.c print.c tree.c version.c textarea.c
> +S_UTILS := base64.c container.c filename.c hashtable.c locale.c              
> \
> +      messages.c talloc.c url.c utf8.c utils.c useragent.c
> +S_DESKTOP := knockout.c options.c print.c search.c searchweb.c textarea.c \
> +     tree.c version.c
>  
>  # S_COMMON are sources common to all builds
>  S_COMMON := $(addprefix content/,$(S_CONTENT))                               
> \
> @@ -32,8 +33,8 @@
>  
>  # S_BROWSER are sources related to full browsers but are common
>  # between RISC OS, GTK, BeOS and AmigaOS builds
> -S_BROWSER := browser.c frames.c history_core.c netsurf.c save_text.c \
> -     selection.c textinput.c
> +S_BROWSER := browser.c frames.c history_core.c netsurf.c save_complete.c \
> +     save_text.c selection.c textinput.c
>  S_BROWSER := $(addprefix desktop/,$(S_BROWSER))
>  
>  # S_RISCOS are sources purely for the RISC OS build
> @@ -42,8 +43,8 @@
>       filetype.c font.c global_history.c gui.c help.c history.c       \
>       hotlist.c image.c menus.c message.c palettes.c plotters.c       \
>       plugin.c print.c query.c save.c save_complete.c save_draw.c     \
> -     save_pdf.c schedule.c search.c sprite.c sslcert.c textarea.c    \
> -     textselection.c theme.c theme_install.c thumbnail.c             \
> +     save_pdf.c schedule.c search.c searchweb.c sprite.c sslcert.c   \
> +     textarea.c textselection.c theme.c theme_install.c thumbnail.c  \
>       treeview.c ucstables.c uri.c url_complete.c url_protocol.c      \
>       wimp.c wimp_event.c window.c gui/progress_bar.c                 \
>       gui/status_bar.c                                                \
> @@ -59,7 +60,8 @@
>       gtk_thumbnail.c gtk_plotters.c gtk_treeview.c gtk_scaffolding.c \
>       gtk_completion.c gtk_login.c gtk_throbber.c gtk_selection.c     \
>       gtk_history.c gtk_window.c gtk_filetype.c gtk_download.c        \
> -     gtk_print.c gtk_tabs.c                                          \
> +     gtk_menu.c gtk_print.c gtk_save.c gtk_search.c gtk_tabs.c       \
> +     gtk_theme.c gtk_toolbar.c \
>       $(addprefix dialogs/,gtk_options.c gtk_about.c gtk_source.c)
>  S_GTK := $(addprefix gtk/,$(S_GTK))
>  
> @@ -67,8 +69,9 @@
>  S_BEOS := beos_about.cpp beos_bitmap.cpp beos_fetch_rsrc.cpp         \
>       beos_filetype.cpp beos_font.cpp beos_gui.cpp beos_history.cpp   \
>       beos_login.cpp beos_options.cpp beos_plotters.cpp               \
> -     beos_scaffolding.cpp beos_schedule.cpp beos_thumbnail.cpp       \
> -     beos_treeview.cpp beos_throbber.cpp beos_window.cpp
> +     beos_scaffolding.cpp beos_search.cpp beos_schedule.cpp          \
> +     beos_thumbnail.cpp beos_treeview.cpp beos_throbber.cpp          \
> +     beos_window.cpp
>  S_BEOS := $(addprefix beos/,$(S_BEOS))
>  RDEF_BEOS := beos_res.rdef
>  RDEF_BEOS := $(addprefix beos/,$(RDEF_BEOS))
> Index: desktop/options.h
> ===================================================================
> --- desktop/options.h (revision 8438)
> +++ desktop/options.h (working copy)
> @@ -70,6 +70,8 @@
>  extern char *option_cookie_file;
>  extern char *option_cookie_jar;
>  extern char *option_homepage_url;
> +extern bool option_search_url_bar;
> +extern int option_search_provider;
>  extern bool option_target_blank;
>  extern bool option_button_2_tab;
>  extern bool option_url_suggestion;
> Index: desktop/options.c
> ===================================================================
> --- desktop/options.c (revision 8438)
> +++ desktop/options.c (working copy)
> @@ -110,12 +110,16 @@
>  char *option_ca_path = 0;
>  /** Cookie file location */
>  char *option_cookie_file = 0;
> -/** Cookie jar loaction */
> +/** Cookie jar location */
>  char *option_cookie_jar = 0;
>  /** Home page location */
>  char *option_homepage_url = 0;
> +/** search web from url bar */
> +bool option_search_url_bar = false;
>  /** URL completion in url bar */
>  bool option_url_suggestion = true;
> +/** default web search provider */
> +int option_search_provider = 0;
>  /** default x position of new windows */
>  int option_window_x = 0;
>  /** default y position of new windows */
> @@ -229,6 +233,8 @@
>       { "cookie_file",        OPTION_STRING,  &option_cookie_file },
>       { "cookie_jar",         OPTION_STRING,  &option_cookie_jar },
>          { "homepage_url",    OPTION_STRING,  &option_homepage_url },
> +        { "search_url_bar",  OPTION_BOOL,    &option_search_url_bar},
> +        { "search_provider", OPTION_INTEGER, &option_search_provider},
>       { "url_suggestion",     OPTION_BOOL,    &option_url_suggestion },
>       { "window_x",           OPTION_INTEGER, &option_window_x },
>       { "window_y",           OPTION_INTEGER, &option_window_y },
> Index: Makefile
> ===================================================================
> --- Makefile  (revision 8438)
> +++ Makefile  (working copy)
> @@ -109,6 +109,11 @@
>  
>  # Override this only if the host compiler is called something different
>  HOST_CC := gcc
> +ifeq ($(TARGET),amiga)
> +  ifneq ($(HOST),amiga)
> +    CC := ppc-amigaos-gcc
> +  endif
> +endif
>  
>  ifeq ($(TARGET),riscos)
>    ifeq ($(HOST),riscos)
> @@ -748,10 +753,13 @@
>       @cp -vRL gtk/res/Aliases $(DESTDIR)$(NETSURF_GTK_RESOURCES)
>       @cp -vrL gtk/res/docs $(DESTDIR)/$(NETSURF_GTK_RESOURCES)
>       gzip -9v < gtk/res/messages > $(DESTDIR)$(NETSURF_GTK_RESOURCES)messages
> +     gzip -9v < gtk/res/SearchEngines > 
> $(DESTDIR)$(NETSURF_GTK_RESOURCES)SearchEngines
>       gzip -9v < gtk/res/downloads.glade > 
> $(DESTDIR)$(NETSURF_GTK_RESOURCES)downloads.glade
>       gzip -9v < gtk/res/netsurf.glade > 
> $(DESTDIR)$(NETSURF_GTK_RESOURCES)netsurf.glade
>       gzip -9v < gtk/res/options.glade > 
> $(DESTDIR)$(NETSURF_GTK_RESOURCES)options.glade
>       gzip -9v < gtk/res/history.glade > 
> $(DESTDIR)$(NETSURF_GTK_RESOURCES)history.glade
> +     gzip -9v < gtk/res/toolbar.glade >
> +     $(DESTDIR)$(NETSURF_GTK_RESOURCES)toolbar.glade
>       gzip -9v < gtk/res/source.glade > 
> $(DESTDIR)$(NETSURF_GTK_RESOURCES)source.glade
>  
>  install-beos: NetSurf

>
>
> Conflicted files
>
>
>
>
> Removed files
>
>
>

Mark

http://www.halloit.com

Key ID 046B65CF


Reply via email to