/// <summary> /// Inserts a menu at given position /// </summary> /// <param name = "newEntry">menu to be added</param> /// <param name = "idx">position where menu needs to be inserted</param> public void addMenu(MenuEntry newEntry, int idx) { _menuEntries.Insert(idx, newEntry); }
/// <summary> /// This method destroys all menu objects of the previous menus definitions file, and /// creates a list of all effected forms. When we finished cleaning the usage of the /// previous menus file, we will use these list in order to assign the updated menus /// to the effected objects (forms and controls). /// </summary> public List <MgFormBase> destroy() { List <MgFormBase> formsToRefresh = new List <MgFormBase>(); MgFormBase form = null; if (instantiatedContext.Count > 0 || instantiatedPullDown.Count > 0) { for (int i = 0; i < _menuEntries.Count; i++) { MenuEntry menuEntry = _menuEntries[i]; menuEntry.dispose(); } MenuReference menuReference; // dispose all pulldown menu objects IEnumerator pulldownKeysEnumerator = instantiatedPullDown.Keys.GetEnumerator(); while (pulldownKeysEnumerator.MoveNext()) { form = (MgFormBase)pulldownKeysEnumerator.Current; form.toolbarGroupsCountClear(); if (!formsToRefresh.Contains(form)) { formsToRefresh.Add(form); } menuReference = (MenuReference)instantiatedPullDown[form]; Commands.addAsync(CommandType.DISPOSE_OBJECT, menuReference); } // dispose all context menu objects ICollection contextKeys = instantiatedContext.Keys; IEnumerator contextKeysEnumerator = contextKeys.GetEnumerator(); while (contextKeysEnumerator.MoveNext()) { form = (MgFormBase)contextKeysEnumerator.Current; form.toolbarGroupsCountClear(); if (!formsToRefresh.Contains(form)) { formsToRefresh.Add(form); } menuReference = (MenuReference)instantiatedContext[form]; Commands.addAsync(CommandType.DISPOSE_OBJECT, menuReference); } // dispose all context menu objects ICollection ToolbarKeys = _instantiatedToolbar.Keys; IEnumerator ToolbarKeysEnumerator = ToolbarKeys.GetEnumerator(); while (ToolbarKeysEnumerator.MoveNext()) { form = (MgFormBase)ToolbarKeysEnumerator.Current; form.toolbarGroupsCountClear(); if (!formsToRefresh.Contains(form)) { formsToRefresh.Add(form); } menuReference = (MenuReference)_instantiatedToolbar[form]; if (menuReference != null) { Commands.addAsync(CommandType.DISPOSE_OBJECT, menuReference); } } //TODO: MerlinRT. Which form are we using here ? 'form' changes in all the three while-loops above. //remove the tollbar deleteToolBar(form); // we do not dispose the Toolbar objects - they are created once when the form is created // and are visible\hiddne according to need. _internalEventsOnMenus.Clear(); _internalEventsOnToolBar.Clear(); _menuEntriesWithAccessKey.Clear(); } return(formsToRefresh); }
public void addSubMenu(MenuEntry newEntry) { _menuEntries.Add(newEntry); }