summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--!NetSurf/Resources/en/Templates,fecbin5443 -> 5940 bytes
-rw-r--r--!NetSurf/Resources/fr/Templates,fecbin5556 -> 6053 bytes
-rw-r--r--riscos/dialog.c3
-rw-r--r--riscos/gui.h8
-rw-r--r--riscos/menus.c46
5 files changed, 53 insertions, 4 deletions
diff --git a/!NetSurf/Resources/en/Templates,fec b/!NetSurf/Resources/en/Templates,fec
index fbc0c62fd..21e5baf53 100644
--- a/!NetSurf/Resources/en/Templates,fec
+++ b/!NetSurf/Resources/en/Templates,fec
Binary files differ
diff --git a/!NetSurf/Resources/fr/Templates,fec b/!NetSurf/Resources/fr/Templates,fec
index 6ac4d6099..2fea5b232 100644
--- a/!NetSurf/Resources/fr/Templates,fec
+++ b/!NetSurf/Resources/fr/Templates,fec
Binary files differ
diff --git a/riscos/dialog.c b/riscos/dialog.c
index ba369aa1f..72d58decb 100644
--- a/riscos/dialog.c
+++ b/riscos/dialog.c
@@ -29,7 +29,7 @@ wimp_w dialog_info, dialog_saveas, dialog_config, dialog_config_br,
#ifdef WITH_AUTH
dialog_401li,
#endif
- dialog_zoom;
+ dialog_zoom, dialog_pageinfo;
;
wimp_menu* theme_menu = NULL;
@@ -75,6 +75,7 @@ void ro_gui_dialog_init(void)
dialog_config_prox = ro_gui_dialog_create("config_prox");
dialog_config_th = ro_gui_dialog_create("config_th");
dialog_zoom = ro_gui_dialog_create("zoom");
+ dialog_pageinfo = ro_gui_dialog_create("pageinfo");
set_browser_choices();
set_proxy_choices();
diff --git a/riscos/gui.h b/riscos/gui.h
index 940e32f23..bbeb5fa17 100644
--- a/riscos/gui.h
+++ b/riscos/gui.h
@@ -20,7 +20,7 @@
#define THEMES_DIR "<NetSurf$Dir>.Themes"
extern wimp_w dialog_info, dialog_saveas, dialog_config, dialog_config_br,
- dialog_config_prox, dialog_config_th, dialog_zoom;
+ dialog_config_prox, dialog_config_th, dialog_zoom, dialog_pageinfo;
extern wimp_w history_window;
extern wimp_menu *iconbar_menu, *browser_menu, *combo_menu, *theme_menu;
extern int iconbar_menu_height;
@@ -252,4 +252,10 @@ void schedule_run(void);
#define ICON_SAVE_OK 2
#define ICON_SAVE_CANCEL 3
+#define ICON_PAGEINFO_TITLE 0
+#define ICON_PAGEINFO_URL 1
+#define ICON_PAGEINFO_ENC 2
+#define ICON_PAGEINFO_TYPE 3
+#define ICON_PAGEINFO_ICON 4
+
#endif
diff --git a/riscos/menus.c b/riscos/menus.c
index b317edb6a..d5790e730 100644
--- a/riscos/menus.c
+++ b/riscos/menus.c
@@ -13,6 +13,7 @@
#include <stdlib.h>
#include <string.h>
+#include "libxml/encoding.h"
#include "oslib/wimp.h"
#include "netsurf/desktop/gui.h"
#include "netsurf/riscos/constdata.h"
@@ -25,6 +26,7 @@
static void translate_menu(wimp_menu *menu);
+static void ro_gui_menu_pageinfo(wimp_message_menu_warning *warning);
static wimp_menu *current_menu;
static int current_menu_x, current_menu_y;
@@ -61,7 +63,7 @@ static wimp_menu *browser_export_menu = (wimp_menu *) &export_menu;
static wimp_MENU(5) page_menu = {
{ "Page" }, 7,2,7,0, 200, 44, 0,
{
- { 0, wimp_NO_SUB_MENU, DEFAULT_FLAGS, { "Info" } },
+ { wimp_MENU_GIVE_WARNING, wimp_NO_SUB_MENU, DEFAULT_FLAGS, { "Info" } },
{ wimp_MENU_GIVE_WARNING, wimp_NO_SUB_MENU, DEFAULT_FLAGS, { "Save" } },
{ wimp_MENU_GIVE_WARNING, wimp_NO_SUB_MENU, DEFAULT_FLAGS, { "SaveComp" } },
{ 0, (wimp_menu *) &export_menu, DEFAULT_FLAGS, { "Export" } },
@@ -126,6 +128,7 @@ void ro_gui_menus_init(void)
translate_menu(browser_view_menu);
iconbar_menu->entries[0].sub_menu = (wimp_menu *) dialog_info;
+ browser_page_menu->entries[0].sub_menu = (wimp_menu*) dialog_pageinfo;
browser_page_menu->entries[1].sub_menu = (wimp_menu *) dialog_saveas;
browser_page_menu->entries[2].sub_menu = (wimp_menu *) dialog_saveas;
browser_export_menu->entries[0].sub_menu = (wimp_menu *) dialog_saveas;
@@ -288,7 +291,7 @@ void ro_gui_menu_selection(wimp_selection *selection)
/**
- * Handle Message_MenuWarning by opening the save dialog.
+ * Handle Message_MenuWarning
*/
void ro_gui_menu_warning(wimp_message_menu_warning *warning)
@@ -316,6 +319,10 @@ void ro_gui_menu_warning(wimp_message_menu_warning *warning)
gui_current_save_type = GUI_SAVE_COMPLETE;
break;
+ case 0: /* Page info */
+ ro_gui_menu_pageinfo(warning);
+ return;
+
case 1:
default: /* Save */
gui_current_save_type = GUI_SAVE_SOURCE;
@@ -377,3 +384,38 @@ void ro_gui_menu_prepare_save(struct content *c)
ro_gui_set_icon_string(dialog_saveas, ICON_SAVE_ICON, icon);
ro_gui_set_icon_string(dialog_saveas, ICON_SAVE_PATH, name);
}
+
+void ro_gui_menu_pageinfo(wimp_message_menu_warning *warning)
+{
+ struct content *c = current_gui->data.browser.bw->current_content;
+ os_error *error;
+ char icon_buf[20] = "file_xxx";
+ const char *icon = icon_buf;
+ const char *title = "-";
+ const char *url = "-";
+ const char *enc = "-";
+ const char *mime = "-";
+
+ if (c->title != 0) title = c->title;
+ if (c->url != 0) url = c->url;
+ if (c->mime_type != 0) mime = c->mime_type;
+
+ sprintf(icon_buf, "file_%x", ro_content_filetype(c));
+
+ if (c->type == CONTENT_HTML) {
+ enc = xmlGetCharEncodingName(c->data.html.encoding);
+ }
+
+ ro_gui_set_icon_string(dialog_pageinfo, ICON_PAGEINFO_ICON, icon);
+ ro_gui_set_icon_string(dialog_pageinfo, ICON_PAGEINFO_TITLE, title);
+ ro_gui_set_icon_string(dialog_pageinfo, ICON_PAGEINFO_URL, url);
+ ro_gui_set_icon_string(dialog_pageinfo, ICON_PAGEINFO_ENC, enc);
+ ro_gui_set_icon_string(dialog_pageinfo, ICON_PAGEINFO_TYPE, mime);
+
+ error = xwimp_create_sub_menu((wimp_menu *) dialog_pageinfo,
+ warning->pos.x, warning->pos.y);
+ if (error) {
+ LOG(("0x%x: %s\n", error->errnum, error->errmess));
+ warn_user(error->errmess);
+ }
+}