Statistics
| Branch: | Revision:

root / trunk / Pithos.ShellExtensions / Menus / MenuItem.cs @ 4d301e8e

History | View | Annotate | Download (1.4 kB)

1
using System;
2
using System.Collections.Generic;
3
using System.Drawing;
4
using System.Linq;
5
using System.Runtime.InteropServices;
6
using System.Text;
7
using Pithos.ShellExtensions.Properties;
8

    
9
namespace Pithos.ShellExtensions.Menus
10
{
11
    internal class MenuItem
12
    {
13
        public string MenuText { get; set; }
14
        public string Verb { get; set; }
15
        public string VerbCanonicalName { get; set; }
16
        public string VerbHelpText { get; set; }
17
        public uint MenuDisplayId { get; set; }
18
        public Action<IntPtr> MenuCommand { get; set; }
19
        public DisplayFlags DisplayFlags { get; set; }
20
        public IntPtr MenuBitmap{ get; set; }
21

    
22
        public MENUITEMINFO CreateInfo(uint idCmdFirst)
23
        {
24
            var mii = new MENUITEMINFO();
25
            mii.cbSize = (uint)Marshal.SizeOf(mii);
26
            mii.fMask = MIIM.MIIM_BITMAP| MIIM.MIIM_STRING | MIIM.MIIM_FTYPE | MIIM.MIIM_ID | MIIM.MIIM_STATE;
27
            //mii.fMask = MIIM.MIIM_ID | MIIM.MIIM_TYPE | MIIM.MIIM_STATE;
28
            mii.wID = idCmdFirst + MenuDisplayId;
29
            mii.fType = MFT.MFT_STRING;
30
            mii.dwTypeData = MenuText;
31
            mii.fState = MFS.MFS_ENABLED;
32

    
33
            if (MenuBitmap != IntPtr.Zero)
34
            {
35
                mii.fMask|=  MIIM.MIIM_BITMAP;
36
                mii.hbmpItem = MenuBitmap;
37
            }
38

    
39
            return mii;
40
        }
41
    }
42
}