MSHTML: Added default MSHTML context menu

Jacek Caban jack at itma.pwr.wroc.pl
Thu Aug 25 18:20:44 CDT 2005


Changelog:
    Added default MSHTML context menu
-------------- next part --------------
? dlls/mshtml/En.rc
? dlls/mshtml/resource.h
Index: dlls/mshtml/olewnd.c
===================================================================
RCS file: /home/wine/wine/dlls/mshtml/olewnd.c,v
retrieving revision 1.8
diff -u -p -r1.8 olewnd.c
--- dlls/mshtml/olewnd.c	25 Aug 2005 19:24:58 -0000	1.8
+++ dlls/mshtml/olewnd.c	25 Aug 2005 21:15:32 -0000
@@ -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 O
 
 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(HTMLDo
     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)
Index: dlls/mshtml/rsrc.rc
===================================================================
RCS file: /home/wine/wine/dlls/mshtml/rsrc.rc,v
retrieving revision 1.4
diff -u -p -r1.4 rsrc.rc
--- dlls/mshtml/rsrc.rc	30 Jun 2005 21:01:03 -0000	1.4
+++ dlls/mshtml/rsrc.rc	25 Aug 2005 21:15:32 -0000
@@ -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"
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dlls/mshtml/resource.h	2005-08-25 23:14:45.000000000 +0000
@@ -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
--- /dev/null	1970-01-01 00:00:00.000000000 +0000
+++ dlls/mshtml/En.rc	2005-08-25 23:14:33.000000000 +0000
@@ -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
+    }
+}


More information about the wine-patches mailing list