All files
[pithos-ms-client] / trunk / Pithos.ShellExtensions / Menus / MenuItem.cs
1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Runtime.InteropServices;
5 using System.Text;
6
7 namespace Pithos.ShellExtensions.Menus
8 {
9     internal class MenuItem
10     {
11         public string MenuText { get; set; }
12         public string Verb { get; set; }
13         public string VerbCanonicalName { get; set; }
14         public string VerbHelpText { get; set; }
15         public uint MenuDisplayId { get; set; }
16         public Action<IntPtr> MenuCommand { get; set; }
17         public DisplayFlags DisplayFlags { get; set; }
18
19         public MENUITEMINFO CreateInfo(uint idCmdFirst)
20         {
21             var mii = new MENUITEMINFO();
22             mii.cbSize = (uint)Marshal.SizeOf(mii);
23             mii.fMask = MIIM.MIIM_ID | MIIM.MIIM_TYPE | MIIM.MIIM_STATE;
24             mii.wID = idCmdFirst + MenuDisplayId;
25             mii.fType = MFT.MFT_STRING;
26             mii.dwTypeData = MenuText;
27             mii.fState = MFS.MFS_ENABLED;
28             return mii;
29         }
30     }
31 }