void SelectItem(Menu menu, MenuItem item, bool execute) { MenuItem prev_item = CurrentMenu.SelectedItem; if (prev_item != item.Parent) { DeselectItem(prev_item); if ((CurrentMenu != menu) && (prev_item.Parent != item) && (prev_item.Parent is MenuItem)) { DeselectItem(prev_item.Parent as MenuItem); } } if (CurrentMenu != menu) { CurrentMenu = menu; } item.Selected = true; menu.InvalidateItem(item); if (((CurrentMenu == TopMenu) && execute) || ((CurrentMenu != TopMenu) && popup_active)) { item.PerformSelect(); } if ((execute) && ((prev_item == null) || (item != prev_item.Parent))) { ExecFocusedItem(menu, item); } }
void SelectItem (Menu menu, MenuItem item, bool execute) { MenuItem prev_item = CurrentMenu.SelectedItem; if (prev_item != item.Parent) { DeselectItem (prev_item); if ((CurrentMenu != menu) && (prev_item.Parent != item) && (prev_item.Parent is MenuItem)) { DeselectItem (prev_item.Parent as MenuItem); } } if (CurrentMenu != menu) CurrentMenu = menu; item.Selected = true; menu.InvalidateItem (item); if (((CurrentMenu == TopMenu) && execute) || ((CurrentMenu != TopMenu) && popup_active)) item.PerformSelect (); if ((execute) && ((prev_item == null) || (item != prev_item.Parent))) ExecFocusedItem (menu, item); }