From 0b6b01f08f13f22bdd53e51a525b118131626551 Mon Sep 17 00:00:00 2001 From: Chris Young Date: Sun, 25 Sep 2011 18:44:10 +0000 Subject: Add context menu items for frames svn path=/trunk/netsurf/; revision=12877 --- !NetSurf/Resources/de/Messages | 5 ++ !NetSurf/Resources/en/Messages | 5 ++ !NetSurf/Resources/fr/Messages | 5 ++ !NetSurf/Resources/it/Messages | 5 ++ !NetSurf/Resources/nl/Messages | 5 ++ amiga/context_menu.c | 105 +++++++++++++++++++++++++++++++++++++++-- 6 files changed, 126 insertions(+), 4 deletions(-) diff --git a/!NetSurf/Resources/de/Messages b/!NetSurf/Resources/de/Messages index f471bb8c6..027e59e47 100644 --- a/!NetSurf/Resources/de/Messages +++ b/!NetSurf/Resources/de/Messages @@ -300,6 +300,11 @@ CopyClip:Inhalt ins Clipboard SaveAs:Speichern als... SaveIFF:Speichern als IFF... ObjShow:Zeige Objekt +Frame:Frame +FrameNewWin:Show in new window +FrameNewTab:Show in new tab +FrameOnly:Show only this frame + SelectFile:Datei auswählen... ExternalApp:Open in external application diff --git a/!NetSurf/Resources/en/Messages b/!NetSurf/Resources/en/Messages index 22475bd86..8da169590 100644 --- a/!NetSurf/Resources/en/Messages +++ b/!NetSurf/Resources/en/Messages @@ -302,6 +302,11 @@ CopyClip:Copy to clipboard SaveAs:Save as... SaveIFF:Save as IFF... ObjShow:Show object +Frame:Frame +FrameNewWin:Show in new window +FrameNewTab:Show in new tab +FrameOnly:Show only this frame + SelectFile:Select file... ExternalApp:Open in external application diff --git a/!NetSurf/Resources/fr/Messages b/!NetSurf/Resources/fr/Messages index 6ee56689e..b6c42eb37 100644 --- a/!NetSurf/Resources/fr/Messages +++ b/!NetSurf/Resources/fr/Messages @@ -300,6 +300,11 @@ CopyClip:Copy to clipboard SaveAs:Save as... SaveIFF:Save as IFF... ObjShow:Show object +Frame:Frame +FrameNewWin:Show in new window +FrameNewTab:Show in new tab +FrameOnly:Show only this frame + SelectFile:Select file... ExternalApp:Open in external application diff --git a/!NetSurf/Resources/it/Messages b/!NetSurf/Resources/it/Messages index 5a64ae1fe..cbde5aaf6 100644 --- a/!NetSurf/Resources/it/Messages +++ b/!NetSurf/Resources/it/Messages @@ -304,6 +304,11 @@ CopyClip:Copia nella clipboard SaveAs:Salva come... SaveIFF:Salva come IFF... ObjShow:Mostra oggetto +Frame:Frame +FrameNewWin:Show in new window +FrameNewTab:Show in new tab +FrameOnly:Show only this frame + SelectFile:Seleziona file... ExternalApp:Apri con un'applicazione esterna diff --git a/!NetSurf/Resources/nl/Messages b/!NetSurf/Resources/nl/Messages index 89ca8b0f4..f8160d2e7 100644 --- a/!NetSurf/Resources/nl/Messages +++ b/!NetSurf/Resources/nl/Messages @@ -300,6 +300,11 @@ CopyClip:Copy to clipboard SaveAs:Save as... SaveIFF:Save as IFF... ObjShow:Show object +Frame:Frame +FrameNewWin:Show in new window +FrameNewTab:Show in new tab +FrameOnly:Show only this frame + SelectFile:Select file... ExternalApp:Open in external application diff --git a/amiga/context_menu.c b/amiga/context_menu.c index 91b85dcf0..f6acdf822 100755 --- a/amiga/context_menu.c +++ b/amiga/context_menu.c @@ -1,5 +1,5 @@ /* - * Copyright 2008-9 Chris Young + * Copyright 2008 - 2011 Chris Young * * This file is part of NetSurf, http://www.netsurf-browser.org/ * @@ -66,16 +66,25 @@ enum { CMID_CLIPOBJ, CMID_SAVEOBJ, CMID_SAVEIFFOBJ, + CMID_RELOADOBJ, CMID_SELALL, CMID_SELCLEAR, CMID_SELCUT, CMID_SELCOPY, CMID_SELPASTE, CMID_SELSEARCH, + CMID_FRAMEWIN, + CMID_FRAMETAB, + CMID_FRAMESHOW, + CMID_FRAMERELOAD, + CMID_FRAMECOPYURL, + CMID_FRAMESAVE, CMID_PLUGINCMD, CMSUB_OBJECT, CMSUB_URL, CMSUB_SEL, + CMSUB_PAGE, + CMSUB_FRAME, CMID_HISTORY, CMID_LAST }; @@ -96,11 +105,16 @@ void ami_context_menu_init(void) ctxmenulab[CMID_SELECTFILE] = ami_utf8_easy((char *)messages_get("SelectFile")); ctxmenulab[CMID_COPYURL] = ami_utf8_easy((char *)messages_get("CopyURL")); ctxmenulab[CMID_SHOWOBJ] = ami_utf8_easy((char *)messages_get("ObjShow")); + ctxmenulab[CMID_RELOADOBJ] = ami_utf8_easy((char *)messages_get("ObjReload")); ctxmenulab[CMID_COPYOBJ] = ami_utf8_easy((char *)messages_get("CopyURL")); ctxmenulab[CMID_CLIPOBJ] = ami_utf8_easy((char *)messages_get("CopyClip")); ctxmenulab[CMID_SAVEOBJ] = ami_utf8_easy((char *)messages_get("SaveAs")); ctxmenulab[CMID_SAVEIFFOBJ] = ami_utf8_easy((char *)messages_get("SaveIFF")); + 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_URLOPENWIN] = ami_utf8_easy((char *)messages_get("LinkNewWin")); ctxmenulab[CMID_URLOPENTAB] = ami_utf8_easy((char *)messages_get("LinkNewTab")); @@ -114,6 +128,7 @@ void ami_context_menu_init(void) ctxmenulab[CMID_PLUGINCMD] = ami_utf8_easy((char *)messages_get("ExternalApp")); + ctxmenulab[CMSUB_FRAME] = ami_utf8_easy((char *)messages_get("Frame")); ctxmenulab[CMSUB_OBJECT] = ami_utf8_easy((char *)messages_get("Object")); ctxmenulab[CMSUB_URL] = ami_utf8_easy((char *)messages_get("Link")); ctxmenulab[CMSUB_SEL] = ami_utf8_easy((char *)messages_get("Selection")); @@ -171,7 +186,7 @@ void ami_context_menu_show(struct gui_window_2 *gwin,int x,int y) int box_x=0; int box_y=0; bool menuhascontent = false; - bool no_url = true, no_obj = true, no_sel = true; + bool no_url = true, no_obj = true, no_sel = true, no_frame = true; ULONG ret = 0; struct contextual_content ccdata; @@ -238,6 +253,59 @@ void ami_context_menu_show(struct gui_window_2 *gwin,int x,int y) { browser_window_get_contextual_content(gwin->bw, x, y, &ccdata); + if(no_frame && (ccdata.main != gwin->bw->current_content)) + { + IDoMethod(ctxmenuobj,PM_INSERT, + NewObject(POPUPMENU_GetItemClass(), NULL, + PMIA_Title, (ULONG)ctxmenulab[CMSUB_FRAME], + PMSIMPLESUB, + PMA_AddItem, NewObject(POPUPMENU_GetItemClass(), NULL, + PMIA_Title, (ULONG)ctxmenulab[CMID_FRAMEWIN], + PMIA_ID, CMID_FRAMEWIN, + PMIA_UserData, content_get_url(ccdata.main), + TAG_DONE), + PMA_AddItem, NewObject(POPUPMENU_GetItemClass(), NULL, + PMIA_Title, (ULONG)ctxmenulab[CMID_FRAMETAB], + PMIA_ID, CMID_FRAMETAB, + PMIA_UserData, content_get_url(ccdata.main), + TAG_DONE), + PMA_AddItem, NewObject(POPUPMENU_GetItemClass(), NULL, + PMIA_Title, (ULONG)ctxmenulab[CMID_FRAMESHOW], + PMIA_ID, CMID_FRAMESHOW, + PMIA_UserData, ccdata.main, + TAG_DONE), + PMA_AddItem,NewObject(POPUPMENU_GetItemClass(), NULL, + PMIA_Title, ~0, + TAG_DONE), + PMA_AddItem, NewObject(POPUPMENU_GetItemClass(), NULL, + PMIA_Title, (ULONG)ctxmenulab[CMID_RELOADOBJ], + PMIA_ID, CMID_FRAMERELOAD, + PMIA_UserData, ccdata.main, + TAG_DONE), + PMA_AddItem,NewObject(POPUPMENU_GetItemClass(), NULL, + PMIA_Title, ~0, + TAG_DONE), + PMA_AddItem, NewObject(POPUPMENU_GetItemClass(), NULL, + PMIA_Title, (ULONG)ctxmenulab[CMID_COPYOBJ], + PMIA_ID, CMID_FRAMECOPYURL, + PMIA_UserData, content_get_url(ccdata.main), + TAG_DONE), + PMA_AddItem,NewObject(POPUPMENU_GetItemClass(), NULL, + PMIA_Title, ~0, + TAG_DONE), + PMA_AddItem, NewObject(POPUPMENU_GetItemClass(), NULL, + PMIA_Title, (ULONG)ctxmenulab[CMID_SAVEOBJ], + PMIA_ID, CMID_FRAMESAVE, + PMIA_UserData, content_get_url(ccdata.main), + TAG_DONE), + TAG_DONE), + TAG_DONE), + ~0); + + no_frame = false; + menuhascontent = true; + } + if(no_url && ccdata.link_url) { IDoMethod(ctxmenuobj,PM_INSERT, @@ -254,11 +322,17 @@ void ami_context_menu_show(struct gui_window_2 *gwin,int x,int y) PMIA_ID, CMID_URLOPENTAB, PMIA_UserData, ccdata.link_url, TAG_DONE), + PMA_AddItem,NewObject(POPUPMENU_GetItemClass(), NULL, + PMIA_Title, ~0, + TAG_DONE), PMA_AddItem, NewObject(POPUPMENU_GetItemClass(), NULL, PMIA_Title, (ULONG)ctxmenulab[CMID_COPYURL], PMIA_ID, CMID_COPYURL, PMIA_UserData, ccdata.link_url, TAG_DONE), + PMA_AddItem,NewObject(POPUPMENU_GetItemClass(), NULL, + PMIA_Title, ~0, + TAG_DONE), PMA_AddItem, NewObject(POPUPMENU_GetItemClass(), NULL, PMIA_Title, (ULONG)ctxmenulab[CMID_SAVEURL], PMIA_ID, CMID_SAVEURL, @@ -282,7 +356,15 @@ void ami_context_menu_show(struct gui_window_2 *gwin,int x,int y) PMA_AddItem, NewObject(POPUPMENU_GetItemClass(), NULL, PMIA_Title, (ULONG)ctxmenulab[CMID_SHOWOBJ], PMIA_ID, CMID_SHOWOBJ, - PMIA_UserData, content_get_url(ccdata.object), + PMIA_UserData, ccdata.object, + TAG_DONE), + PMA_AddItem, NewObject(POPUPMENU_GetItemClass(), NULL, + PMIA_Title, (ULONG)ctxmenulab[CMID_RELOADOBJ], + PMIA_ID, CMID_RELOADOBJ, + PMIA_UserData, ccdata.object, + TAG_DONE), + PMA_AddItem,NewObject(POPUPMENU_GetItemClass(), NULL, + PMIA_Title, ~0, TAG_DONE), PMA_AddItem,NewObject(POPUPMENU_GetItemClass(), NULL, PMIA_Title, (ULONG)ctxmenulab[CMID_COPYOBJ], @@ -294,6 +376,9 @@ void ami_context_menu_show(struct gui_window_2 *gwin,int x,int y) PMIA_ID, CMID_CLIPOBJ, PMIA_UserData, ccdata.object, TAG_DONE), + PMA_AddItem,NewObject(POPUPMENU_GetItemClass(), NULL, + PMIA_Title, ~0, + TAG_DONE), PMA_AddItem, NewObject(POPUPMENU_GetItemClass(), NULL, PMIA_Title, (ULONG)ctxmenulab[CMID_SAVEOBJ], PMIA_ID, CMID_SAVEOBJ, @@ -465,31 +550,43 @@ static uint32 ami_context_menu_hook(struct Hook *hook,Object *item,APTR reserved } break; + case CMID_FRAMECOPYURL: case CMID_COPYURL: case CMID_COPYOBJ: ami_easy_clipboard((char *)userdata); break; + case CMID_FRAMEWIN: case CMID_URLOPENWIN: bw = browser_window_create(userdata, gwin->bw, content_get_url(gwin->bw->current_content), true, false); break; + case CMID_FRAMETAB: case CMID_URLOPENTAB: bw = browser_window_create(userdata, gwin->bw, content_get_url(gwin->bw->current_content), true, true); break; + case CMID_FRAMESAVE: case CMID_SAVEURL: browser_window_download(gwin->bw, userdata, content_get_url(gwin->bw->current_content)); break; + case CMID_FRAMESHOW: case CMID_SHOWOBJ: - browser_window_go(gwin->bw, userdata, + browser_window_go(gwin->bw, content_get_url(userdata), content_get_url(gwin->bw->current_content), true); break; + case CMID_FRAMERELOAD: + case CMID_RELOADOBJ: + object = (struct hlcache_handle *)userdata; + content_invalidate_reuse_data(object); + browser_window_reload(gwin->bw, false); + break; + case CMID_CLIPOBJ: object = (struct hlcache_handle *)userdata; if((bm = content_get_bitmap(object))) -- cgit v1.2.3