} // OnMouseOut #endregion #region Hide Menu or Sub Menu private void HideSubMenu() { if (ChildMenu != null) { ((ContextMenu)ChildMenu).HideMenu(true); ChildMenu.Dispose(); ChildMenu = null; } } // HideSubMenu
/// <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; } }
} // 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
//////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// public virtual void HideMenu(bool hideCurrent) { if (hideCurrent) { Visible = false; ItemIndex = -1; } if (ChildMenu != null) { (ChildMenu as ContextMenu).HideMenu(true); ChildMenu.Dispose(); ChildMenu = null; } }
//////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// 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; }
/// <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; }
/// <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); } } } } }
/// <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; } }
//////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// 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); } } } } }
} // 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