예제 #1
0
        } // OnMouseOut

        #endregion

        #region Hide Menu or Sub Menu

        private void HideSubMenu()
        {
            if (ChildMenu != null)
            {
                ((ContextMenu)ChildMenu).HideMenu(true);
                ChildMenu.Dispose();
                ChildMenu = null;
            }
        } // HideSubMenu
예제 #2
0
        /// <summary>
        /// Hides the currently visible child menu.
        /// </summary>
        private void HideSubMenu()
        {
// Child menu to hide?
            if (ChildMenu != null)
            {
                (ChildMenu as ContextMenu).HideMenu(true);
                ChildMenu.Dispose();
                ChildMenu = null;
            }
        }
예제 #3
0
 } // HideSubMenu
 
 public virtual void HideMenu()
 {
     if (ChildMenu != null)
     {
         ((ContextMenu)ChildMenu).HideMenu(true);
         ChildMenu.Dispose();
         ChildMenu = null;
     }
     if (UserInterfaceManager.FocusedControl is MenuBase)
         Focused = true;
     Invalidate();
     ItemIndex = -1;
 } // HideMenu
예제 #4
0
        ////////////////////////////////////////////////////////////////////////////

        ////////////////////////////////////////////////////////////////////////////
        public virtual void HideMenu(bool hideCurrent)
        {
            if (hideCurrent)
            {
                Visible   = false;
                ItemIndex = -1;
            }
            if (ChildMenu != null)
            {
                (ChildMenu as ContextMenu).HideMenu(true);
                ChildMenu.Dispose();
                ChildMenu = null;
            }
        }
예제 #5
0
        ////////////////////////////////////////////////////////////////////////////

        ////////////////////////////////////////////////////////////////////////////
        public virtual void HideMenu()
        {
            if (ChildMenu != null)
            {
                (ChildMenu as ContextMenu).HideMenu(true);
                ChildMenu.Dispose();
                ChildMenu = null;
            }
            if (Manager.FocusedControl is MenuBase)
            {
                Focused = true;
            }
            Invalidate();
            ItemIndex = -1;
        }
예제 #6
0
        /// <summary>
        /// Hides the menu and any visible child menus.
        /// </summary>
        public virtual void HideMenu()
        {
// Child menu to hide?
            if (ChildMenu != null)
            {
                (ChildMenu as ContextMenu).HideMenu(true);
                ChildMenu.Dispose();
                ChildMenu = null;
            }
            if (Manager.FocusedControl is MenuBase)
            {
                Focused = true;
            }
// Force redraw and update selected index.
            Invalidate();
            ItemIndex = -1;
        }
예제 #7
0
        /// <param name="e"></param>
        /// <summary>
        /// Handles mouse button click events for the main menu.
        /// </summary>
        protected override void OnClick(EventArgs e)
        {
            base.OnClick(e);

            var ex = (e is MouseEventArgs) ? (MouseEventArgs)e : new MouseEventArgs();

// Left mouse button clicked?
            if (ex.Button == MouseButton.Left || ex.Button == MouseButton.None)
            {
// Selected item is in menu and usable?
                if (ItemIndex >= 0 && Items[ItemIndex].Enabled)
                {
// Selected menu entry has children?
                    if (ItemIndex >= 0 && Items[ItemIndex].Items != null && Items[ItemIndex].Items.Count > 0)
                    {
// Child menu to hide?
                        if (ChildMenu != null)
                        {
                            ChildMenu.Dispose();
                            ChildMenu = null;
                        }
// Display child menu entries for the selected entry.
                        ChildMenu = new ContextMenu(Manager);
                        (ChildMenu as ContextMenu).RootMenu   = this;
                        (ChildMenu as ContextMenu).ParentMenu = this;
                        (ChildMenu as ContextMenu).Sender     = Root;
                        ChildMenu.Items.AddRange(Items[ItemIndex].Items);

                        var y = Root.AbsoluteTop + rs[ItemIndex].Bottom + 1;
                        (ChildMenu as ContextMenu).Show(Root, Root.AbsoluteLeft + rs[ItemIndex].Left, y);
                        if (ex.Button == MouseButton.None)
                        {
                            (ChildMenu as ContextMenu).ItemIndex = 0;
                        }
                    }
                    else
                    {
// No children. If index is valid, raise the selected entry's click event.
                        if (ItemIndex >= 0)
                        {
                            Items[ItemIndex].ClickInvoke(ex);
                        }
                    }
                }
            }
        }
예제 #8
0
        /// <param name="hideCurrent">
        /// Indicates if the context menu should be hidden (true) or if only the child menu should be
        /// hidden.
        /// </param>
        /// </summary>
        /// Hides the context menu or one of its child menus.
        /// </summary>
        public virtual void HideMenu(bool hideCurrent)
        {
// Hide this menu?
            if (hideCurrent)
            {
                Visible   = false;
                ItemIndex = -1;
            }
// Need to clean up child menu?
            if (ChildMenu != null)
            {
// Hide child and destroy it.
                (ChildMenu as ContextMenu).HideMenu(true);
                ChildMenu.Dispose();
                ChildMenu = null;
            }
        }
예제 #9
0
        ////////////////////////////////////////////////////////////////////////////

        ////////////////////////////////////////////////////////////////////////////
        protected override void OnClick(EventArgs e)
        {
            base.OnClick(e);

            MouseEventArgs ex = (e is MouseEventArgs) ? (MouseEventArgs)e : new MouseEventArgs();

            if (ex.Button == MouseButton.Left || ex.Button == MouseButton.None)
            {
                if (ItemIndex >= 0 && Items[ItemIndex].Enabled)
                {
                    if (ItemIndex >= 0 && Items[ItemIndex].Items != null && Items[ItemIndex].Items.Count > 0)
                    {
                        if (ChildMenu != null)
                        {
                            ChildMenu.Dispose();
                            ChildMenu = null;
                        }
                        ChildMenu = new ContextMenu(Manager);
                        (ChildMenu as ContextMenu).RootMenu   = this;
                        (ChildMenu as ContextMenu).ParentMenu = this;
                        (ChildMenu as ContextMenu).Sender     = this.Root;
                        ChildMenu.Items.AddRange(Items[ItemIndex].Items);

                        int y = Root.AbsoluteTop + rs[ItemIndex].Bottom + 1;
                        (ChildMenu as ContextMenu).Show(this.Root, Root.AbsoluteLeft + rs[ItemIndex].Left, y);
                        if (ex.Button == MouseButton.None)
                        {
                            (ChildMenu as ContextMenu).ItemIndex = 0;
                        }
                    }
                    else
                    {
                        if (ItemIndex >= 0)
                        {
                            Items[ItemIndex].ClickInvoke(ex);
                        }
                    }
                }
            }
        }
예제 #10
0
        } // HideMenu

        #endregion

        #region On Click

        protected override void OnClick(EventArgs e)
        {
            base.OnClick(e);

            MouseEventArgs ex = (e is MouseEventArgs) ? (MouseEventArgs)e : new MouseEventArgs();

            if (ex.Button == MouseButton.Left || ex.Button == MouseButton.None)
            {
                if (ItemIndex >= 0 && Items[ItemIndex].Enabled)
                {
                    if (ItemIndex >= 0 && Items[ItemIndex].Items != null && Items[ItemIndex].Items.Count > 0)
                    {
                        if (ChildMenu != null)
                        {
                            ChildMenu.Dispose();
                            ChildMenu = null;
                        }
                        ChildMenu = new ContextMenu();
                        (ChildMenu as ContextMenu).RootMenu = this;
                        (ChildMenu as ContextMenu).ParentMenu = this;
                        (ChildMenu as ContextMenu).Sender = Root;
                        ChildMenu.Items.AddRange(Items[ItemIndex].Items);

                        int y = Root.ControlTopAbsoluteCoordinate + rectangle[ItemIndex].Bottom + 1;
                        (ChildMenu as ContextMenu).Show(Root, Root.ControlLeftAbsoluteCoordinate + rectangle[ItemIndex].Left, y);
                        if (ex.Button == MouseButton.None) 
                            (ChildMenu as ContextMenu).ItemIndex = 0;
                    }
                    else
                    {
                        if (ItemIndex >= 0)
                        {
                            Items[ItemIndex].OnClick(ex);
                        }
                    }
                }
            }
        } // OnClick