/// <summary> /// </summary> /// <param name = "menuEntry"></param> /// <param name = "menuUid"></param> /// <returns></returns> private MenuEntry getMenuEntryByUid(MenuEntry menuEntry, int menuUid) { MenuEntry menuEntryByUid = null; if (menuEntry.menuType() == GuiMenuEntry.MenuType.MENU) { MenuEntryMenu menuEntryMenu = (MenuEntryMenu)menuEntry; IEnumerator iMenuEntryMenu = menuEntryMenu.iterator(); while (iMenuEntryMenu.MoveNext()) { MenuEntry menuEntryNext = (MenuEntry)iMenuEntryMenu.Current; if (menuEntryNext.menuUid() == menuUid) { return(menuEntryNext); } if (menuEntryNext.menuType() == GuiMenuEntry.MenuType.MENU) { menuEntryByUid = getMenuEntryByUid(menuEntryNext, menuUid); if (menuEntryByUid != null) { if (menuEntryByUid.menuUid() == menuUid) { return(menuEntryByUid); } } } } } return(menuEntryByUid); }
/// <summary> /// Refresh the text of the menu entry. /// If this menu entry is a menu itself, call this method recursively. /// </summary> public void refreshRecursiveMenuesEntryMls(MenuEntry menuEntry) { // 1st refresh the menuentry text menuEntry.refreshText(); // for menu type entry, do a recursive call for each entry. if (menuEntry.menuType() == GuiMenuEntry.MenuType.MENU) { MenuEntryMenu menuEntryMenu = (MenuEntryMenu)menuEntry; IEnumerator iMenuEntryMenu = menuEntryMenu.iterator(); while (iMenuEntryMenu.MoveNext()) { MenuEntry menuEntryNext = (MenuEntry)iMenuEntryMenu.Current; // recursive call for each menu entry. refreshRecursiveMenuesEntryMls(menuEntryNext); } } }
/// <summary> /// Builds actual array list containing menu entries matching the entry name /// </summary> /// <param name = "EntryName">Sring Entry name to be searched</param> /// <param name = "menuEntry">Root menu entry</param> /// <param name = "matchingMnuEntries">Out parameter that will have the matching entries.</param> /// <param name="isPulldown"></param> /// <returns></returns> private void BuildMatchingMenuValues(String entryName, IEnumerator iInnerMnt, bool isPulldown, ArrayList matchingMnuEntries) { while (iInnerMnt.MoveNext()) { MenuEntry innerMnt = (MenuEntry)iInnerMnt.Current; String mntName = innerMnt.getName(); if (mntName != null && (String.CompareOrdinal(mntName, entryName) == 0)) { AddMenuValue(matchingMnuEntries, isPulldown, innerMnt); } if (innerMnt.menuType() == GuiMenuEntry.MenuType.MENU) { MenuEntryMenu menuEntMenu = (MenuEntryMenu)innerMnt; IEnumerator iMenuEntry = menuEntMenu.iterator(); BuildMatchingMenuValues(entryName, iMenuEntry, isPulldown, matchingMnuEntries); } } }