summaryrefslogtreecommitdiff
path: root/amiga/menu.c
diff options
context:
space:
mode:
Diffstat (limited to 'amiga/menu.c')
-rwxr-xr-xamiga/menu.c144
1 files changed, 125 insertions, 19 deletions
diff --git a/amiga/menu.c b/amiga/menu.c
index b116e1b39..58a4d5115 100755
--- a/amiga/menu.c
+++ b/amiga/menu.c
@@ -103,6 +103,9 @@ static void ami_menu_item_browser_find(struct Hook *hook, APTR window, struct In
static void ami_menu_item_browser_localhistory(struct Hook *hook, APTR window, struct IntuiMessage *msg);
static void ami_menu_item_browser_globalhistory(struct Hook *hook, APTR window, struct IntuiMessage *msg);
static void ami_menu_item_browser_cookies(struct Hook *hook, APTR window, struct IntuiMessage *msg);
+static void ami_menu_item_browser_foreimg(struct Hook *hook, APTR window, struct IntuiMessage *msg);
+static void ami_menu_item_browser_backimg(struct Hook *hook, APTR window, struct IntuiMessage *msg);
+static void ami_menu_item_browser_enablejs(struct Hook *hook, APTR window, struct IntuiMessage *msg);
static void ami_menu_item_browser_scale_decrease(struct Hook *hook, APTR window, struct IntuiMessage *msg);
static void ami_menu_item_browser_scale_normal(struct Hook *hook, APTR window, struct IntuiMessage *msg);
static void ami_menu_item_browser_scale_increase(struct Hook *hook, APTR window, struct IntuiMessage *msg);
@@ -325,25 +328,44 @@ void ami_init_menulabs(struct gui_window_2 *gwin)
gwin->menu_hook[37].h_Entry = (HOOKFUNC)ami_menu_item_browser_scale_increase;
gwin->menutype[38] = NM_ITEM;
- gwin->menulab[38] = ami_utf8_easy((char *)messages_get("Redraw"));
- gwin->menu_hook[38].h_Entry = (HOOKFUNC)ami_menu_item_browser_redraw;
-
- gwin->menutype[39] = NM_TITLE;
- gwin->menulab[39] = ami_utf8_easy((char *)messages_get("Hotlist"));
-
- gwin->menutype[40] = NM_ITEM;
- gwin->menulab[40] = ami_utf8_easy((char *)messages_get("HotlistAdd"));
- gwin->menukey[40] = 'B';
- gwin->menu_hook[40].h_Entry = (HOOKFUNC)ami_menu_item_hotlist_add;
-
+ gwin->menulab[38] = ami_utf8_easy((char *)messages_get("Images"));
+
+ gwin->menutype[39] = NM_SUB;
+ gwin->menulab[39] = ami_utf8_easy((char *)messages_get("ForeImg"));
+ gwin->menu_hook[39].h_Entry = (HOOKFUNC)ami_menu_item_browser_foreimg;
+
+ gwin->menutype[40] = NM_SUB;
+ gwin->menulab[40] = ami_utf8_easy((char *)messages_get("BackImg"));
+ gwin->menu_hook[40].h_Entry = (HOOKFUNC)ami_menu_item_browser_backimg;
+
gwin->menutype[41] = NM_ITEM;
- gwin->menulab[41] = ami_utf8_easy((char *)messages_get("HotlistShowNS"));
- gwin->menukey[41] = 'H';
- gwin->menu_hook[41].h_Entry = (HOOKFUNC)ami_menu_item_hotlist_show;
+ gwin->menulab[41] = ami_utf8_easy((char *)messages_get("EnableJS"));
+ gwin->menu_hook[41].h_Entry = (HOOKFUNC)ami_menu_item_browser_enablejs;
+ gwin->menukey[41] = 'J';
gwin->menutype[42] = NM_ITEM;
gwin->menulab[42] = NM_BARLABEL;
+ gwin->menutype[43] = NM_ITEM;
+ gwin->menulab[43] = ami_utf8_easy((char *)messages_get("Redraw"));
+ gwin->menu_hook[43].h_Entry = (HOOKFUNC)ami_menu_item_browser_redraw;
+
+ gwin->menutype[44] = NM_TITLE;
+ gwin->menulab[44] = ami_utf8_easy((char *)messages_get("Hotlist"));
+
+ gwin->menutype[45] = NM_ITEM;
+ gwin->menulab[45] = ami_utf8_easy((char *)messages_get("HotlistAdd"));
+ gwin->menukey[45] = 'B';
+ gwin->menu_hook[45].h_Entry = (HOOKFUNC)ami_menu_item_hotlist_add;
+
+ gwin->menutype[46] = NM_ITEM;
+ gwin->menulab[46] = ami_utf8_easy((char *)messages_get("HotlistShowNS"));
+ gwin->menukey[46] = 'H';
+ gwin->menu_hook[46].h_Entry = (HOOKFUNC)ami_menu_item_hotlist_show;
+
+ gwin->menutype[47] = NM_ITEM;
+ gwin->menulab[47] = NM_BARLABEL;
+
gwin->menutype[AMI_MENU_HOTLIST_MAX + 1] = NM_TITLE;
gwin->menulab[AMI_MENU_HOTLIST_MAX + 1] = ami_utf8_easy((char *)messages_get("Settings"));
@@ -415,9 +437,23 @@ struct NewMenu *ami_create_menu(struct gui_window_2 *gwin)
#ifndef WITH_PDF_EXPORT
gwin->menu[9].nm_Flags = NM_ITEMDISABLED;
#endif
+#if !defined(WITH_JS) && !defined(WITH_MOZJS)
+ gwin->menu[41].nm_Flags = NM_ITEMDISABLED | CHECKIT | MENUTOGGLE;
+#else
+ gwin->menu[41].nm_Flags = CHECKIT | MENUTOGGLE;
+ if(nsoption_bool(enable_javascript) == true)
+ gwin->menu[41].nm_Flags |= CHECKED;
+#endif
gwin->menu[15].nm_Flags = NM_ITEMDISABLED;
+ gwin->menu[39].nm_Flags = CHECKIT | MENUTOGGLE;
+ if(nsoption_bool(foreground_images) == true)
+ gwin->menu[39].nm_Flags |= CHECKED;
+ gwin->menu[40].nm_Flags = CHECKIT | MENUTOGGLE;
+ if(nsoption_bool(background_images) == true)
+ gwin->menu[40].nm_Flags |= CHECKED;
+
ami_menu_scan(ami_tree_get_tree(hotlist_window), false, gwin);
ami_menu_arexx_scan(gwin);
@@ -497,8 +533,8 @@ ULONG ami_menu_scan(struct tree *tree, bool count, struct gui_window_2 *gwin)
struct node *root = tree_node_get_child(tree_get_root(tree));
struct node *node;
struct node_element *element;
- static WORD gen = 0;
- static ULONG item;
+ WORD gen = 0;
+ ULONG item;
item = AMI_MENU_HOTLIST;
@@ -506,17 +542,17 @@ ULONG ami_menu_scan(struct tree *tree, bool count, struct gui_window_2 *gwin)
{
element = tree_node_find_element(node, TREE_ELEMENT_TITLE, NULL);
if(!element) element = tree_node_find_element(node, TREE_ELEMENT_TITLE, NULL);
- if(element && (strcmp(tree_node_element_get_text(element),"Menu")==0))
+ if(element && (strcmp(tree_node_element_get_text(element), messages_get("HotlistMenu")) == 0))
{
// found menu
- ami_menu_scan_2(tree,tree_node_get_child(node),&gen,&item,count,gwin);
+ ami_menu_scan_2(tree, tree_node_get_child(node), &gen, &item, count, gwin);
}
}
return(item - AMI_MENU_HOTLIST);
}
-void ami_menu_scan_2(struct tree *tree,struct node *root,WORD *gen,
+void ami_menu_scan_2(struct tree *tree, struct node *root, WORD *gen,
ULONG *item, bool count, struct gui_window_2 *gwin)
{
struct node *tempnode;
@@ -565,6 +601,40 @@ void ami_menu_scan_2(struct tree *tree,struct node *root,WORD *gen,
*gen = *gen - 1;
}
+void ami_menu_update_checked(struct gui_window_2 *gwin)
+{
+ struct Menu *menustrip;
+
+ GetAttr(WINDOW_MenuStrip, gwin->objects[OID_MAIN], (ULONG *)&menustrip);
+ if(!menustrip) return;
+
+ if(nsoption_bool(enable_javascript) == true) {
+ if((ItemAddress(menustrip, AMI_MENU_JS)->Flags & CHECKED) == 0)
+ ItemAddress(menustrip, AMI_MENU_JS)->Flags ^= CHECKED;
+ } else {
+ if(ItemAddress(menustrip, AMI_MENU_JS)->Flags & CHECKED)
+ ItemAddress(menustrip, AMI_MENU_JS)->Flags ^= CHECKED;
+ }
+
+ if(nsoption_bool(foreground_images) == true) {
+ if((ItemAddress(menustrip, AMI_MENU_FOREIMG)->Flags & CHECKED) == 0)
+ ItemAddress(menustrip, AMI_MENU_FOREIMG)->Flags ^= CHECKED;
+ } else {
+ if(ItemAddress(menustrip, AMI_MENU_FOREIMG)->Flags & CHECKED)
+ ItemAddress(menustrip, AMI_MENU_FOREIMG)->Flags ^= CHECKED;
+ }
+
+ if(nsoption_bool(background_images) == true) {
+ if((ItemAddress(menustrip, AMI_MENU_BACKIMG)->Flags & CHECKED) == 0)
+ ItemAddress(menustrip, AMI_MENU_BACKIMG)->Flags ^= CHECKED;
+ } else {
+ if(ItemAddress(menustrip, AMI_MENU_BACKIMG)->Flags & CHECKED)
+ ItemAddress(menustrip, AMI_MENU_BACKIMG)->Flags ^= CHECKED;
+ }
+
+ ResetMenuStrip(gwin->win, menustrip);
+}
+
void ami_menu_update_disabled(struct gui_window *g, hlcache_handle *c)
{
struct Window *win = g->shared->win;
@@ -824,6 +894,42 @@ static void ami_menu_item_browser_cookies(struct Hook *hook, APTR window, struct
ami_tree_open(cookies_window,AMI_TREE_COOKIES);
}
+static void ami_menu_item_browser_foreimg(struct Hook *hook, APTR window, struct IntuiMessage *msg)
+{
+ struct Menu *menustrip;
+ bool checked = false;
+
+ GetAttr(WINDOW_MenuStrip, (Object *)window, (ULONG *)&menustrip);
+ if(ItemAddress(menustrip, msg->Code)->Flags & CHECKED) checked = true;
+
+ nsoption_set_bool(foreground_images, checked);
+ ami_menu_check_toggled = true;
+}
+
+static void ami_menu_item_browser_backimg(struct Hook *hook, APTR window, struct IntuiMessage *msg)
+{
+ struct Menu *menustrip;
+ bool checked = false;
+
+ GetAttr(WINDOW_MenuStrip, (Object *)window, (ULONG *)&menustrip);
+ if(ItemAddress(menustrip, msg->Code)->Flags & CHECKED) checked = true;
+
+ nsoption_set_bool(background_images, checked);
+ ami_menu_check_toggled = true;
+}
+
+static void ami_menu_item_browser_enablejs(struct Hook *hook, APTR window, struct IntuiMessage *msg)
+{
+ struct Menu *menustrip;
+ bool checked = false;
+
+ GetAttr(WINDOW_MenuStrip, (Object *)window, (ULONG *)&menustrip);
+ if(ItemAddress(menustrip, msg->Code)->Flags & CHECKED) checked = true;
+
+ nsoption_set_bool(enable_javascript, checked);
+ ami_menu_check_toggled = true;
+}
+
static void ami_menu_item_browser_scale_decrease(struct Hook *hook, APTR window, struct IntuiMessage *msg)
{
struct gui_window_2 *gwin;