summaryrefslogtreecommitdiff
path: root/amiga/context_menu.c
diff options
context:
space:
mode:
authorChris Young <chris@unsatisfactorysoftware.co.uk>2011-10-09 17:37:57 +0000
committerChris Young <chris@unsatisfactorysoftware.co.uk>2011-10-09 17:37:57 +0000
commitded3c1983f3fce772425a64ee0f206dca9a378ce (patch)
treed6f0ec046850f2c5b28b2749466e5e14516be239 /amiga/context_menu.c
parent5d06dbf97454ffde02045af8c1ef7e721f02280b (diff)
downloadnetsurf-ded3c1983f3fce772425a64ee0f206dca9a378ce.tar.gz
netsurf-ded3c1983f3fce772425a64ee0f206dca9a378ce.tar.bz2
page context menu (mostly non-functioning)
svn path=/trunk/netsurf/; revision=13025
Diffstat (limited to 'amiga/context_menu.c')
-rwxr-xr-xamiga/context_menu.c78
1 files changed, 74 insertions, 4 deletions
diff --git a/amiga/context_menu.c b/amiga/context_menu.c
index bc8deb23c..fdf94415f 100755
--- a/amiga/context_menu.c
+++ b/amiga/context_menu.c
@@ -58,6 +58,7 @@ static uint32 ami_popup_hook(struct Hook *hook,Object *item,APTR reserved);
enum {
CMID_SELECTFILE,
CMID_COPYURL,
+ CMID_URLOPEN,
CMID_URLOPENWIN,
CMID_URLOPENTAB,
CMID_SAVEURL,
@@ -85,6 +86,11 @@ enum {
CMID_NAVFORWARD,
CMID_NAVRELOAD,
CMID_NAVSTOP,
+ CMID_PAGEOPEN,
+ CMID_PAGESAVE,
+ CMID_PAGESAVECOMPLETE,
+ CMID_PAGEHOTLIST,
+ CMID_PAGECLOSE,
CMSUB_OBJECT,
CMSUB_URL,
@@ -118,11 +124,18 @@ void ami_context_menu_init(void)
ctxmenulab[CMID_SAVEOBJ] = ami_utf8_easy((char *)messages_get("SaveAs"));
ctxmenulab[CMID_SAVEIFFOBJ] = ami_utf8_easy((char *)messages_get("SaveIFF"));
+ ctxmenulab[CMID_PAGEOPEN] = ami_utf8_easy((char *)messages_get("OpenFile"));
+ ctxmenulab[CMID_PAGESAVE] = ami_utf8_easy((char *)messages_get("SaveAs"));
+ ctxmenulab[CMID_PAGESAVECOMPLETE] = ami_utf8_easy((char *)messages_get("SaveComplete"));
+ ctxmenulab[CMID_PAGEHOTLIST] = ami_utf8_easy((char *)messages_get("HotlistAdd"));
+ ctxmenulab[CMID_PAGECLOSE] = ami_utf8_easy((char *)messages_get("Close"));
+
ctxmenulab[CMID_FRAMEWIN] = ami_utf8_easy((char *)messages_get("FrameNewWin"));
ctxmenulab[CMID_FRAMETAB] = ami_utf8_easy((char *)messages_get("FrameNewTab"));
ctxmenulab[CMID_FRAMESHOW] = ami_utf8_easy((char *)messages_get("FrameOnly"));
ctxmenulab[CMID_SAVEURL] = ami_utf8_easy((char *)messages_get("LinkDload"));
+ ctxmenulab[CMID_URLOPEN] = ami_utf8_easy((char *)messages_get("Open"));
ctxmenulab[CMID_URLOPENWIN] = ami_utf8_easy((char *)messages_get("LinkNewWin"));
ctxmenulab[CMID_URLOPENTAB] = ami_utf8_easy((char *)messages_get("LinkNewTab"));
@@ -141,6 +154,7 @@ void ami_context_menu_init(void)
ctxmenulab[CMID_PLUGINCMD] = ami_utf8_easy((char *)messages_get("ExternalApp"));
+ ctxmenulab[CMSUB_PAGE] = ami_utf8_easy((char *)messages_get("Page"));
ctxmenulab[CMSUB_FRAME] = ami_utf8_easy((char *)messages_get("Frame"));
ctxmenulab[CMSUB_OBJECT] = ami_utf8_easy((char *)messages_get("Object"));
ctxmenulab[CMSUB_NAVIGATE] = ami_utf8_easy((char *)messages_get("Navigate"));
@@ -154,6 +168,7 @@ void ami_context_menu_init(void)
void ami_context_menu_add_submenu(Object *ctxmenuobj, ULONG cmsub, void *userdata)
{
/*
+ * CMSUB_PAGE - userdata = hlcache_object *
* CMSUB_FRAME - userdata = hlcache_object *
* CMSUB_URL - userdata = char *
* CMSUB_OBJECT - userdata = hlcache_object *
@@ -166,6 +181,47 @@ void ami_context_menu_add_submenu(Object *ctxmenuobj, ULONG cmsub, void *userdat
switch(cmsub)
{
+ case CMSUB_PAGE:
+ IDoMethod(ctxmenuobj, PM_INSERT,
+ NewObject(POPUPMENU_GetItemClass(), NULL,
+ PMIA_Title, (ULONG)ctxmenulab[CMSUB_PAGE],
+ PMSIMPLESUB,
+ PMA_AddItem, NewObject(POPUPMENU_GetItemClass(), NULL,
+ PMIA_Title, (ULONG)ctxmenulab[CMID_PAGEOPEN],
+ PMIA_ID, CMID_PAGEOPEN,
+ PMIA_UserData, userdata,
+ TAG_DONE),
+ PMA_AddItem, NewObject(POPUPMENU_GetItemClass(), NULL,
+ PMIA_Title, (ULONG)ctxmenulab[CMID_PAGESAVE],
+ PMIA_ID, CMID_PAGESAVE,
+ PMIA_UserData, userdata,
+ TAG_DONE),
+ PMA_AddItem, NewObject(POPUPMENU_GetItemClass(), NULL,
+ PMIA_Title, (ULONG)ctxmenulab[CMID_PAGESAVECOMPLETE],
+ PMIA_ID, CMID_PAGESAVECOMPLETE,
+ PMIA_UserData, userdata,
+ TAG_DONE),
+ PMA_AddItem,NewObject(POPUPMENU_GetItemClass(), NULL,
+ PMIA_Title, ~0,
+ TAG_DONE),
+ PMA_AddItem, NewObject(POPUPMENU_GetItemClass(), NULL,
+ PMIA_Title, (ULONG)ctxmenulab[CMID_PAGECLOSE],
+ PMIA_ID, CMID_PAGECLOSE,
+ PMIA_UserData, userdata,
+ TAG_DONE),
+ PMA_AddItem,NewObject(POPUPMENU_GetItemClass(), NULL,
+ PMIA_Title, ~0,
+ TAG_DONE),
+ PMA_AddItem,NewObject(POPUPMENU_GetItemClass(), NULL,
+ PMIA_Title, (ULONG)ctxmenulab[CMID_PAGEHOTLIST],
+ PMIA_ID, CMID_PAGEHOTLIST,
+ PMIA_UserData, nsurl_access(content_get_url(userdata)),
+ TAG_DONE),
+ TAG_DONE),
+ TAG_DONE),
+ ~0);
+ break;
+
case CMSUB_FRAME:
IDoMethod(ctxmenuobj,PM_INSERT,
NewObject(POPUPMENU_GetItemClass(), NULL,
@@ -174,12 +230,12 @@ void ami_context_menu_add_submenu(Object *ctxmenuobj, ULONG cmsub, void *userdat
PMA_AddItem, NewObject(POPUPMENU_GetItemClass(), NULL,
PMIA_Title, (ULONG)ctxmenulab[CMID_FRAMEWIN],
PMIA_ID, CMID_FRAMEWIN,
- PMIA_UserData, content_get_url(userdata),
+ PMIA_UserData, nsurl_access(content_get_url(userdata)),
TAG_DONE),
PMA_AddItem, NewObject(POPUPMENU_GetItemClass(), NULL,
PMIA_Title, (ULONG)ctxmenulab[CMID_FRAMETAB],
PMIA_ID, CMID_FRAMETAB,
- PMIA_UserData, content_get_url(userdata),
+ PMIA_UserData, nsurl_access(content_get_url(userdata)),
TAG_DONE),
PMA_AddItem, NewObject(POPUPMENU_GetItemClass(), NULL,
PMIA_Title, (ULONG)ctxmenulab[CMID_FRAMESHOW],
@@ -200,7 +256,7 @@ void ami_context_menu_add_submenu(Object *ctxmenuobj, ULONG cmsub, void *userdat
PMA_AddItem, NewObject(POPUPMENU_GetItemClass(), NULL,
PMIA_Title, (ULONG)ctxmenulab[CMID_COPYOBJ],
PMIA_ID, CMID_FRAMECOPYURL,
- PMIA_UserData, content_get_url(userdata),
+ PMIA_UserData, nsurl_access(content_get_url(userdata)),
TAG_DONE),
PMA_AddItem,NewObject(POPUPMENU_GetItemClass(), NULL,
PMIA_Title, ~0,
@@ -208,7 +264,7 @@ void ami_context_menu_add_submenu(Object *ctxmenuobj, ULONG cmsub, void *userdat
PMA_AddItem, NewObject(POPUPMENU_GetItemClass(), NULL,
PMIA_Title, (ULONG)ctxmenulab[CMID_SAVEOBJ],
PMIA_ID, CMID_FRAMESAVE,
- PMIA_UserData, content_get_url(userdata),
+ PMIA_UserData, userdata,
TAG_DONE),
TAG_DONE),
TAG_DONE),
@@ -261,6 +317,11 @@ void ami_context_menu_add_submenu(Object *ctxmenuobj, ULONG cmsub, void *userdat
PMIA_Title, (ULONG)ctxmenulab[CMSUB_URL],
PMSIMPLESUB,
PMA_AddItem, NewObject(POPUPMENU_GetItemClass(), NULL,
+ PMIA_Title, (ULONG)ctxmenulab[CMID_URLOPEN],
+ PMIA_ID, CMID_URLOPEN,
+ PMIA_UserData, userdata,
+ TAG_DONE),
+ PMA_AddItem, NewObject(POPUPMENU_GetItemClass(), NULL,
PMIA_Title, (ULONG)ctxmenulab[CMID_URLOPENWIN],
PMIA_ID, CMID_URLOPENWIN,
PMIA_UserData, userdata,
@@ -525,6 +586,9 @@ void ami_context_menu_show(struct gui_window_2 *gwin,int x,int y)
{
browser_window_get_contextual_content(gwin->bw, x, y, &ccdata);
+ ami_context_menu_add_submenu(ctxmenuobj, CMSUB_PAGE, cc);
+ menuhascontent = true;
+
if(ccdata.main && (ccdata.main != cc))
{
ami_context_menu_add_submenu(ctxmenuobj, CMSUB_FRAME, ccdata.main);
@@ -673,6 +737,11 @@ static uint32 ami_context_menu_hook(struct Hook *hook,Object *item,APTR reserved
nsurl_access(content_get_url(gwin->bw->current_content)), true);
break;
+ case CMID_URLOPEN:
+ browser_window_go(gwin->bw, userdata,
+ nsurl_access(content_get_url(gwin->bw->current_content)), true);
+ break;
+
case CMID_FRAMERELOAD:
case CMID_RELOADOBJ:
object = (struct hlcache_handle *)userdata;
@@ -697,6 +766,7 @@ static uint32 ami_context_menu_hook(struct Hook *hook,Object *item,APTR reserved
break;
case CMID_SAVEOBJ:
+ case CMID_PAGESAVE:
object = (struct hlcache_handle *)userdata;
if(AslRequestTags(savereq,