Пример #1
0
    // This example draws a simple menu that contains three text items.

    // The menu item is drawn at a size that is appropriate for the menu items

    // See the frmIconModMenu for a form that includes a menu with the option

    // for a custom color background well the use of icons.

    private void frmTextModMenu_Load(object sender, System.EventArgs e)
    {
        // Create the main menu item and add the subitems to the menu.

        mnuMain.MenuItems.Add("&Choose a Font");
        string[]                menuItemsText = new string[] { "&TimesnewRoman", "&Courier new", "&MS Sans Serif" };
        MenuItem[]              menuItems     = new MenuItem[menuItemsText.Length];
        int                     menuItemCount = (int)(menuItems.Length);
        EventHandler            evOnClick     = new EventHandler(MenuFaceNameOnClick);
        MeasureItemEventHandler evOnMeasure   = new MeasureItemEventHandler(MenuFaceNameOnMeasureItem);
        DrawItemEventHandler    evDrawItem    = new DrawItemEventHandler(MenuFaceNameOnDrawItem);

        for (int i = 0; i < menuItemCount; i++)
        {
            menuItems[i] = new MenuItem(menuItemsText[i]);

            // Enables the firing of the OnMeasureItem and OnDrawnItem events.
            menuItems[i].OwnerDraw = true;
            // Add event handlers to each menu item for key events.

            menuItems[i].Click       += new EventHandler(evOnClick);
            menuItems[i].MeasureItem += new MeasureItemEventHandler(evOnMeasure);
            menuItems[i].DrawItem    += new DrawItemEventHandler(evDrawItem);
        }
        mnuMain.MenuItems[0].MenuItems.AddRange(menuItems);
    }
Пример #2
0
    public OwnerDrawMenu()
    {
        Text = "Owner-Draw Menu";

        // Top-level items

        Menu = new MainMenu();
        Menu.MenuItems.Add("&Facename");

        // Array of items on submenu

        string[]    astrText = { "&Times New Roman", "&Arial", "&Courier New" };
        MenuItem [] ami      = new MenuItem[astrText.Length];

        EventHandler            ehOnClick       = new EventHandler(MenuFacenameOnClick);
        MeasureItemEventHandler ehOnMeasureItem =
            new MeasureItemEventHandler(MenuFacenameOnMeasureItem);
        DrawItemEventHandler ehOnDrawItem =
            new DrawItemEventHandler(MenuFacenameOnDrawItem);

        for (int i = 0; i < ami.Length; i++)
        {
            ami[i]              = new MenuItem(astrText[i]);
            ami[i].OwnerDraw    = true;
            ami[i].RadioCheck   = true;
            ami[i].Click       += ehOnClick;
            ami[i].MeasureItem += ehOnMeasureItem;
            ami[i].DrawItem    += ehOnDrawItem;
        }
        miFacename         = ami[0];
        miFacename.Checked = true;

        Menu.MenuItems[0].MenuItems.AddRange(ami);
    }
 public MyInvisibleIndexes(ComboBoxEdit comboBox)
 {
     itemsChange   = null;
     itemMeasure   = null;
     contentList   = new List <int>();
     this.comboBox = comboBox;
     Init();
 }
Пример #4
0
        /// <summary>
        /// Extends BeginInvoke so that when a state object is not needed, null does not need to be passed.
        /// <example>
        /// measureitemeventhandler.BeginInvoke(sender, e, callback);
        /// </example>
        /// </summary>
        public static IAsyncResult BeginInvoke(this MeasureItemEventHandler measureitemeventhandler, Object sender, MeasureItemEventArgs e, AsyncCallback callback)
        {
            if (measureitemeventhandler == null)
            {
                throw new ArgumentNullException("measureitemeventhandler");
            }

            return(measureitemeventhandler.BeginInvoke(sender, e, callback, null));
        }
Пример #5
0
        protected virtual void OnMeasureItem(MeasureItemEventArgs e)
        {
            MeasureItemEventHandler eh = (MeasureItemEventHandler)(Events [MeasureItemEvent]);

            if (eh != null)
            {
                eh(this, e);
            }
        }
 /// <summary>
 /// Initializes a new instance of the <see cref="MaterialComboBox"/> class.
 /// </summary>
 public MaterialComboBox()
 {
     SetStyle(ControlStyles.UserPaint, true);
     DropDownStyle           = ComboBoxStyle.DropDownList;
     _ButtonArea             = new Rectangle(ClientRectangle.X - 1, ClientRectangle.Y - 1, ClientRectangle.Width + 2, ClientRectangle.Height + 2);
     _dropDownCheck.Interval = 10;
     _dropDownCheck.Tick    += new EventHandler(dropDownCheck_Tick);
     MeasureItem            += new MeasureItemEventHandler(CustMeasureItem);
 }
Пример #7
0
        public StiMenuProvider()
        {
            diEventHandler = new DrawItemEventHandler(DrawItem);
            miEventHandler = new MeasureItemEventHandler(MeasureItem);

            this.font         = new Font("Arial", 8);
            this.imageIndexes = new Hashtable();
            this.imageLists   = new Hashtable();
        }
Пример #8
0
        protected virtual void OnMeasureItem(MeasureItemEventArgs e)
        {
            MeasureItemEventHandler dlg = (MeasureItemEventHandler)Events[MeasureItemEvent];

            if (dlg != null)
            {
                dlg(this, e);
            }
        }
Пример #9
0
        protected virtual void OnMeasureItem(MeasureItemEventArgs e)
        {
            // Invoke the event handler.
            MeasureItemEventHandler handler = (MeasureItemEventHandler)(GetHandler(EventId.MeasureItem));

            if (handler != null)
            {
                handler(this, e);
            }
        }
Пример #10
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="controller">Main Controller</param>
        /// <param name="plugin">Plugin</param>
        public PluginMenuItem(Controller controller, PluginWrapper plugin) : base(plugin.DisplayName())
        {
            this.controller = controller;
            this.plugin     = plugin;

            OwnerDraw    = true;
            Click       += new EventHandler(MenuOnClick);
            DrawItem    += new DrawItemEventHandler(MenuOnDrawItem);
            MeasureItem += new MeasureItemEventHandler(MenuOnMeasureItem);
        }
Пример #11
0
        /// <summary>
        /// Constructor
        /// </summary>
        /// <param name="controller">Main Controller</param>
        /// <param name="name">Menu Item Name</param>
        /// <param name="colorList">Color</param>
        public ColorMenuItem(Controller controller, string name, ColorList colorList) : base(name)
        {
            this.controller = controller;
            this.name       = name;
            this.colorList  = colorList;

            OwnerDraw    = true;
            Click       += new EventHandler(MenuOnClick);
            DrawItem    += new DrawItemEventHandler(MenuOnDrawItem);
            MeasureItem += new MeasureItemEventHandler(MenuOnMeasureItem);
        }
Пример #12
0
    public DropDownMenuButton()
    {
        Text    = "Drop-Down Menu Button";
        strText = "Drop-Down";

        // Create bitmap for new button and add it to ImageList.

        tbar.ImageList.Images.Add(CreateBitmapButton(clrText));

        // Create the menu for the button.

        ContextMenu menu = new ContextMenu();

        EventHandler            ehOnClick       = new EventHandler(MenuColorOnClick);
        MeasureItemEventHandler ehOnMeasureItem =
            new MeasureItemEventHandler(MenuColorOnMeasureItem);
        DrawItemEventHandler ehOnDrawItem =
            new DrawItemEventHandler(MenuColorOnDrawItem);

        Color[] acolor =
        {
            Color.FromArgb(0x00, 0x00, 0x00), Color.FromArgb(0x00, 0x00, 0x80),
            Color.FromArgb(0x00, 0x80, 0x00), Color.FromArgb(0x00, 0x80, 0x80),
            Color.FromArgb(0x80, 0x00, 0x00), Color.FromArgb(0x80, 0x00, 0x80),
            Color.FromArgb(0x80, 0x80, 0x00), Color.FromArgb(0x80, 0x80, 0x80),
            Color.FromArgb(0xC0, 0xC0, 0xC0), Color.FromArgb(0x00, 0x00, 0xFF),
            Color.FromArgb(0x00, 0xFF, 0x00), Color.FromArgb(0x00, 0xFF, 0xFF),
            Color.FromArgb(0xFF, 0x00, 0x00), Color.FromArgb(0xFF, 0x00, 0xFF),
            Color.FromArgb(0xFF, 0xFF, 0x00), Color.FromArgb(0xFF, 0xFF, 0xFF)
        };

        for (int i = 0; i < acolor.Length; i++)
        {
            MenuItemColor mic = new MenuItemColor();
            mic.OwnerDraw    = true;
            mic.Color        = acolor[i];
            mic.Click       += ehOnClick;
            mic.MeasureItem += ehOnMeasureItem;
            mic.DrawItem    += ehOnDrawItem;
            mic.Break        = i % 4 == 0;

            menu.MenuItems.Add(mic);
        }
        // Finally, make the button itself.

        ToolBarButton tbarbtn = new ToolBarButton();

        tbarbtn.ImageIndex   = 4;
        tbarbtn.Style        = ToolBarButtonStyle.DropDownButton;
        tbarbtn.DropDownMenu = menu;
        tbarbtn.ToolTipText  = "Color";

        tbar.Buttons.Add(tbarbtn);
    }
        private MeasureItemEventHandler GetMeasureItemHandler()
        {
            FieldInfo info = typeof(ComboBox).GetField("EVENT_MEASUREITEM",
                                                       System.Reflection.BindingFlags.Static |
                                                       System.Reflection.BindingFlags.NonPublic |
                                                       System.Reflection.BindingFlags.GetField);

            MeasureItemEventHandler handler = (MeasureItemEventHandler)base.Events[info.GetValue(null)];

            return(handler);
        }
Пример #14
0
        /// <summary>
        /// Main constructor.
        /// </summary>
        public LevelListBox()
        {
            // Listen for some events
            MeasureItem += new MeasureItemEventHandler(measureItem);
            DrawItem    += new DrawItemEventHandler(drawItem);
            Resize      += new EventHandler(resize);
            KeyDown     += new KeyEventHandler(keyDown);
            DoubleClick += new EventHandler(doubleClick);
            MouseDown   += new MouseEventHandler(mouseDown);

            DrawMode     = DrawMode.OwnerDrawVariable;
            _cachedWidth = ClientSize.Width;
        }
Пример #15
0
        public XListbox()
        {
            DrawMode          = System.Windows.Forms.DrawMode.OwnerDrawFixed;
            MeasureItem      += new MeasureItemEventHandler(XListbox_MeasureItem);
            DrawItem         += new DrawItemEventHandler(XListbox_DrawItem);
            this.FontChanged += new EventHandler(XListbox_FontChanged);

            Scale(new SizeF(scale_x.ToFloat(), scale_y.ToFloat()));

            FontTracker = new font_tracker(this.Font);
            SizeF szf = FontTracker.MeasureString(this.CreateGraphics(), "X", scale_x, scale_y);

            ItemHeight = (int)(scale_y * szf.Height);
        }
Пример #16
0
        protected virtual void OnMeasureItem(MeasureItemEventArgs e)
        {
            if (!OwnerDraw)
            {
                return;
            }

            MeasureItemEventHandler eh = (MeasureItemEventHandler)(Events [MeasureItemEvent]);

            if (eh != null)
            {
                eh(this, e);
            }
        }
Пример #17
0
        /// <summary>
        /// This function applies a customdark theme for the main menu of a form (not menu stirp!). This function is not included in the MakeAllDark function because every time this method is called a new item renderer is applied. Please only use the function once per window.
        /// </summary>
        /// <param name="frm">The form which contains the menu which should be changed.</param>
        public static void DarkMainMenu(Form frm)
        {
            MainMenu mnu = frm.Menu;

            if (mnu == null)
            {
                return;
            }
            frm.Menu = null;
            for (int i = 0; i < mnu.MenuItems.Count; i++)
            {
                MenuItem itm = mnu.MenuItems[i];
                itm.OwnerDraw = true;

                MeasureItemEventHandler mi  = new MeasureItemEventHandler(MeasureItem);
                DrawItemEventHandler    di1 = null;
                DrawItemEventHandler    di2 = new DrawItemEventHandler(DrawItem);

                if (i == mnu.MenuItems.Count - 1)
                {
                    di1 = (s1, e1) =>
                    {
                        Rectangle area = new Rectangle(e1.Bounds.X, e1.Bounds.Y, frm.ClientRectangle.Right, 19);
                        e1.Graphics.FillRectangle(new SolidBrush(baseCol), area);
                        e1.DrawBackground();
                    };
                }
                else if (i == 0)
                {
                    di1 = (s1, e1) =>
                    {
                        if (frm.IsMdiContainer)
                        {
                            if (frm.ActiveMdiChild != null)
                            {
                                Rectangle area = new Rectangle(-100, e1.Bounds.Y, e1.Bounds.Width + 100, 19);
                                e1.Graphics.FillRectangle(new SolidBrush(baseCol), area);
                                e1.Graphics.DrawIcon(frm.ActiveMdiChild.Icon, new Rectangle(e1.Bounds.X - 16, e1.Bounds.Y, 16, 16));
                            }
                        }
                    };
                }

                itm.MeasureItem += mi;
                itm.DrawItem    += di1;
                itm.DrawItem    += di2;
            }
            frm.Menu = mnu;
        }
Пример #18
0
        /// <summary>
        ///     Default constructor.
        /// </summary>
        public AllWebColorsComboBox()
        {
            //base.DrawItem += new System.Windows.Forms.DrawItemEventHandler(this.this_DrawItem);
            SetStyle(ControlStyles.UserPaint, true);

            base.DropDownStyle = ComboBoxStyle.DropDownList;
            base.DrawMode      = DrawMode.OwnerDrawVariable;

            _ButtonArea = new Rectangle(ClientRectangle.X - 1, ClientRectangle.Y - 1, ClientRectangle.Width + 2, ClientRectangle.Height + 2);

            _dropDownCheck.Interval = 10;
            _dropDownCheck.Tick    += new EventHandler(dropDownCheck_Tick);
            MeasureItem            += new MeasureItemEventHandler(CustMeasureItem);
            DrawItems();
        }
 internal MenuItemData(MenuItem baseItem, MenuMerge mergeType, int mergeOrder, Shortcut shortcut, bool showShortcut, string caption, EventHandler onClick, EventHandler onPopup, EventHandler onSelect, DrawItemEventHandler onDrawItem, MeasureItemEventHandler onMeasureItem)
 {
     this.AddItem(baseItem);
     this.mergeType     = mergeType;
     this.mergeOrder    = mergeOrder;
     this.shortcut      = shortcut;
     this.showShortcut  = showShortcut;
     this.caption       = (caption == null) ? "" : caption;
     this.onClick       = onClick;
     this.onPopup       = onPopup;
     this.onSelect      = onSelect;
     this.onDrawItem    = onDrawItem;
     this.onMeasureItem = onMeasureItem;
     this.version       = 1;
     this.mnemonic      = -1;
 }
        private void Init()
        {
            if (comboBox != null)
            {
                if (itemsChange == null)
                {
                    itemsChange = new CollectionChangeEventHandler(OnItemsChanged);
                    comboBox.Properties.Items.CollectionChanged += itemsChange;
                }

                if (itemMeasure == null)
                {
                    itemMeasure = new MeasureItemEventHandler(OnMeasureItem);
                    comboBox.Properties.MeasureItem += itemMeasure;
                }
            }
        }
Пример #21
0
        public MenuPainter(MainMenu menu)
        {
            this.menu   = menu;
            this.imgndx = new Hashtable();

            dieh  = new DrawItemEventHandler(main_DrawItem);
            mieh  = new MeasureItemEventHandler(main_MeasureItem);
            idieh = new DrawItemEventHandler(item_DrawItem);
            imieh = new MeasureItemEventHandler(item_MeasureItem);

            BoneSoft.Design.ColorBlender blender = new BoneSoft.Design.ColorBlender(7, SystemColors.Control, SystemColors.ControlDark);
            shadeone   = new Pen(new SolidBrush(blender.Next()), 1f);
            shadetwo   = new Pen(new SolidBrush(blender.Next()), 1f);
            shadethree = new Pen(new SolidBrush(blender.Next()), 1f);
            shadefour  = new Pen(new SolidBrush(blender.Next()), 1f);

            #region Setup Hover Colors Based on SystemColors.Control
            Color ctrl = SystemColors.Control;
            int   r    = ctrl.R;
            int   g    = ctrl.G;
            int   b    = ctrl.B;
            //if (r < g || g < b || r - b > 30) {
            int rg = r - g; int gb = g - b;
            if (rg < 0)
            {
                rg = -rg;
            }
            if (gb < 0)
            {
                gb = -gb;
            }
            if (rg > 30 || gb > 30)
            {
                itemhoverborder     = SystemColors.ControlDark;
                itemhoverbackhi     = SystemColors.ControlLightLight;
                itemhoverbacklo     = SystemColors.ControlLightLight;
                mainhoverborder     = SystemColors.ControlDark;
                mainhoverbackhi     = SystemColors.ControlLightLight;
                mainhoverbacklo     = SystemColors.ControlLightLight;
                itemnormalcheckback = SystemColors.ControlLightLight;
                itemhovercheckback  = SystemColors.ControlLight;
            }
            #endregion

            InitMenu();
        }
        protected override void OnMeasureItem(MeasureItemEventArgs e)
        {
            MeasureItemEventHandler handler = GetMeasureItemHandler();

            if (handler == null)
            {
                base.OnMeasureItem(e);
                if (e.Index != -1)
                {
                    Graphics g   = e.Graphics;
                    string   str = Items[e.Index].ToString();
                    e.ItemWidth = (int)g.MeasureString(str, this.Font).Width +
                                  SystemInformation.HorizontalScrollBarThumbWidth + 10;
                }
            }
            else
            {
                handler(this, e);
            }
        }
Пример #23
0
        public ListBoxWithIcons(ListBox Duplicate)
        {
            // Copy all events from Duplicate to here...bit of a hack.
            var eventsField      = typeof(System.ComponentModel.Component).GetField("events", BindingFlags.NonPublic | BindingFlags.Instance);
            var eventHandlerList = eventsField.GetValue(Duplicate);

            eventsField.SetValue(this, eventHandlerList);

            DrawMode     = DrawMode.OwnerDrawVariable;
            DrawItem    += new DrawItemEventHandler(OnDrawItem);
            MeasureItem += new MeasureItemEventHandler(OnMeasureItem);

            Left   = Duplicate.Left;
            Top    = Duplicate.Top;
            Width  = Duplicate.Width;
            Height = Duplicate.Height;
            Font   = Duplicate.Font;

            for (int ii = 0; ii < Duplicate.Items.Count; ii++)
            {
                Items.Add(Duplicate.Items[ii]);
            }
        }
 internal void RemoveItem(MenuItem item)
 {
     if (item == this.firstItem)
     {
         this.firstItem = item.nextLinkedItem;
     }
     else
     {
         MenuItem firstItem = this.firstItem;
         while (item != firstItem.nextLinkedItem)
         {
             firstItem = firstItem.nextLinkedItem;
         }
         firstItem.nextLinkedItem = item.nextLinkedItem;
     }
     item.nextLinkedItem = null;
     item.data           = null;
     item.dataVersion    = 0;
     if (item == this.baseItem)
     {
         this.baseItem = this.firstItem;
     }
     if (this.firstItem == null)
     {
         this.onClick       = null;
         this.onPopup       = null;
         this.onSelect      = null;
         this.onDrawItem    = null;
         this.onMeasureItem = null;
         if (this.cmd != null)
         {
             this.cmd.Dispose();
             this.cmd = null;
         }
     }
 }
Пример #25
0
            internal void RemoveItem(MenuItem item) {
                Debug.Assert(item.data == this, "bad item passed to MenuItemData.removeItem");

                if (item == firstItem) {
                    firstItem = item.nextLinkedItem;
                }
                else {
                    MenuItem itemT;
                    for (itemT = firstItem; item != itemT.nextLinkedItem;)
                        itemT = itemT.nextLinkedItem;
                    itemT.nextLinkedItem = item.nextLinkedItem;
                }
                item.nextLinkedItem = null;
                item.data = null;
                item.dataVersion = 0;

                if (item == baseItem) {
                    baseItem = firstItem;
                }

                if (firstItem == null) {
                    // No longer needed. Toss all references and the Command object.
                    Debug.Assert(baseItem == null, "why isn't baseItem null?");
                    onClick = null;
                    onPopup = null;
                    onSelect = null;
                    onDrawItem = null;
                    onMeasureItem = null;
                    if (cmd != null) {
                        cmd.Dispose();
                        cmd = null;
                    }
                }
            }
Пример #26
0
 public ComboxBoxEx()
 {
     DrawItem             += new DrawItemEventHandler(comboBox2_DrawItem);
     MeasureItem          += new MeasureItemEventHandler(comboBox2_MeasureItem);
     SelectedIndexChanged += new EventHandler(comboBox2_SelectedIndexChanged);
 }
Пример #27
0
 public ListBoxWithIcons()
 {
     DrawMode     = DrawMode.OwnerDrawVariable;
     DrawItem    += new DrawItemEventHandler(OnDrawItem);
     MeasureItem += new MeasureItemEventHandler(OnMeasureItem);
 }
 internal void RemoveItem(MenuItem item)
 {
     if (item == this.firstItem)
     {
         this.firstItem = item.nextLinkedItem;
     }
     else
     {
         MenuItem firstItem = this.firstItem;
         while (item != firstItem.nextLinkedItem)
         {
             firstItem = firstItem.nextLinkedItem;
         }
         firstItem.nextLinkedItem = item.nextLinkedItem;
     }
     item.nextLinkedItem = null;
     item.data = null;
     item.dataVersion = 0;
     if (item == this.baseItem)
     {
         this.baseItem = this.firstItem;
     }
     if (this.firstItem == null)
     {
         this.onClick = null;
         this.onPopup = null;
         this.onSelect = null;
         this.onDrawItem = null;
         this.onMeasureItem = null;
         if (this.cmd != null)
         {
             this.cmd.Dispose();
             this.cmd = null;
         }
     }
 }
 internal MenuItemData(MenuItem baseItem, MenuMerge mergeType, int mergeOrder, Shortcut shortcut, bool showShortcut, string caption, EventHandler onClick, EventHandler onPopup, EventHandler onSelect, DrawItemEventHandler onDrawItem, MeasureItemEventHandler onMeasureItem)
 {
     this.AddItem(baseItem);
     this.mergeType = mergeType;
     this.mergeOrder = mergeOrder;
     this.shortcut = shortcut;
     this.showShortcut = showShortcut;
     this.caption = (caption == null) ? "" : caption;
     this.onClick = onClick;
     this.onPopup = onPopup;
     this.onSelect = onSelect;
     this.onDrawItem = onDrawItem;
     this.onMeasureItem = onMeasureItem;
     this.version = 1;
     this.mnemonic = -1;
 }