Beispiel #1
0
		public void SetStatusForMenuItems()
		{
			CommandMenuItem item = new CommandMenuItem("Test1", cmdSet, 1);
			menu.Add(item);
			item = new CommandMenuItem("Test2", cmdSet, 2);
			menu.Add(item);

			MenuSystem sys = new TestMenuSystem(this);
			mpCmdIdToStatus[1] = (MenuStatus.Visible|MenuStatus.Enabled);
			mpCmdIdToStatus[2] = (MenuStatus.Visible);
			sys.SetStatusForMenuItems(menu);
			Assert.AreEqual("Test1", Item(0).Text);
			Assert.AreEqual(1, Item(0).MenuCommand.CommandID.ID);
			Assert.IsTrue(Item(0).Visible);
			Assert.IsTrue(Item(0).Enabled);

			Assert.AreEqual("Test2", Item(1).Text);
			Assert.IsTrue(Item(1).Visible);
			Assert.IsFalse(Item(1).Enabled);
		}
Beispiel #2
0
		public void BuildMruList()
		{
			MenuSystem sys = new TestMenuSystem(this);
			CommandMenuItem item = new CommandMenuItem("MRU", cmdSet, mruFirst);
			item.IsDynamic = true;
			menu.Add(item);
			sys.SetStatusForMenuItems(menu);
			Assert.AreEqual(3, menu.Count);
			Assert.AreEqual("MRU 0", Item(0).Text);
			Assert.AreEqual("MRU 1", Item(1).Text);
			Assert.AreEqual("MRU 2", Item(2).Text);
			Assert.AreEqual(mruFirst, Item(0).MenuCommand.CommandID.ID);
			Assert.AreEqual(mruFirst+1, Item(1).MenuCommand.CommandID.ID);
			Assert.AreEqual(mruFirst+2, Item(2).MenuCommand.CommandID.ID);

			sys.SetStatusForMenuItems(menu);		// Drop the menu again
			Assert.AreEqual(3, menu.Count);
			Assert.AreEqual("MRU 0", Item(0).Text);
			Assert.AreEqual("MRU 1", Item(1).Text);
			Assert.AreEqual("MRU 2", Item(2).Text);
			Assert.AreEqual(mruFirst, Item(0).MenuCommand.CommandID.ID);
			Assert.AreEqual(mruFirst+1, Item(1).MenuCommand.CommandID.ID);
			Assert.AreEqual(mruFirst+2, Item(2).MenuCommand.CommandID.ID);
		}
Beispiel #3
0
		public CommandMenuEventArgs(CommandMenuItem item)
		{
			this.item = item;
		}
Beispiel #4
0
 public int SetStatus(IMenuAdapter menu, ICommandTarget ct)
 {
     int visibleItemsInGroup = 0;
     int iLastSeparator = -1;
     int totalVisible = 0;
     for (int i = 0; i < menu.Count; ++i)
     {
         if (menu.IsSeparator(i))
         {
             cmdStatus.Status = visibleItemsInGroup > 0 ? MenuStatus.Visible | MenuStatus.Enabled : 0;
             visibleItemsInGroup = 0;
             iLastSeparator = i;
             menu.SetStatus(i, cmdStatus.Status);
         }
         else if (menu.IsTemporary(i))
         {
             menu.RemoveAt(i);
             --i;
         }
         else
         {
             var cmdId = menu.GetCommandID(i);
             cmdStatus.Status = 0;
             if (cmdId != null && ct.QueryStatus(cmdId, cmdStatus, cmdText))
             {
                 if (menu.IsDynamic(i))
                 {
                     menu.SetText(i, cmdText.Text);
                     cmdId = new CommandID(cmdId.Guid, cmdId.ID + 1);
                     while (ct.QueryStatus(cmdId, cmdStatus, cmdText))
                     {
                         CommandMenuItem itemNew = new CommandMenuItem(cmdText.Text, cmdId.Guid, cmdId.ID);
                         itemNew.IsTemporary = true;
                         itemNew.Popup += popupHandler;
                         itemNew.Click += clickHandler;
                         menu.InsertAt(++i, itemNew);
                         if ((cmdStatus.Status & MenuStatus.Visible) != 0)
                         {
                             ++visibleItemsInGroup;
                             ++totalVisible;
                         }
                         cmdId = new CommandID(cmdId.Guid, cmdId.ID + 1);
                     }
                 }
                 else
                 {
                     if ((cmdStatus.Status & MenuStatus.Visible) != 0)
                     {
                         ++visibleItemsInGroup;
                         ++totalVisible;
                     }
                 }
             }
             menu.SetStatus(i, cmdStatus.Status);
         }
     }
     if (iLastSeparator >= 0 && visibleItemsInGroup == 0)
     {
         menu.SetStatus(iLastSeparator, 0);
     }
     return totalVisible;
 }
Beispiel #5
0
		public void SetItemVisibility(CommandMenuItem item, CommandStatus cmdStatus)
		{
			item.Visible = (cmdStatus.Status & MenuStatus.Visible) != 0;
			item.Enabled = (cmdStatus.Status & MenuStatus.Enabled) != 0;
			item.Checked = (cmdStatus.Status & MenuStatus.Checked) != 0;
		}
Beispiel #6
0
        public DecompilerMenus(ICommandTarget target) : base(target)
        {
			SortedList slMainMenu = CreatePriorityList();
			SortedList slFileMenu = CreatePriorityList();
			SortedList slEditMenu = CreatePriorityList();
			SortedList slViewMenu = CreatePriorityList();
			SortedList slActionMenu = CreatePriorityList();
			SortedList slWindowsMenu = CreatePriorityList();
			SortedList slHelpMenu = CreatePriorityList();
			SortedList slCtxMemoryControl = CreatePriorityList();
			SortedList slCtxDisassembler = CreatePriorityList();
			SortedList slCtxBrowser = CreatePriorityList();
			SortedList slCtxProcedure = CreatePriorityList();
			SortedList slCtxAddressSearch = CreatePriorityList();
			SortedList slCtxCodeView = CreatePriorityList();
			SortedList slMainToolbar = CreatePriorityList();
			
			// Create groups
			
			SortedList slGrpMain = CreatePriorityList();
			slMainMenu.Add(0, slGrpMain);
			SortedList slGrpFile = CreatePriorityList();
			slFileMenu.Add(0, slGrpFile);
			SortedList slGrpFileMru = CreatePriorityList();
			slFileMenu.Add(0, slGrpFileMru);
			SortedList slGrpFileEnd = CreatePriorityList();
			slFileMenu.Add(1000, slGrpFileEnd);
			SortedList slGrpEdit = CreatePriorityList();
			slEditMenu.Add(0, slGrpEdit);
			SortedList slGrpLowLevel = CreatePriorityList();
			slViewMenu.Add(0, slGrpLowLevel);
			SortedList slGrpViewScanned = CreatePriorityList();
			slViewMenu.Add(0, slGrpViewScanned);
			SortedList slGrpActions = CreatePriorityList();
			slActionMenu.Add(0, slGrpActions);
			SortedList slGrpActionsScanned = CreatePriorityList();
			slActionMenu.Add(0, slGrpActionsScanned);
			SortedList slGrpActionsRewritten = CreatePriorityList();
			slActionMenu.Add(0, slGrpActionsRewritten);
			SortedList slGrpWindows = CreatePriorityList();
			slWindowsMenu.Add(0, slGrpWindows);
			SortedList slGrpHelp = CreatePriorityList();
			slHelpMenu.Add(0, slGrpHelp);
			SortedList slGrpMemoryControl = CreatePriorityList();
			slCtxMemoryControl.Add(0, slGrpMemoryControl);
			SortedList slGrpDisassemblerNav = CreatePriorityList();
			slCtxDisassembler.Add(0, slGrpDisassemblerNav);
			SortedList slGrpDisassemblerEdit = CreatePriorityList();
			slCtxDisassembler.Add(0, slGrpDisassemblerEdit);
			SortedList slGrpCodeView = CreatePriorityList();
			slCtxCodeView.Add(0, slGrpCodeView);
			SortedList slGrpBrowser = CreatePriorityList();
			slCtxBrowser.Add(0, slGrpBrowser);
			SortedList slGrpBrowserProc = CreatePriorityList();
			slCtxBrowser.Add(0, slGrpBrowserProc);
			SortedList slGrpBrowserSegm = CreatePriorityList();
			slCtxBrowser.Add(0, slGrpBrowserSegm);
			SortedList slGrpToolbarFileOps = CreatePriorityList();
			slMainToolbar.Add(0, slGrpToolbarFileOps);
			SortedList slGrpToolbarActions = CreatePriorityList();
			slMainToolbar.Add(0, slGrpToolbarActions);
			SortedList slGrpProcedure = CreatePriorityList();
			slCtxProcedure .Add(0, slGrpProcedure);
			SortedList slGrpAddressSearch = CreatePriorityList();
			slCtxAddressSearch.Add(0, slGrpAddressSearch);
    
			// Create commands in containers.
            
            CommandMenuItem slFileOpen = new CommandMenuItem("_Open...", new Guid(CmdSets.Decompiler), CmdIds.FileOpen);
            slFileOpen.IsDynamic = false;
            slFileOpen.ImageIndex = 0;
            CommandMenuItem slFileOpenAs = new CommandMenuItem("Op_en As...", new Guid(CmdSets.Decompiler), CmdIds.FileOpenAs);
            slFileOpenAs.IsDynamic = false;
            
            CommandMenuItem slFileSave = new CommandMenuItem("_Save", new Guid(CmdSets.Decompiler), CmdIds.FileSave);
            slFileSave.IsDynamic = false;
            slFileSave.ImageIndex = 1;
            CommandMenuItem slFileAddBinary = new CommandMenuItem("Add _binary file...", new Guid(CmdSets.Decompiler), CmdIds.FileAddBinary);
            slFileAddBinary.IsDynamic = false;
            
            CommandMenuItem slFileAddMetadata = new CommandMenuItem("Add _metadata file...", new Guid(CmdSets.Decompiler), CmdIds.FileAddMetadata);
            slFileAddMetadata.IsDynamic = false;
            
            CommandMenuItem slFileAssemble = new CommandMenuItem("Add asse_mbler file...", new Guid(CmdSets.Decompiler), CmdIds.FileAssemble);
            slFileAssemble.IsDynamic = false;
            
            CommandMenuItem slFileCloseProject = new CommandMenuItem("Close projec_t", new Guid(CmdSets.Decompiler), CmdIds.FileCloseProject);
            slFileCloseProject.IsDynamic = false;
            
            CommandMenuItem slFileMru = new CommandMenuItem("", new Guid(CmdSets.Decompiler), CmdIds.FileMru);
            slFileMru.IsDynamic = true;
            slGrpFileMru.Add(0, slFileMru);
            CommandMenuItem slFileExit = new CommandMenuItem("E_xit", new Guid(CmdSets.Decompiler), CmdIds.FileExit);
            slFileExit.IsDynamic = false;
            slGrpFileEnd.Add(0, slFileExit);
            CommandMenuItem slEditFind = new CommandMenuItem("_Find...", new Guid(CmdSets.Decompiler), CmdIds.EditFind);
            slEditFind.IsDynamic = false;
            slGrpEdit.Add(0, slEditFind);
            CommandMenuItem slEditCopy = new CommandMenuItem("_Copy", new Guid(CmdSets.Decompiler), CmdIds.EditCopy);
            slEditCopy.IsDynamic = false;
            
            CommandMenuItem slEditCopyAll = new CommandMenuItem("_Copy All", new Guid(CmdSets.Decompiler), CmdIds.EditCopyAll);
            slEditCopyAll.IsDynamic = false;
            
            CommandMenuItem slEditRename = new CommandMenuItem("_Rename", new Guid(CmdSets.Decompiler), CmdIds.EditRename);
            slEditRename.IsDynamic = false;
            slGrpEdit.Add(0, slEditRename);
            CommandMenuItem slEditSelectAll = new CommandMenuItem("Select _all", new Guid(CmdSets.Decompiler), CmdIds.EditSelectAll);
            slEditSelectAll.IsDynamic = false;
            slGrpEdit.Add(0, slEditSelectAll);
            CommandMenuItem slEditProperties = new CommandMenuItem("P_roperties", new Guid(CmdSets.Decompiler), CmdIds.EditProperties);
            slEditProperties.IsDynamic = false;
            
            CommandMenuItem slViewMemory = new CommandMenuItem("_Memory", new Guid(CmdSets.Decompiler), CmdIds.ViewMemory);
            slViewMemory.IsDynamic = false;
            slGrpLowLevel.Add(0, slViewMemory);
            CommandMenuItem slViewDisassembly = new CommandMenuItem("_Disassembly", new Guid(CmdSets.Decompiler), CmdIds.ViewDisassembly);
            slViewDisassembly.IsDynamic = false;
            slGrpLowLevel.Add(0, slViewDisassembly);
            CommandMenuItem slOpenLink = new CommandMenuItem("_Open", new Guid(CmdSets.Decompiler), CmdIds.OpenLink);
            slOpenLink.IsDynamic = false;
            
            CommandMenuItem slOpenLinkInNewWindow = new CommandMenuItem("Open in ne_w window", new Guid(CmdSets.Decompiler), CmdIds.OpenLinkInNewWindow);
            slOpenLinkInNewWindow.IsDynamic = false;
            
            CommandMenuItem slViewGoToAddress = new CommandMenuItem("_Go to Address...", new Guid(CmdSets.Decompiler), CmdIds.ViewGoToAddress);
            slViewGoToAddress.IsDynamic = false;
            slGrpViewScanned.Add(0, slViewGoToAddress);
            CommandMenuItem slViewFindAllProcedures = new CommandMenuItem("Find all _procedures", new Guid(CmdSets.Decompiler), CmdIds.ViewFindAllProcedures);
            slViewFindAllProcedures.IsDynamic = false;
            slGrpViewScanned.Add(0, slViewFindAllProcedures);
            CommandMenuItem slViewShowAllFragments = new CommandMenuItem("Show _all fragments", new Guid(CmdSets.Decompiler), CmdIds.ViewShowAllFragments);
            slViewShowAllFragments.IsDynamic = false;
            slGrpViewScanned.Add(0, slViewShowAllFragments);
            CommandMenuItem slViewShowUnscanned = new CommandMenuItem("Show _unscanned fragments", new Guid(CmdSets.Decompiler), CmdIds.ViewShowUnscanned);
            slViewShowUnscanned.IsDynamic = false;
            slGrpViewScanned.Add(0, slViewShowUnscanned);
            CommandMenuItem slViewFindPattern = new CommandMenuItem("Find selected _pattern...", new Guid(CmdSets.Decompiler), CmdIds.ViewFindPattern);
            slViewFindPattern.IsDynamic = false;
            slGrpViewScanned.Add(0, slViewFindPattern);
            CommandMenuItem slViewFindFragments = new CommandMenuItem("_Find fragments...", new Guid(CmdSets.Decompiler), CmdIds.ViewFindFragments);
            slViewFindFragments.IsDynamic = false;
            slGrpViewScanned.Add(0, slViewFindFragments);
            CommandMenuItem slViewFindWhatPointsHere = new CommandMenuItem("Find _what points here", new Guid(CmdSets.Decompiler), CmdIds.ViewFindWhatPointsHere);
            slViewFindWhatPointsHere.IsDynamic = false;
            slGrpViewScanned.Add(0, slViewFindWhatPointsHere);
            CommandMenuItem slActionRestartDecompilation = new CommandMenuItem("_Restart", new Guid(CmdSets.Decompiler), CmdIds.ActionRestartDecompilation);
            slActionRestartDecompilation.IsDynamic = false;
            slActionRestartDecompilation.ImageIndex = 2;slGrpActions.Add(0, slActionRestartDecompilation);
            CommandMenuItem slActionNextPhase = new CommandMenuItem("_Next Phase", new Guid(CmdSets.Decompiler), CmdIds.ActionNextPhase);
            slActionNextPhase.IsDynamic = false;
            slActionNextPhase.ImageIndex = 3;slGrpActions.Add(0, slActionNextPhase);
            CommandMenuItem slActionFinishDecompilation = new CommandMenuItem("Finish _Decompilation", new Guid(CmdSets.Decompiler), CmdIds.ActionFinishDecompilation);
            slActionFinishDecompilation.IsDynamic = false;
            slActionFinishDecompilation.ImageIndex = 4;slGrpActions.Add(0, slActionFinishDecompilation);
            CommandMenuItem slActionMarkProcedure = new CommandMenuItem("Mark _Procedure Entry", new Guid(CmdSets.Decompiler), CmdIds.ActionMarkProcedure);
            slActionMarkProcedure.IsDynamic = false;
            
            CommandMenuItem slActionScanHeuristically = new CommandMenuItem("Scan _heuristically", new Guid(CmdSets.Decompiler), CmdIds.ActionScanHeuristically);
            slActionScanHeuristically.IsDynamic = false;
            
            CommandMenuItem slActionEditSignature = new CommandMenuItem("Edit _Signature...", new Guid(CmdSets.Decompiler), CmdIds.ActionEditSignature);
            slActionEditSignature.IsDynamic = false;
            
            CommandMenuItem slActionMarkType = new CommandMenuItem("Mark _Type", new Guid(CmdSets.Decompiler), CmdIds.ActionMarkType);
            slActionMarkType.IsDynamic = false;
            
            CommandMenuItem slWindowsCascade = new CommandMenuItem("_Cacade", new Guid(CmdSets.Decompiler), CmdIds.WindowsCascade);
            slWindowsCascade.IsDynamic = false;
            slGrpWindows.Add(0, slWindowsCascade);
            CommandMenuItem slWindowsTileVertical = new CommandMenuItem("Tile _Vertically", new Guid(CmdSets.Decompiler), CmdIds.WindowsTileVertical);
            slWindowsTileVertical.IsDynamic = false;
            slGrpWindows.Add(0, slWindowsTileVertical);
            CommandMenuItem slWindowsTileHorizontal = new CommandMenuItem("Tile _Horizontally", new Guid(CmdSets.Decompiler), CmdIds.WindowsTileHorizontal);
            slWindowsTileHorizontal.IsDynamic = false;
            slGrpWindows.Add(0, slWindowsTileHorizontal);
            CommandMenuItem slWindowsCloseAll = new CommandMenuItem("C_lose All Windows", new Guid(CmdSets.Decompiler), CmdIds.WindowsCloseAll);
            slWindowsCloseAll.IsDynamic = false;
            slGrpWindows.Add(0, slWindowsCloseAll);
            CommandMenuItem slHelpAbout = new CommandMenuItem("_About Decompiler...", new Guid(CmdSets.Decompiler), CmdIds.HelpAbout);
            slHelpAbout.IsDynamic = false;
            slGrpHelp.Add(0, slHelpAbout);
            CommandMenuItem slShowProcedureCallHierarchy = new CommandMenuItem("Call graph", new Guid(CmdSets.Decompiler), CmdIds.ShowProcedureCallHierarchy);
            slShowProcedureCallHierarchy.IsDynamic = false;
            slGrpProcedure.Add(0, slShowProcedureCallHierarchy);
			
			// Create submenus
			
            CommandMenuItem miFileMenu = new CommandMenuItem("_File");
            slGrpMain.Add(0, miFileMenu);
            CommandMenuItem miEditMenu = new CommandMenuItem("_Edit");
            slGrpMain.Add(0, miEditMenu);
            CommandMenuItem miViewMenu = new CommandMenuItem("_View");
            slGrpMain.Add(0, miViewMenu);
            CommandMenuItem miActionMenu = new CommandMenuItem("_Actions");
            slGrpMain.Add(0, miActionMenu);
            CommandMenuItem miWindowsMenu = new CommandMenuItem("_Windows");
            slGrpMain.Add(0, miWindowsMenu);
            CommandMenuItem miHelpMenu = new CommandMenuItem("_Help");
            slGrpMain.Add(0, miHelpMenu);
    
			// Place commands.
			
			slGrpFile.Add(0, slFileOpen);
			slGrpFile.Add(0, slFileOpenAs);
			slGrpFile.Add(0, slFileSave);
			slGrpFile.Add(0, slFileCloseProject);
			slGrpFile.Add(0, slFileAddBinary);
			slGrpFile.Add(0, slFileAddMetadata);
			slGrpFile.Add(0, slFileAssemble);
			slGrpToolbarFileOps.Add(0, slFileOpen);
			slGrpToolbarFileOps.Add(0, slFileSave);
			slGrpEdit.Add(0, slEditCopy);
			slGrpEdit.Add(0, slEditProperties);
			slGrpToolbarActions.Add(0, slActionRestartDecompilation);
			slGrpToolbarActions.Add(0, slActionNextPhase);
			slGrpToolbarActions.Add(0, slActionFinishDecompilation);
			slGrpActionsScanned.Add(0, slActionMarkProcedure);
			slGrpActionsScanned.Add(0, slActionScanHeuristically);
			slGrpMemoryControl.Add(0, slEditCopy);
			slGrpCodeView .Add(0, slEditCopyAll);
			slGrpMemoryControl.Add(0, slViewGoToAddress);
			slGrpMemoryControl.Add(0, slActionMarkProcedure);
			slGrpMemoryControl.Add(0, slActionMarkType);
			slGrpMemoryControl.Add(0, slViewFindPattern);
			slGrpMemoryControl.Add(0, slViewFindWhatPointsHere);
			slGrpDisassemblerNav.Add(0, slOpenLink);
			slGrpDisassemblerNav.Add(0, slOpenLinkInNewWindow);
			slGrpDisassemblerEdit.Add(0, slEditRename);
			slGrpProcedure.Add(0, slActionEditSignature);
			slGrpProcedure.Add(0, slViewGoToAddress);
			slGrpActionsRewritten.Add(0, slActionEditSignature);
			slGrpBrowser.Add(0, slEditProperties);
			slGrpBrowserProc.Add(0, slViewGoToAddress);
			slGrpBrowserProc.Add(0, slActionEditSignature);
			slGrpBrowserProc.Add(0, slViewFindWhatPointsHere);
			slGrpAddressSearch.Add(0, slViewFindWhatPointsHere);
			slGrpAddressSearch.Add(0, slActionMarkProcedure);
			slGrpAddressSearch.Add(0, slActionScanHeuristically);
    
      // Build accelerators.
      
        AddBinding(
           "Decompiler.Gui.Windows.LowLevelViewInteractor", 
          new Guid(CmdSets.Decompiler), 
          CmdIds.ActionMarkType, 
          Keys.T
          , Keys.Control);
      
        AddBinding(
           "", 
          new Guid(CmdSets.Decompiler), 
          CmdIds.ActionNextSearchHit, 
          Keys.F8);
      
        AddBinding(
           "", 
          new Guid(CmdSets.Decompiler), 
          CmdIds.ActionPrevSearchHit, 
          Keys.F8
          , Keys.Shift);
      
        AddBinding(
           "", 
          new Guid(CmdSets.Decompiler), 
          CmdIds.EditCopy, 
          Keys.C
          , Keys.Control);
      
        AddBinding(
           "Decompiler.Gui.Windows.CodeViewerPane", 
          new Guid(CmdSets.Decompiler), 
          CmdIds.EditCopyAll, 
          Keys.C
          , Keys.Control);
      
        AddBinding(
           "", 
          new Guid(CmdSets.Decompiler), 
          CmdIds.EditSelectAll, 
          Keys.A
          , Keys.Control);
      
			this.MainMenu = new System.Windows.Forms.MainMenu();
			BuildMenu(slMainMenu, MainMenu.MenuItems);
  
			BuildMenu(slFileMenu, miFileMenu.MenuItems);
			
			BuildMenu(slEditMenu, miEditMenu.MenuItems);
			
			BuildMenu(slViewMenu, miViewMenu.MenuItems);
			
			BuildMenu(slActionMenu, miActionMenu.MenuItems);
			
			BuildMenu(slWindowsMenu, miWindowsMenu.MenuItems);
			
			BuildMenu(slHelpMenu, miHelpMenu.MenuItems);
			
			this.CtxMemoryControl = new System.Windows.Forms.ContextMenu();
			BuildMenu(slCtxMemoryControl, CtxMemoryControl.MenuItems);
  
        this.CtxMemoryControl.Popup += subMenu_Popup;
      
			this.CtxDisassembler = new System.Windows.Forms.ContextMenu();
			BuildMenu(slCtxDisassembler, CtxDisassembler.MenuItems);
  
        this.CtxDisassembler.Popup += subMenu_Popup;
      
			this.CtxBrowser = new System.Windows.Forms.ContextMenu();
			BuildMenu(slCtxBrowser, CtxBrowser.MenuItems);
  
        this.CtxBrowser.Popup += subMenu_Popup;
      
			this.CtxProcedure = new System.Windows.Forms.ContextMenu();
			BuildMenu(slCtxProcedure, CtxProcedure.MenuItems);
  
        this.CtxProcedure.Popup += subMenu_Popup;
      
			this.CtxAddressSearch = new System.Windows.Forms.ContextMenu();
			BuildMenu(slCtxAddressSearch, CtxAddressSearch.MenuItems);
  
        this.CtxAddressSearch.Popup += subMenu_Popup;
      
			this.CtxCodeView = new System.Windows.Forms.ContextMenu();
			BuildMenu(slCtxCodeView, CtxCodeView.MenuItems);
  
        this.CtxCodeView.Popup += subMenu_Popup;
      
			this.MainToolbar = new System.Windows.Forms.ToolStrip();
			BuildMenu(slMainToolbar, MainToolbar.Items);
  
		}