All files
[pithos-ms-client] / trunk / Pithos.ShellExtensions / Menus / MenuItem.cs
diff --git a/trunk/Pithos.ShellExtensions/Menus/MenuItem.cs b/trunk/Pithos.ShellExtensions/Menus/MenuItem.cs
new file mode 100644 (file)
index 0000000..f442de8
--- /dev/null
@@ -0,0 +1,31 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Runtime.InteropServices;
+using System.Text;
+
+namespace Pithos.ShellExtensions.Menus
+{
+    internal class MenuItem
+    {
+        public string MenuText { get; set; }
+        public string Verb { get; set; }
+        public string VerbCanonicalName { get; set; }
+        public string VerbHelpText { get; set; }
+        public uint MenuDisplayId { get; set; }
+        public Action<IntPtr> MenuCommand { get; set; }
+        public DisplayFlags DisplayFlags { get; set; }
+
+        public MENUITEMINFO CreateInfo(uint idCmdFirst)
+        {
+            var mii = new MENUITEMINFO();
+            mii.cbSize = (uint)Marshal.SizeOf(mii);
+            mii.fMask = MIIM.MIIM_ID | MIIM.MIIM_TYPE | MIIM.MIIM_STATE;
+            mii.wID = idCmdFirst + MenuDisplayId;
+            mii.fType = MFT.MFT_STRING;
+            mii.dwTypeData = MenuText;
+            mii.fState = MFS.MFS_ENABLED;
+            return mii;
+        }
+    }
+}