From 6ccccb71790334d88c5ac18606d95132c5b42bd6 Mon Sep 17 00:00:00 2001 From: Jacek Caban Date: Fri, 26 Aug 2005 08:46:37 +0000 Subject: [PATCH] Added default MSHTML context menu. --- dlls/mshtml/En.rc | 238 +++++++++++++++++++++++++++++++++++++++++ dlls/mshtml/olewnd.c | 10 +- dlls/mshtml/resource.h | 104 ++++++++++++++++++ dlls/mshtml/rsrc.rc | 7 ++ 4 files changed, 358 insertions(+), 1 deletion(-) create mode 100644 dlls/mshtml/En.rc create mode 100644 dlls/mshtml/resource.h diff --git a/dlls/mshtml/En.rc b/dlls/mshtml/En.rc new file mode 100644 index 00000000000..ae206641dac --- /dev/null +++ b/dlls/mshtml/En.rc @@ -0,0 +1,238 @@ +/* + * Copyright 2005 Jacek Caban + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + + +LANGUAGE LANG_ENGLISH, SUBLANG_DEFAULT + +/* FIXME: This should be in shdoclc.dll */ + +IDR_BROWSE_CONTEXT_MENU MENU +{ + POPUP "Default" + { + MENUITEM "&Back", IDM_BACK + MENUITEM "F&orward", IDM_FORWARD + MENUITEM SEPARATOR + MENUITEM "&Save Background As...", IDM_SAVEBACKGROUNDAS + MENUITEM "Set As Back&ground", IDM_SETASBACKGROUND + MENUITEM "&Copy Background", IDM_COPYBACKGROUND + MENUITEM "Set as &Desktop Item", IDM_SETASDESKTOPITEM + MENUITEM SEPARATOR + MENUITEM "Select &All", IDM_SELECTALL + MENUITEM "&Paste", IDM_PASTE + MENUITEM SEPARATOR + MENUITEM "Create Shor&tcut", IDM_CREATESHORTCUT + MENUITEM "Add to &Favourites", IDM_ADDTOFAVOURITES + MENUITEM "&View Source", IDM_VIEWSOURCE + MENUITEM SEPARATOR + MENUITEM "&Encoding", IDM_ENCODING + MENUITEM SEPARATOR + MENUITEM "Pr&int", IDM_PRINT + MENUITEM "&Refresh", IDM_REFRESH + MENUITEM SEPARATOR + MENUITEM SEPARATOR + MENUITEM "&Properties", IDM_PROPERTIES + } + + POPUP "Image" + { + MENUITEM "&Open Link", IDM_OPENLINK + MENUITEM "Open Link in &New Window", IDM_OPENINNEWWINDOW + MENUITEM "Save Target &As...", IDM_SAVETARGETAS + MENUITEM "&Print Target", IDM_PRINTTARGET + MENUITEM SEPARATOR + MENUITEM "S&how Picture", IDM_SHOWPICTURE + MENUITEM "&Save Picture As...", IDM_SAVEPICTUREAS + MENUITEM "&E-mail Picture...", IDM_EMAILPICTURE + MENUITEM "Pr&int Picture...", IDM_PRINTPICTURE + MENUITEM "&Go to My Pictures", IDM_GOTOMYPICTURES + MENUITEM "Set as Back&ground", IDM_SETASBACKGROUND + MENUITEM "Set as &Desktop Item...", IDM_SETASDESKTOPITEM + MENUITEM SEPARATOR + MENUITEM "Cu&t", IDM_CUT + MENUITEM "&Copy", IDM_COPY + MENUITEM "Copy Shor&tcut", IDM_COPYSHORTCUT + MENUITEM "&Paste", IDM_PASTE + MENUITEM SEPARATOR + MENUITEM "Add to &Favorites...", IDM_ADDTOFAVOURITES + MENUITEM SEPARATOR + MENUITEM SEPARATOR + MENUITEM "P&roperties", IDM_PROPERTIES + } + + POPUP "Control" + { + MENUITEM "&Undo", IDM_UNDO + MENUITEM SEPARATOR + MENUITEM "Cu&t", IDM_CUT + MENUITEM "&Copy", IDM_COPY + MENUITEM "&Paste", IDM_PASTE + MENUITEM "&Delete", IDM_DELETE + MENUITEM SEPARATOR + MENUITEM SEPARATOR + MENUITEM "Select &All", IDM_SELECTALL + } + + POPUP "Table" + { + POPUP "&Select" + { + MENUITEM "&Cell", IDM_CELL + MENUITEM "&Row", IDM_ROW + MENUITEM "&Column", IDM_COLUMN + MENUITEM "&Table", IDM_TABLE + } + MENUITEM SEPARATOR + MENUITEM SEPARATOR + MENUITEM "&Cell Properties", IDM_CELLPROPERTIES + MENUITEM "&Table Properties", IDM_TABLEPROPERTIES + } + + POPUP "1DSite Select" + { + MENUITEM "Cu&t", IDM_CUT + MENUITEM "&Copy", IDM_COPY + MENUITEM "Paste", IDM_PASTE + MENUITEM "Select &All", IDM_SELECTALL + MENUITEM "&Print", IDM_PRINT + MENUITEM SEPARATOR + } + + POPUP "Anchor" + { + MENUITEM "&Open", IDM_OPENLINK + MENUITEM "Open in &New Window", IDM_OPENINNEWWINDOW + MENUITEM "Save Target &As...", IDM_SAVETARGETAS + MENUITEM "&Print Target", IDM_PRINTTARGET + MENUITEM SEPARATOR + MENUITEM "Cut", IDM_CUT + MENUITEM "&Copy", IDM_COPY + MENUITEM "Copy Shor&tcut", IDM_COPYSHORTCUT + MENUITEM "&Paste", IDM_PASTE + MENUITEM SEPARATOR + MENUITEM "Add to &Favorites...", IDM_ADDTOFAVOURITES + MENUITEM SEPARATOR + MENUITEM SEPARATOR + MENUITEM "P&roperties", IDM_PROPERTIES + } + + POPUP "Context Unknown" + { + MENUITEM SEPARATOR + } + + POPUP "DYNSRC Image" + { + MENUITEM "&Open Link", IDM_OPENLINK + MENUITEM "Open Link in &New Window", IDM_OPENINNEWWINDOW + MENUITEM "Save Target &As...", IDM_SAVETARGETAS + MENUITEM "&Print Target", IDM_PRINTTARGET + MENUITEM SEPARATOR + MENUITEM "S&how Picture", IDM_SHOWPICTURE + MENUITEM "&Save Video As...", IDM_SAVEPICTUREAS + MENUITEM "Set as Back&ground", IDM_SETASBACKGROUND + MENUITEM "Set as &Desktop Item...", IDM_SETASDESKTOPITEM + MENUITEM SEPARATOR + MENUITEM "Cu&t", IDM_CUT + MENUITEM "&Copy", IDM_COPY + MENUITEM "Copy Shor&tcut", IDM_COPYSHORTCUT + MENUITEM "&Paste", IDM_PASTE + MENUITEM SEPARATOR + MENUITEM "Add to &Favorites...", IDM_ADDTOFAVOURITES + MENUITEM SEPARATOR + MENUITEM SEPARATOR + MENUITEM "Play", IDM_PLAY + MENUITEM "Stop", IDM_STOP + MENUITEM "P&roperties", IDM_PROPERTIES + } + + POPUP "ART Image" + { + MENUITEM "&Open Link", IDM_OPENLINK + MENUITEM "Open Link in &New Window", IDM_OPENINNEWWINDOW + MENUITEM "Save Target &As...", IDM_SAVETARGETAS + MENUITEM "&Print Target", IDM_PRINTTARGET + MENUITEM SEPARATOR + MENUITEM "S&how Picture", IDM_SHOWPICTURE + MENUITEM "&Save Picture As...", IDM_SAVEPICTUREAS + MENUITEM "Set as Back&ground", IDM_SETASBACKGROUND + MENUITEM "Set as &Desktop Item...", IDM_SETASDESKTOPITEM + MENUITEM SEPARATOR + MENUITEM "Cu&t", IDM_CUT + MENUITEM "&Copy", IDM_COPY + MENUITEM "Copy Shor&tcut", IDM_COPYSHORTCUT + MENUITEM "&Paste", IDM_PASTE + MENUITEM SEPARATOR + MENUITEM "Add to &Favorites...", IDM_ADDTOFAVOURITES + MENUITEM SEPARATOR + MENUITEM "Play", IDM_PLAY + MENUITEM "Stop", IDM_STOP + MENUITEM "Rewind", IDM_REWIND + MENUITEM SEPARATOR + MENUITEM SEPARATOR + MENUITEM "P&roperties", IDM_PROPERTIES + } + + POPUP "Debug" + { + MENUITEM "Trace Tags", IDM_TRACETAGS + MENUITEM "Resource Failures", IDM_RESOURCEFAILURES + MENUITEM "Dump Tracking Info", IDM_DUMPTRACKINGINFO + MENUITEM "Debug Break", IDM_DEBUGBREAK + MENUITEM "Debug View", IDM_DEBUGVIEW + MENUITEM "Dump Tree", IDM_DUMPTREE + MENUITEM "Dump Lines", IDM_DUMPLINES + MENUITEM "Dump DisplayTree", IDM_DUMPDISPLAYTREE + MENUITEM "Dump FormatCaches", IDM_DUMPFORMATCACHES + MENUITEM "Dump LayoutRects", IDM_DUMPLAYOUTRECTS + MENUITEM "Memory Monitor", IDM_MEMORYMONITOR + MENUITEM "Performance Meters", IDM_PERFORMANCEMETERS + MENUITEM "Save HTML", IDM_SAVEHTML + MENUITEM SEPARATOR + MENUITEM "&Browse View", IDM_BROWSEVIEW + MENUITEM "&Edit View", IDM_EDITVIEW + } + + POPUP "Vertical Scrollbar" + { + MENUITEM "Scroll Here", IDM_SCROLLHERE + MENUITEM SEPARATOR + MENUITEM "Top", IDM_TOP + MENUITEM "Bottom", IDM_BOTTOM + MENUITEM SEPARATOR + MENUITEM "Page Up", IDM_PAGEUP + MENUITEM "Page Down", IDM_PAGEDOWN + MENUITEM SEPARATOR + MENUITEM "Scroll Up", IDM_SCROLLUP + MENUITEM "Scroll Down", IDM_SCROLLDOWN + } + + POPUP "Horizontal Scrollbar" + { + MENUITEM "Scroll Here", IDM_SCROLLHERE + MENUITEM SEPARATOR + MENUITEM "Left Edge", IDM_LEFTEDGE + MENUITEM "Right Edge", IDM_RIGHTEDGE + MENUITEM SEPARATOR + MENUITEM "Page Left", IDM_PAGELEFT + MENUITEM "Page Right", IDM_PAGERIGHT + MENUITEM SEPARATOR + MENUITEM "Scroll Left", IDM_SCROLLLEFT + MENUITEM "Scroll Right", IDM_SCROLLRIGHT + } +} diff --git a/dlls/mshtml/olewnd.c b/dlls/mshtml/olewnd.c index 896cdcb11be..f8ff5ad9506 100644 --- a/dlls/mshtml/olewnd.c +++ b/dlls/mshtml/olewnd.c @@ -31,6 +31,7 @@ #include "wine/debug.h" #include "mshtml_private.h" +#include "resource.h" WINE_DEFAULT_DEBUG_CHANNEL(mshtml); @@ -257,6 +258,7 @@ static IOleInPlaceObjectWindowlessVtbl OleInPlaceObjectWindowlessVtbl = { void HTMLDocument_ShowContextMenu(HTMLDocument *This, DWORD dwID, POINT *ppt) { + HMENU menu_res, menu; HRESULT hres; hres = IDocHostUIHandler_ShowContextMenu(This->hostui, dwID, ppt, @@ -264,7 +266,13 @@ void HTMLDocument_ShowContextMenu(HTMLDocument *This, DWORD dwID, POINT *ppt) if(hres == S_OK) return; - FIXME("Show default context menu\n"); + menu_res = LoadMenuW(hInst, MAKEINTRESOURCEW(IDR_BROWSE_CONTEXT_MENU)); + menu = GetSubMenu(menu_res, dwID); + + TrackPopupMenu(menu, TPM_LEFTALIGN | TPM_RIGHTBUTTON | TPM_RETURNCMD, + ppt->x, ppt->y, 0, This->hwnd, NULL); + + DestroyMenu(menu_res); } void HTMLDocument_Window_Init(HTMLDocument *This) diff --git a/dlls/mshtml/resource.h b/dlls/mshtml/resource.h new file mode 100644 index 00000000000..e2d34a6562c --- /dev/null +++ b/dlls/mshtml/resource.h @@ -0,0 +1,104 @@ +/* + * Copyright 2005 Jacek Caban + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#define IDR_BROWSE_CONTEXT_MENU 24641 + +#define IDM_COPY 15 +#define IDM_CUT 16 +#define IDM_DELETE 17 + +#define IDM_PASTE 26 +#define IDM_PRINT 27 +#define IDM_PROPERTIES 28 + +#define IDM_SELECTALL 31 + +#define IDM_UNDO 43 + +#define IDM_BROWSEVIEW 2126 +#define IDM_EDITVIEW 2127 + +#define IDM_OPENLINK 2136 +#define IDM_OPENINNEWWINDOW 2137 + +#define IDM_VIEWSOURCE 2139 + +#define IDM_CELL 2206 +#define IDM_ROW 2207 +#define IDM_COLUMN 2208 +#define IDM_TABLE 2209 +#define IDM_TABLEPROPERTIES 2210 +#define IDM_CELLPROPERTIES 2211 + +#define IDM_ADDTOFAVOURITES 2261 +#define IDM_COPYSHORTCUT 2262 +#define IDM_SAVEBACKGROUNDAS 2263 +#define IDM_SETASBACKGROUND 2264 +#define IDM_COPYBACKGROUND 2265 +#define IDM_CREATESHORTCUT 2266 + +#define IDM_SAVETARGETAS 2268 +#define IDM_SHOWPICTURE 2269 +#define IDM_SAVEPICTUREAS 2270 +#define IDM_PLAY 2271 +#define IDM_STOP 2272 +#define IDM_PRINTTARGET 2273 + +#define IDM_REWIND 2276 + +#define IDM_SETASDESKTOPITEM 2278 + +#define IDM_BACK 2282 +#define IDM_FORWARD 2283 + +#define IDM_GOTOMYPICTURES 2287 +#define IDM_EMAILPICTURE 2288 +#define IDM_PRINTPICTURE 2289 + +#define IDM_ENCODING 2292 + +#define IDM_SCROLLHERE 2380 +#define IDM_TOP 2381 +#define IDM_BOTTOM 2382 +#define IDM_PAGEUP 2383 +#define IDM_PAGEDOWN 2384 +#define IDM_SCROLLUP 2385 +#define IDM_SCROLLDOWN 2386 +#define IDM_LEFTEDGE 2387 +#define IDM_RIGHTEDGE 2388 +#define IDM_PAGELEFT 2389 +#define IDM_PAGERIGHT 2390 +#define IDM_SCROLLLEFT 2391 +#define IDM_SCROLLRIGHT 2392 + +#define IDM_TRACETAGS 6004 +#define IDM_RESOURCEFAILURES 6005 +#define IDM_DUMPTRACKINGINFO 6006 +#define IDM_DEBUGBREAK 6007 +#define IDM_DEBUGVIEW 6008 +#define IDM_DUMPTREE 6009 +#define IDM_DUMPLINES 6010 + +#define IDM_SAVEHTML 6012 +#define IDM_MEMORYMONITOR 6013 +#define IDM_PERFORMANCEMETERS 6014 +#define IDM_DUMPDISPLAYTREE 6015 +#define IDM_DUMPFORMATCACHES 6016 +#define IDM_DUMPLAYOUTRECTS 6017 + +#define IDM_REFRESH 6042 diff --git a/dlls/mshtml/rsrc.rc b/dlls/mshtml/rsrc.rc index c34f24657ab..15b78e38edb 100644 --- a/dlls/mshtml/rsrc.rc +++ b/dlls/mshtml/rsrc.rc @@ -16,6 +16,13 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +#include "windef.h" +#include "winbase.h" + +#include "resource.h" + +#include "En.rc" + REGINST REGINST mshtml.inf blank.htm HTML "blank.htm"