summaryrefslogtreecommitdiff
diff options
authorVincent Sanders <vince@kyllikki.org>2025-03-19 23:28:26 +0000
committerVincent Sanders <vince@kyllikki.org>2025-03-19 23:28:26 +0000
commit2bea36a53e01a8e9b4c08070ee9ec8db8e05eb23 (patch)
tree127043bb61afe429a33d83e98da96a0656977819
parent501c67686df79396bbfba00c5ab835903fe67775 (diff)
downloadnetsurf-master.tar.gz
netsurf-master.tar.bz2
Add search configuration to RISC OS frontendHEADmaster
-rw-r--r--frontends/riscos/Makefile2
-rw-r--r--[-rwxr-xr-x]frontends/riscos/appdir/Resources/Sprites,ff9bin77336 -> 84100 bytes
-rw-r--r--frontends/riscos/configure.c3
-rw-r--r--frontends/riscos/configure/con_search.c126
-rw-r--r--frontends/riscos/configure/configure.h1
-rw-r--r--frontends/riscos/menus.c73
-rw-r--r--frontends/riscos/menus.h2
-rw-r--r--frontends/riscos/templates/de112
-rw-r--r--frontends/riscos/templates/en112
-rw-r--r--frontends/riscos/templates/fr112
-rw-r--r--frontends/riscos/templates/nl112
-rw-r--r--resources/FatMessages7
12 files changed, 659 insertions, 3 deletions
diff --git a/frontends/riscos/Makefile b/frontends/riscos/Makefile
index 265f9289d..d78f025d5 100644
--- a/frontends/riscos/Makefile
+++ b/frontends/riscos/Makefile
@@ -99,7 +99,7 @@ S_FRONTEND := \
throbber.c url_bar.c) \
$(addprefix configure/,con_cache.c con_connect.c con_content.c \
con_fonts.c con_home.c con_image.c con_inter.c con_language.c \
- con_secure.c con_theme.c)
+ con_secure.c con_theme.c con_search.c)
# This is the final source build list
# Note this is deliberately *not* expanded here as common and image
diff --git a/frontends/riscos/appdir/Resources/Sprites,ff9 b/frontends/riscos/appdir/Resources/Sprites,ff9
index bdbd6e877..b9289ad42 100755..100644
--- a/frontends/riscos/appdir/Resources/Sprites,ff9
+++ b/frontends/riscos/appdir/Resources/Sprites,ff9
Binary files differ
diff --git a/frontends/riscos/configure.c b/frontends/riscos/configure.c
index f4dced55b..d1e006f2e 100644
--- a/frontends/riscos/configure.c
+++ b/frontends/riscos/configure.c
@@ -117,6 +117,9 @@ void ro_gui_configure_initialise(void)
ro_gui_configure_register("con_secure",
ro_gui_options_security_initialise,
ro_gui_wimp_event_finalise);
+ ro_gui_configure_register("con_search",
+ ro_gui_options_search_initialise,
+ ro_gui_wimp_event_finalise);
/* translate the icons */
if (!ro_gui_configure_translate())
diff --git a/frontends/riscos/configure/con_search.c b/frontends/riscos/configure/con_search.c
new file mode 100644
index 000000000..eb3a4bf5e
--- /dev/null
+++ b/frontends/riscos/configure/con_search.c
@@ -0,0 +1,126 @@
+/*
+ * Copyright 2025 Vincent Sanders <vince@netsurf-browser.org>
+ *
+ * This file is part of NetSurf, http://www.netsurf-browser.org/
+ *
+ * NetSurf is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; version 2 of the License.
+ *
+ * NetSurf is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <stdbool.h>
+#include <sys/types.h>
+
+#include "utils/nsoption.h"
+#include "utils/log.h"
+#include "utils/messages.h"
+
+#include "desktop/searchweb.h"
+
+#include "riscos/gui.h"
+#include "riscos/menus.h"
+#include "riscos/wimp.h"
+#include "riscos/wimp_event.h"
+#include "riscos/configure.h"
+#include "riscos/configure/configure.h"
+#include "riscos/dialog.h"
+
+
+#define SEARCH_WEB_URLBAR 2
+#define SEARCH_WEB_PROVIDER_FIELD 4
+#define SEARCH_WEB_PROVIDER_GRIGHT 5
+#define SEARCH_DEFAULT_BUTTON 6
+#define SEARCH_CANCEL_BUTTON 7
+#define SEARCH_OK_BUTTON 8
+
+
+static void ro_gui_options_search_default(wimp_pointer *pointer)
+{
+ const char *defprovider;
+ search_web_iterate_providers(-1, &defprovider);
+ if (defprovider == NULL) {
+ defprovider = "DuckDuckGo";
+ }
+
+ ro_gui_set_icon_selected_state(pointer->w, SEARCH_WEB_URLBAR,
+ nsoption_bool(search_url_bar));
+
+ ro_gui_set_icon_string(pointer->w, SEARCH_WEB_PROVIDER_FIELD,
+ defprovider, true);
+}
+
+
+static bool ro_gui_options_search_ok(wimp_w w)
+{
+ char *provider;
+ const char* defprovider;
+
+ nsoption_set_bool(search_url_bar,
+ ro_gui_get_icon_selected_state(w, SEARCH_WEB_URLBAR));
+
+ provider = strdup(ro_gui_get_icon_string(w, SEARCH_WEB_PROVIDER_FIELD));
+ if (provider) {
+ /* set search provider */
+ search_web_select_provider(provider);
+
+ /* set to default option if the default provider is selected */
+ if ((search_web_iterate_providers(-1, &defprovider) != -1) &&
+ (strcmp(provider, defprovider) == 0)) {
+ free(provider);
+ /* use default option */
+ provider = NULL;
+ }
+
+ /* set the option which takes owership of the provider allocation */
+ nsoption_set_charp(search_web_provider, provider);
+
+ } else {
+ NSLOG(netsurf, INFO, "No memory to duplicate search code");
+ ro_warn_user("NoMemory", 0);
+ }
+
+ ro_gui_save_options();
+ return true;
+}
+
+
+bool ro_gui_options_search_initialise(wimp_w w)
+{
+ const char* defprovider;
+
+ /* set the current values */
+ ro_gui_set_icon_selected_state(w, SEARCH_WEB_URLBAR,
+ nsoption_bool(search_url_bar));
+
+ search_web_iterate_providers(-1, &defprovider);
+ if (defprovider == NULL) {
+ defprovider = "DuckDuckGo";
+ }
+
+ ro_gui_set_icon_string(w, SEARCH_WEB_PROVIDER_FIELD,
+ nsoption_charp(search_web_provider) ?
+ nsoption_charp(search_web_provider) :
+ defprovider, true);
+
+ /* initialise all functions for a newly created window */
+ ro_gui_wimp_event_register_checkbox(w, SEARCH_WEB_URLBAR);
+ ro_gui_wimp_event_register_menu_gright(w, SEARCH_WEB_PROVIDER_FIELD,
+ SEARCH_WEB_PROVIDER_GRIGHT, search_provider_menu);
+ ro_gui_wimp_event_register_button(w, SEARCH_DEFAULT_BUTTON,
+ ro_gui_options_search_default);
+ ro_gui_wimp_event_register_cancel(w, SEARCH_CANCEL_BUTTON);
+ ro_gui_wimp_event_register_ok(w, SEARCH_OK_BUTTON,
+ ro_gui_options_search_ok);
+ ro_gui_wimp_event_set_help_prefix(w, "HelpSearchConfig");
+ ro_gui_wimp_event_memorise(w);
+ return true;
+
+}
diff --git a/frontends/riscos/configure/configure.h b/frontends/riscos/configure/configure.h
index e5cdb392e..f1dbfadc4 100644
--- a/frontends/riscos/configure/configure.h
+++ b/frontends/riscos/configure/configure.h
@@ -36,6 +36,7 @@ bool ro_gui_options_image_initialise(wimp_w w);
void ro_gui_options_image_finalise(wimp_w w);
bool ro_gui_options_interface_initialise(wimp_w w);
bool ro_gui_options_language_initialise(wimp_w w);
+bool ro_gui_options_search_initialise(wimp_w w);
bool ro_gui_options_security_initialise(wimp_w w);
bool ro_gui_options_theme_initialise(wimp_w w);
void ro_gui_options_theme_finalise(wimp_w w);
diff --git a/frontends/riscos/menus.c b/frontends/riscos/menus.c
index a6e978a6c..c4083e2b1 100644
--- a/frontends/riscos/menus.c
+++ b/frontends/riscos/menus.c
@@ -38,6 +38,7 @@
#include "utils/messages.h"
#include "utils/utf8.h"
#include "desktop/cookie_manager.h"
+#include "desktop/searchweb.h"
#include "riscos/dialog.h"
#include "riscos/configure.h"
@@ -101,7 +102,7 @@ wimp_w current_menu_window;
/** Icon that owns the current menu (only valid for popup menus) */
static wimp_i current_menu_icon;
/** The available menus */
-wimp_menu *image_quality_menu, *proxy_type_menu, *languages_menu;
+wimp_menu *image_quality_menu, *proxy_type_menu, *languages_menu, *search_provider_menu;
/* the values given in PRM 3-157 for how to check menus/windows are
* incorrect so we use a hack of checking if the sub-menu has bit 0
@@ -113,6 +114,74 @@ wimp_menu *image_quality_menu, *proxy_type_menu, *languages_menu;
* Create menu structures.
*/
+/**
+ * create a search provider menu.
+ *
+ * The menu is limited to 40 entries which ought to be sufficient
+ */
+static wimp_menu *ro_gui_menu_init_search_provider(void)
+{
+ static struct ns_menu search_provider_definition = {
+ "SearchProvider", {
+ { "searchprovider00", NO_ACTION, 0 },
+ { "searchprovider01", NO_ACTION, 0 },
+ { "searchprovider02", NO_ACTION, 0 },
+ { "searchprovider03", NO_ACTION, 0 },
+ { "searchprovider04", NO_ACTION, 0 },
+ { "searchprovider05", NO_ACTION, 0 },
+ { "searchprovider06", NO_ACTION, 0 },
+ { "searchprovider07", NO_ACTION, 0 },
+ { "searchprovider08", NO_ACTION, 0 },
+ { "searchprovider09", NO_ACTION, 0 },
+ { "searchprovider10", NO_ACTION, 0 },
+ { "searchprovider11", NO_ACTION, 0 },
+ { "searchprovider12", NO_ACTION, 0 },
+ { "searchprovider13", NO_ACTION, 0 },
+ { "searchprovider14", NO_ACTION, 0 },
+ { "searchprovider15", NO_ACTION, 0 },
+ { "searchprovider16", NO_ACTION, 0 },
+ { "searchprovider17", NO_ACTION, 0 },
+ { "searchprovider18", NO_ACTION, 0 },
+ { "searchprovider19", NO_ACTION, 0 },
+ { "searchprovider20", NO_ACTION, 0 },
+ { "searchprovider21", NO_ACTION, 0 },
+ { "searchprovider22", NO_ACTION, 0 },
+ { "searchprovider23", NO_ACTION, 0 },
+ { "searchprovider24", NO_ACTION, 0 },
+ { "searchprovider25", NO_ACTION, 0 },
+ { "searchprovider26", NO_ACTION, 0 },
+ { "searchprovider27", NO_ACTION, 0 },
+ { "searchprovider28", NO_ACTION, 0 },
+ { "searchprovider29", NO_ACTION, 0 },
+ { "searchprovider30", NO_ACTION, 0 },
+ { "searchprovider31", NO_ACTION, 0 },
+ { "searchprovider32", NO_ACTION, 0 },
+ { "searchprovider33", NO_ACTION, 0 },
+ { "searchprovider34", NO_ACTION, 0 },
+ { "searchprovider35", NO_ACTION, 0 },
+ { "searchprovider36", NO_ACTION, 0 },
+ { "searchprovider37", NO_ACTION, 0 },
+ { "searchprovider38", NO_ACTION, 0 },
+ { "searchprovider39", NO_ACTION, 0 },
+ { NULL, 0, 0 }
+ }
+ };
+ ssize_t iter = -1;
+ const char *name;
+ unsigned int provider = 0;
+
+ iter = search_web_iterate_providers(iter, &name);
+ while ((iter != -1) &&
+ (search_provider_definition.entries[provider].text != NULL)) {
+ messages_add_key_value(search_provider_definition.entries[provider].text, name);
+ provider++;
+ iter = search_web_iterate_providers(iter, &name);
+ }
+ search_provider_definition.entries[provider].text = NULL;
+
+ return ro_gui_menu_define_menu(&search_provider_definition);
+}
+
void ro_gui_menu_init(void)
{
/* image quality menu */
@@ -196,6 +265,8 @@ void ro_gui_menu_init(void)
}
};
languages_menu = ro_gui_menu_define_menu(&lang_definition);
+
+ search_provider_menu = ro_gui_menu_init_search_provider();
}
diff --git a/frontends/riscos/menus.h b/frontends/riscos/menus.h
index 7faa87ed6..ffff52040 100644
--- a/frontends/riscos/menus.h
+++ b/frontends/riscos/menus.h
@@ -19,7 +19,7 @@
#ifndef _NETSURF_RISCOS_MENUS_H_
#define _NETSURF_RISCOS_MENUS_H_
-extern wimp_menu *image_quality_menu, *proxy_type_menu, *languages_menu;
+extern wimp_menu *image_quality_menu, *proxy_type_menu, *languages_menu, *search_provider_menu;
extern wimp_menu *current_menu;
diff --git a/frontends/riscos/templates/de b/frontends/riscos/templates/de
index b5710d467..6c055635b 100644
--- a/frontends/riscos/templates/de
+++ b/frontends/riscos/templates/de
@@ -1032,6 +1032,118 @@ wimp_window {
}
wimp_window {
+ template_name:"con_search"
+ visible:1574,956,2318,1256
+ xscroll:0
+ yscroll:0
+ next:wimp_TOP
+ window_flags:wimp_WINDOW_MOVEABLE | wimp_WINDOW_AUTO_REDRAW | wimp_WINDOW_BACK_ICON | wimp_WINDOW_TITLE_ICON | wimp_WINDOW_NEW_FORMAT
+ title_fg:wimp_COLOUR_BLACK
+ title_bg:wimp_COLOUR_LIGHT_GREY
+ work_fg:wimp_COLOUR_BLACK
+ work_bg:wimp_COLOUR_VERY_LIGHT_GREY
+ scroll_outer:wimp_COLOUR_MID_LIGHT_GREY
+ scroll_inner:wimp_COLOUR_VERY_LIGHT_GREY
+ highlight_bg:wimp_COLOUR_CREAM
+ extra_flags:
+ extent:0,-300,744,0
+ title_flags:wimp_ICON_TEXT | wimp_ICON_BORDER | wimp_ICON_HCENTRED | wimp_ICON_VCENTRED | wimp_ICON_FILLED
+ work_flags:
+ sprite_area:&1
+ xmin:744
+ ymin:300
+ text_only:"Search"
+ wimp_icon {
+ extent:16,-188,728,-24
+ icon_flags:wimp_ICON_TEXT | wimp_ICON_BORDER | wimp_ICON_HCENTRED | wimp_ICON_VCENTRED | wimp_ICON_INDIRECTED
+ icon_esg:0
+ icon_fg:wimp_COLOUR_BLACK
+ icon_bg:wimp_COLOUR_VERY_LIGHT_GREY
+ text.text:""
+ text.size:*
+ text.validation:"R4"
+ }
+ wimp_icon {
+ extent:32,-52,284,-8
+ icon_flags:wimp_ICON_TEXT | wimp_ICON_SPRITE | wimp_ICON_VCENTRED | wimp_ICON_INDIRECTED
+ icon_esg:0
+ icon_fg:wimp_COLOUR_BLACK
+ icon_bg:wimp_COLOUR_VERY_LIGHT_GREY
+ text_and_sprite.text:" Web Search "
+ text_and_sprite.size:16
+ text_and_sprite.validation:""
+ }
+ wimp_icon {
+ extent:32,-104,568,-60
+ icon_flags:wimp_ICON_TEXT | wimp_ICON_SPRITE | wimp_ICON_VCENTRED | wimp_ICON_INDIRECTED | wimp_BUTTON_RADIO
+ icon_esg:0
+ icon_fg:wimp_COLOUR_BLACK
+ icon_bg:wimp_COLOUR_VERY_LIGHT_GREY
+ text_and_sprite.text:"Search from URL bar"
+ text_and_sprite.size:*
+ text_and_sprite.validation:"Soptoff,opton"
+ }
+ wimp_icon {
+ extent:44,-168,204,-124
+ icon_flags:wimp_ICON_TEXT | wimp_ICON_VCENTRED | wimp_ICON_RJUSTIFIED
+ icon_esg:0
+ icon_fg:wimp_COLOUR_BLACK
+ icon_bg:wimp_COLOUR_VERY_LIGHT_GREY
+ text_only:"Provider"
+ }
+ wimp_icon {
+ extent:208,-172,660,-120
+ icon_flags:wimp_ICON_TEXT | wimp_ICON_BORDER | wimp_ICON_HCENTRED | wimp_ICON_VCENTRED | wimp_ICON_FILLED | wimp_ICON_INDIRECTED
+ icon_esg:0
+ icon_fg:wimp_COLOUR_BLACK
+ icon_bg:wimp_COLOUR_VERY_LIGHT_GREY
+ text.text:"8008135"
+ text.size:256
+ text.validation:"R2"
+ }
+ wimp_icon {
+ extent:668,-168,712,-124
+ icon_flags:wimp_ICON_TEXT | wimp_ICON_SPRITE | wimp_ICON_VCENTRED | wimp_ICON_INDIRECTED | wimp_ICON_RJUSTIFIED | wimp_BUTTON_CLICK
+ icon_esg:0
+ icon_fg:wimp_COLOUR_BLACK
+ icon_bg:wimp_COLOUR_VERY_LIGHT_GREY
+ text_and_sprite.text:""
+ text_and_sprite.size:13
+ text_and_sprite.validation:"R5;sgright,pgright"
+ }
+ wimp_icon {
+ extent:24,-272,188,-220
+ icon_flags:wimp_ICON_TEXT | wimp_ICON_BORDER | wimp_ICON_HCENTRED | wimp_ICON_VCENTRED | wimp_ICON_FILLED | wimp_ICON_INDIRECTED | wimp_BUTTON_CLICK
+ icon_esg:0
+ icon_fg:wimp_COLOUR_BLACK
+ icon_bg:wimp_COLOUR_VERY_LIGHT_GREY
+ text.text:"Default"
+ text.size:*
+ text.validation:"R5,3"
+ }
+ wimp_icon {
+ extent:360,-272,524,-220
+ icon_flags:wimp_ICON_TEXT | wimp_ICON_BORDER | wimp_ICON_HCENTRED | wimp_ICON_VCENTRED | wimp_ICON_FILLED | wimp_ICON_INDIRECTED | wimp_BUTTON_CLICK
+ icon_esg:0
+ icon_fg:wimp_COLOUR_BLACK
+ icon_bg:wimp_COLOUR_VERY_LIGHT_GREY
+ text.text:"Cancel"
+ text.size:*
+ text.validation:"R5,3"
+ }
+ wimp_icon {
+ extent:540,-280,724,-212
+ icon_flags:wimp_ICON_TEXT | wimp_ICON_BORDER | wimp_ICON_HCENTRED | wimp_ICON_VCENTRED | wimp_ICON_FILLED | wimp_ICON_INDIRECTED | wimp_BUTTON_CLICK
+ icon_esg:0
+ icon_fg:wimp_COLOUR_BLACK
+ icon_bg:wimp_COLOUR_VERY_LIGHT_GREY
+ text.text:"Set"
+ text.size:*
+ text.validation:"R6,3"
+ }
+}
+
+wimp_window {
template_name:"con_theme"
visible:408,370,1316,974
xscroll:0
diff --git a/frontends/riscos/templates/en b/frontends/riscos/templates/en
index 6ea18a859..717fd816b 100644
--- a/frontends/riscos/templates/en
+++ b/frontends/riscos/templates/en
@@ -1242,6 +1242,118 @@ wimp_window {
}
wimp_window {
+ template_name:"con_search"
+ visible:1574,956,2318,1256
+ xscroll:0
+ yscroll:0
+ next:wimp_TOP
+ window_flags:wimp_WINDOW_MOVEABLE | wimp_WINDOW_AUTO_REDRAW | wimp_WINDOW_BACK_ICON | wimp_WINDOW_TITLE_ICON | wimp_WINDOW_NEW_FORMAT
+ title_fg:wimp_COLOUR_BLACK
+ title_bg:wimp_COLOUR_LIGHT_GREY
+ work_fg:wimp_COLOUR_BLACK
+ work_bg:wimp_COLOUR_VERY_LIGHT_GREY
+ scroll_outer:wimp_COLOUR_MID_LIGHT_GREY
+ scroll_inner:wimp_COLOUR_VERY_LIGHT_GREY
+ highlight_bg:wimp_COLOUR_CREAM
+ extra_flags:
+ extent:0,-300,744,0
+ title_flags:wimp_ICON_TEXT | wimp_ICON_BORDER | wimp_ICON_HCENTRED | wimp_ICON_VCENTRED | wimp_ICON_FILLED
+ work_flags:
+ sprite_area:&1
+ xmin:744
+ ymin:300
+ text_only:"Search"
+ wimp_icon {
+ extent:16,-188,728,-24
+ icon_flags:wimp_ICON_TEXT | wimp_ICON_BORDER | wimp_ICON_HCENTRED | wimp_ICON_VCENTRED | wimp_ICON_INDIRECTED
+ icon_esg:0
+ icon_fg:wimp_COLOUR_BLACK
+ icon_bg:wimp_COLOUR_VERY_LIGHT_GREY
+ text.text:""
+ text.size:*
+ text.validation:"R4"
+ }
+ wimp_icon {
+ extent:32,-52,284,-8
+ icon_flags:wimp_ICON_TEXT | wimp_ICON_SPRITE | wimp_ICON_VCENTRED | wimp_ICON_INDIRECTED
+ icon_esg:0
+ icon_fg:wimp_COLOUR_BLACK
+ icon_bg:wimp_COLOUR_VERY_LIGHT_GREY
+ text_and_sprite.text:" Web Search "
+ text_and_sprite.size:16
+ text_and_sprite.validation:""
+ }
+ wimp_icon {
+ extent:32,-104,568,-60
+ icon_flags:wimp_ICON_TEXT | wimp_ICON_SPRITE | wimp_ICON_VCENTRED | wimp_ICON_INDIRECTED | wimp_BUTTON_RADIO
+ icon_esg:0
+ icon_fg:wimp_COLOUR_BLACK
+ icon_bg:wimp_COLOUR_VERY_LIGHT_GREY
+ text_and_sprite.text:"Search from URL bar"
+ text_and_sprite.size:*
+ text_and_sprite.validation:"Soptoff,opton"
+ }
+ wimp_icon {
+ extent:44,-168,204,-124
+ icon_flags:wimp_ICON_TEXT | wimp_ICON_VCENTRED | wimp_ICON_RJUSTIFIED
+ icon_esg:0
+ icon_fg:wimp_COLOUR_BLACK
+ icon_bg:wimp_COLOUR_VERY_LIGHT_GREY
+ text_only:"Provider"
+ }
+ wimp_icon {
+ extent:208,-172,660,-120
+ icon_flags:wimp_ICON_TEXT | wimp_ICON_BORDER | wimp_ICON_HCENTRED | wimp_ICON_VCENTRED | wimp_ICON_FILLED | wimp_ICON_INDIRECTED
+ icon_esg:0
+ icon_fg:wimp_COLOUR_BLACK
+ icon_bg:wimp_COLOUR_VERY_LIGHT_GREY
+ text.text:"8008135"
+ text.size:256
+ text.validation:"R2"
+ }
+ wimp_icon {
+ extent:668,-168,712,-124
+ icon_flags:wimp_ICON_TEXT | wimp_ICON_SPRITE | wimp_ICON_VCENTRED | wimp_ICON_INDIRECTED | wimp_ICON_RJUSTIFIED | wimp_BUTTON_CLICK
+ icon_esg:0
+ icon_fg:wimp_COLOUR_BLACK
+ icon_bg:wimp_COLOUR_VERY_LIGHT_GREY
+ text_and_sprite.text:""
+ text_and_sprite.size:13
+ text_and_sprite.validation:"R5;sgright,pgright"
+ }
+ wimp_icon {
+ extent:24,-272,188,-220
+ icon_flags:wimp_ICON_TEXT | wimp_ICON_BORDER | wimp_ICON_HCENTRED | wimp_ICON_VCENTRED | wimp_ICON_FILLED | wimp_ICON_INDIRECTED | wimp_BUTTON_CLICK
+ icon_esg:0
+ icon_fg:wimp_COLOUR_BLACK
+ icon_bg:wimp_COLOUR_VERY_LIGHT_GREY
+ text.text:"Default"
+ text.size:*
+ text.validation:"R5,3"
+ }
+ wimp_icon {
+ extent:360,-272,524,-220
+ icon_flags:wimp_ICON_TEXT | wimp_ICON_BORDER | wimp_ICON_HCENTRED | wimp_ICON_VCENTRED | wimp_ICON_FILLED | wimp_ICON_INDIRECTED | wimp_BUTTON_CLICK
+ icon_esg:0
+ icon_fg:wimp_COLOUR_BLACK
+ icon_bg:wimp_COLOUR_VERY_LIGHT_GREY
+ text.text:"Cancel"
+ text.size:*
+ text.validation:"R5,3"
+ }
+ wimp_icon {
+ extent:540,-280,724,-212
+ icon_flags:wimp_ICON_TEXT | wimp_ICON_BORDER | wimp_ICON_HCENTRED | wimp_ICON_VCENTRED | wimp_ICON_FILLED | wimp_ICON_INDIRECTED | wimp_BUTTON_CLICK
+ icon_esg:0
+ icon_fg:wimp_COLOUR_BLACK
+ icon_bg:wimp_COLOUR_VERY_LIGHT_GREY
+ text.text:"Set"
+ text.size:*
+ text.validation:"R6,3"
+ }
+}
+
+wimp_window {
template_name:"con_theme"
visible:410,38,1318,642
xscroll:0
diff --git a/frontends/riscos/templates/fr b/frontends/riscos/templates/fr
index e2741df4a..053555be8 100644
--- a/frontends/riscos/templates/fr
+++ b/frontends/riscos/templates/fr
@@ -1032,6 +1032,118 @@ wimp_window {
}
wimp_window {
+ template_name:"con_search"
+ visible:1574,956,2318,1256
+ xscroll:0
+ yscroll:0
+ next:wimp_TOP
+ window_flags:wimp_WINDOW_MOVEABLE | wimp_WINDOW_AUTO_REDRAW | wimp_WINDOW_BACK_ICON | wimp_WINDOW_TITLE_ICON | wimp_WINDOW_NEW_FORMAT
+ title_fg:wimp_COLOUR_BLACK
+ title_bg:wimp_COLOUR_LIGHT_GREY
+ work_fg:wimp_COLOUR_BLACK
+ work_bg:wimp_COLOUR_VERY_LIGHT_GREY
+ scroll_outer:wimp_COLOUR_MID_LIGHT_GREY
+ scroll_inner:wimp_COLOUR_VERY_LIGHT_GREY
+ highlight_bg:wimp_COLOUR_CREAM
+ extra_flags:
+ extent:0,-300,744,0
+ title_flags:wimp_ICON_TEXT | wimp_ICON_BORDER | wimp_ICON_HCENTRED | wimp_ICON_VCENTRED | wimp_ICON_FILLED
+ work_flags:
+ sprite_area:&1
+ xmin:744
+ ymin:300
+ text_only:"Search"
+ wimp_icon {
+ extent:16,-188,728,-24
+ icon_flags:wimp_ICON_TEXT | wimp_ICON_BORDER | wimp_ICON_HCENTRED | wimp_ICON_VCENTRED | wimp_ICON_INDIRECTED
+ icon_esg:0
+ icon_fg:wimp_COLOUR_BLACK
+ icon_bg:wimp_COLOUR_VERY_LIGHT_GREY
+ text.text:""
+ text.size:*
+ text.validation:"R4"
+ }
+ wimp_icon {
+ extent:32,-52,284,-8
+ icon_flags:wimp_ICON_TEXT | wimp_ICON_SPRITE | wimp_ICON_VCENTRED | wimp_ICON_INDIRECTED
+ icon_esg:0
+ icon_fg:wimp_COLOUR_BLACK
+ icon_bg:wimp_COLOUR_VERY_LIGHT_GREY
+ text_and_sprite.text:" Web Search "
+ text_and_sprite.size:16
+ text_and_sprite.validation:""
+ }
+ wimp_icon {
+ extent:32,-104,568,-60
+ icon_flags:wimp_ICON_TEXT | wimp_ICON_SPRITE | wimp_ICON_VCENTRED | wimp_ICON_INDIRECTED | wimp_BUTTON_RADIO
+ icon_esg:0
+ icon_fg:wimp_COLOUR_BLACK
+ icon_bg:wimp_COLOUR_VERY_LIGHT_GREY
+ text_and_sprite.text:"Search from URL bar"
+ text_and_sprite.size:*
+ text_and_sprite.validation:"Soptoff,opton"
+ }
+ wimp_icon {
+ extent:44,-168,204,-124
+ icon_flags:wimp_ICON_TEXT | wimp_ICON_VCENTRED | wimp_ICON_RJUSTIFIED
+ icon_esg:0
+ icon_fg:wimp_COLOUR_BLACK
+ icon_bg:wimp_COLOUR_VERY_LIGHT_GREY
+ text_only:"Provider"
+ }
+ wimp_icon {
+ extent:208,-172,660,-120
+ icon_flags:wimp_ICON_TEXT | wimp_ICON_BORDER | wimp_ICON_HCENTRED | wimp_ICON_VCENTRED | wimp_ICON_FILLED | wimp_ICON_INDIRECTED
+ icon_esg:0
+ icon_fg:wimp_COLOUR_BLACK
+ icon_bg:wimp_COLOUR_VERY_LIGHT_GREY
+ text.text:"8008135"
+ text.size:256
+ text.validation:"R2"
+ }
+ wimp_icon {
+ extent:668,-168,712,-124
+ icon_flags:wimp_ICON_TEXT | wimp_ICON_SPRITE | wimp_ICON_VCENTRED | wimp_ICON_INDIRECTED | wimp_ICON_RJUSTIFIED | wimp_BUTTON_CLICK
+ icon_esg:0
+ icon_fg:wimp_COLOUR_BLACK
+ icon_bg:wimp_COLOUR_VERY_LIGHT_GREY
+ text_and_sprite.text:""
+ text_and_sprite.size:13
+ text_and_sprite.validation:"R5;sgright,pgright"
+ }
+ wimp_icon {
+ extent:24,-272,188,-220
+ icon_flags:wimp_ICON_TEXT | wimp_ICON_BORDER | wimp_ICON_HCENTRED | wimp_ICON_VCENTRED | wimp_ICON_FILLED | wimp_ICON_INDIRECTED | wimp_BUTTON_CLICK
+ icon_esg:0
+ icon_fg:wimp_COLOUR_BLACK
+ icon_bg:wimp_COLOUR_VERY_LIGHT_GREY
+ text.text:"Default"
+ text.size:*
+ text.validation:"R5,3"
+ }
+ wimp_icon {
+ extent:360,-272,524,-220
+ icon_flags:wimp_ICON_TEXT | wimp_ICON_BORDER | wimp_ICON_HCENTRED | wimp_ICON_VCENTRED | wimp_ICON_FILLED | wimp_ICON_INDIRECTED | wimp_BUTTON_CLICK
+ icon_esg:0
+ icon_fg:wimp_COLOUR_BLACK
+ icon_bg:wimp_COLOUR_VERY_LIGHT_GREY
+ text.text:"Cancel"
+ text.size:*
+ text.validation:"R5,3"
+ }
+ wimp_icon {
+ extent:540,-280,724,-212
+ icon_flags:wimp_ICON_TEXT | wimp_ICON_BORDER | wimp_ICON_HCENTRED | wimp_ICON_VCENTRED | wimp_ICON_FILLED | wimp_ICON_INDIRECTED | wimp_BUTTON_CLICK
+ icon_esg:0
+ icon_fg:wimp_COLOUR_BLACK
+ icon_bg:wimp_COLOUR_VERY_LIGHT_GREY
+ text.text:"Set"
+ text.size:*
+ text.validation:"R6,3"
+ }
+}
+
+wimp_window {
template_name:"con_theme"
visible:408,370,1316,974
xscroll:0
diff --git a/frontends/riscos/templates/nl b/frontends/riscos/templates/nl
index 24b176891..9f486d1c7 100644
--- a/frontends/riscos/templates/nl
+++ b/frontends/riscos/templates/nl
@@ -1246,6 +1246,118 @@ wimp_window {
}
wimp_window {
+ template_name:"con_search"
+ visible:1574,956,2318,1256
+ xscroll:0
+ yscroll:0
+ next:wimp_TOP
+ window_flags:wimp_WINDOW_MOVEABLE | wimp_WINDOW_AUTO_REDRAW | wimp_WINDOW_BACK_ICON | wimp_WINDOW_TITLE_ICON | wimp_WINDOW_NEW_FORMAT
+ title_fg:wimp_COLOUR_BLACK
+ title_bg:wimp_COLOUR_LIGHT_GREY
+ work_fg:wimp_COLOUR_BLACK
+ work_bg:wimp_COLOUR_VERY_LIGHT_GREY
+ scroll_outer:wimp_COLOUR_MID_LIGHT_GREY
+ scroll_inner:wimp_COLOUR_VERY_LIGHT_GREY
+ highlight_bg:wimp_COLOUR_CREAM
+ extra_flags:
+ extent:0,-300,744,0
+ title_flags:wimp_ICON_TEXT | wimp_ICON_BORDER | wimp_ICON_HCENTRED | wimp_ICON_VCENTRED | wimp_ICON_FILLED
+ work_flags:
+ sprite_area:&1
+ xmin:744
+ ymin:300
+ text_only:"Search"
+ wimp_icon {
+ extent:16,-188,728,-24
+ icon_flags:wimp_ICON_TEXT | wimp_ICON_BORDER | wimp_ICON_HCENTRED | wimp_ICON_VCENTRED | wimp_ICON_INDIRECTED
+ icon_esg:0
+ icon_fg:wimp_COLOUR_BLACK
+ icon_bg:wimp_COLOUR_VERY_LIGHT_GREY
+ text.text:""
+ text.size:*
+ text.validation:"R4"
+ }
+ wimp_icon {
+ extent:32,-52,284,-8
+ icon_flags:wimp_ICON_TEXT | wimp_ICON_SPRITE | wimp_ICON_VCENTRED | wimp_ICON_INDIRECTED
+ icon_esg:0
+ icon_fg:wimp_COLOUR_BLACK
+ icon_bg:wimp_COLOUR_VERY_LIGHT_GREY
+ text_and_sprite.text:" Web Search "
+ text_and_sprite.size:16
+ text_and_sprite.validation:""
+ }
+ wimp_icon {
+ extent:32,-104,568,-60
+ icon_flags:wimp_ICON_TEXT | wimp_ICON_SPRITE | wimp_ICON_VCENTRED | wimp_ICON_INDIRECTED | wimp_BUTTON_RADIO
+ icon_esg:0
+ icon_fg:wimp_COLOUR_BLACK
+ icon_bg:wimp_COLOUR_VERY_LIGHT_GREY
+ text_and_sprite.text:"Search from URL bar"
+ text_and_sprite.size:*
+ text_and_sprite.validation:"Soptoff,opton"
+ }
+ wimp_icon {
+ extent:44,-168,204,-124
+ icon_flags:wimp_ICON_TEXT | wimp_ICON_VCENTRED | wimp_ICON_RJUSTIFIED
+ icon_esg:0
+ icon_fg:wimp_COLOUR_BLACK
+ icon_bg:wimp_COLOUR_VERY_LIGHT_GREY
+ text_only:"Provider"
+ }
+ wimp_icon {
+ extent:208,-172,660,-120
+ icon_flags:wimp_ICON_TEXT | wimp_ICON_BORDER | wimp_ICON_HCENTRED | wimp_ICON_VCENTRED | wimp_ICON_FILLED | wimp_ICON_INDIRECTED
+ icon_esg:0
+ icon_fg:wimp_COLOUR_BLACK
+ icon_bg:wimp_COLOUR_VERY_LIGHT_GREY
+ text.text:"8008135"
+ text.size:256
+ text.validation:"R2"
+ }
+ wimp_icon {
+ extent:668,-168,712,-124
+ icon_flags:wimp_ICON_TEXT | wimp_ICON_SPRITE | wimp_ICON_VCENTRED | wimp_ICON_INDIRECTED | wimp_ICON_RJUSTIFIED | wimp_BUTTON_CLICK
+ icon_esg:0
+ icon_fg:wimp_COLOUR_BLACK
+ icon_bg:wimp_COLOUR_VERY_LIGHT_GREY
+ text_and_sprite.text:""
+ text_and_sprite.size:13
+ text_and_sprite.validation:"R5;sgright,pgright"
+ }
+ wimp_icon {
+ extent:24,-272,188,-220
+ icon_flags:wimp_ICON_TEXT | wimp_ICON_BORDER | wimp_ICON_HCENTRED | wimp_ICON_VCENTRED | wimp_ICON_FILLED | wimp_ICON_INDIRECTED | wimp_BUTTON_CLICK
+ icon_esg:0
+ icon_fg:wimp_COLOUR_BLACK
+ icon_bg:wimp_COLOUR_VERY_LIGHT_GREY
+ text.text:"Default"
+ text.size:*
+ text.validation:"R5,3"
+ }
+ wimp_icon {
+ extent:360,-272,524,-220
+ icon_flags:wimp_ICON_TEXT | wimp_ICON_BORDER | wimp_ICON_HCENTRED | wimp_ICON_VCENTRED | wimp_ICON_FILLED | wimp_ICON_INDIRECTED | wimp_BUTTON_CLICK
+ icon_esg:0
+ icon_fg:wimp_COLOUR_BLACK
+ icon_bg:wimp_COLOUR_VERY_LIGHT_GREY
+ text.text:"Cancel"
+ text.size:*
+ text.validation:"R5,3"
+ }
+ wimp_icon {
+ extent:540,-280,724,-212
+ icon_flags:wimp_ICON_TEXT | wimp_ICON_BORDER | wimp_ICON_HCENTRED | wimp_ICON_VCENTRED | wimp_ICON_FILLED | wimp_ICON_INDIRECTED | wimp_BUTTON_CLICK
+ icon_esg:0
+ icon_fg:wimp_COLOUR_BLACK
+ icon_bg:wimp_COLOUR_VERY_LIGHT_GREY
+ text.text:"Set"
+ text.size:*
+ text.validation:"R6,3"
+ }
+}
+
+wimp_window {
template_name:"con_theme"
visible:410,38,1318,642
xscroll:0
diff --git a/resources/FatMessages b/resources/FatMessages
index 7825cb395..7e7e29594 100644
--- a/resources/FatMessages
+++ b/resources/FatMessages
@@ -8211,6 +8211,13 @@ it.all.con_memory:Memoria
nl.all.con_memory:Geheugen
zh_CN.all.con_memory:内存
+en.all.con_search:Search
+de.all.con_search:Suchen
+fr.all.con_search:Recherche
+it.all.con_search:Cerca
+nl.all.con_search:Zoeken
+zh_CN.all.con_search:查找
+
en.all.con_secure:Security
de.all.con_secure:Sicherheit
fr.all.con_secure:Sécurité
close