2020年2月20日 星期四

SharpDevelop IDE 系列研究 (4) - 簡介核心 UI 框架如何硬改

硬核的一篇文章,這篇沒有太多跟外掛有關的東西,而是專注在 IDE 客製化的方式,所以如果只是要參考外掛 AddIns 寫法,可以跳過這篇。



關閉 Menu, Toolbar, Statusbar 


想客製化自己的 IDE ,可以從原生的程式中下手去改,Menu, Toolbar 還有最下角的狀態列,可以在

src/Main/SharpDevelop/Workbench/WpfWorkbench.cs

這個專案中更改,用以下程式碼做解說,請自行找到那一段 (用名稱就可以找到了)

public void Initialize()
{
	UpdateFlowDirection();
	
	var padDescriptors = AddInTree.BuildItems<PadDescriptor>(viewContentPath, this, false);
	((SharpDevelopServiceContainer)SD.Services).AddFallbackProvider(new PadServiceProvider(padDescriptors));
	foreach (PadDescriptor content in padDescriptors) {
		ShowPad(content);
	}
	
	//預設 mainMenu
	mainMenu.ItemsSource = MenuService.CreateMenuItems(this, this, mainMenuPath, activationMethod: "MainMenu", immediatelyExpandMenuBuildersForShortcuts: true);
	
	//下個章節介紹自訂外掛描述檔時,就會使用這個東西
	//mainMenu.ItemsSource = MenuService.CreateMenuItems(this, this, "/SharpDevelop/Workbench/MyCustomMainMenu", activationMethod: "MainMenu", immediatelyExpandMenuBuildersForShortcuts: true);

	toolBars = ToolBarService.CreateToolBars(this, this, "/SharpDevelop/Workbench/ToolBar");
	//關閉 toolBar 服務
	/*foreach (ToolBar tb in toolBars) {
		DockPanel.SetDock(tb, Dock.Top);
		dockPanel.Children.Insert(1, tb);
	}*/
	DockPanel.SetDock(statusBar, Dock.Bottom); //可以關掉 statusBar 文字狀態服務
	dockPanel.Children.Insert(dockPanel.Children.Count - 2, statusBar); //可以關掉 statusBar 文字狀態服務
Core.WinForms.MenuService.ExecuteCommand = ExecuteCommand; Core.WinForms.MenuService.CanExecuteCommand = CanExecuteCommand; UpdateMenu(); AddHandler(Hyperlink.RequestNavigateEvent, new RequestNavigateEventHandler(OnRequestNavigate)); Project.ProjectService.CurrentProjectChanged += SetProjectTitle; SharpDevelop.FileService.FileRemoved += CheckRemovedOrReplacedFile; SharpDevelop.FileService.FileReplaced += CheckRemovedOrReplacedFile; SharpDevelop.FileService.FileRenamed += CheckRenamedFile; SharpDevelop.FileService.FileRemoved += ((RecentOpen)SD.FileService.RecentOpen).FileRemoved; SharpDevelop.FileService.FileRenamed += ((RecentOpen)SD.FileService.RecentOpen).FileRenamed; requerySuggestedEventHandler = new EventHandler(CommandManager_RequerySuggested); CommandManager.RequerySuggested += requerySuggestedEventHandler; SD.ResourceService.LanguageChanged += OnLanguageChanged; SD.StatusBar.SetMessage("${res:MainWindow.StatusBar.ReadyMessage}"); }

一但改完之後,我的上方 toolbar 就消失了。



改 Project Browser 滑鼠 Select, Hover 上去的樣式


其實原生的 Project Browser 真的很醜,如果想改成沒有虛線的那種 Project Menu Item,可以怎麼改?

我的老天鵝

要改這個地方,它是在專案區的 ICSharpCode.SharpDevelop 這個專案,底下的:

src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserControl.cs

這邊分兩塊解釋改法。

建構子改法:


public ProjectBrowserControl()
{
	InitializeComponent();
	treeView.CanClearSelection = false;
	treeView.BeforeSelect   += TreeViewBeforeSelect;
	treeView.AfterExpand    += TreeViewAfterExpand;
	FileService.FileRenamed += FileServiceFileRenamed;
	FileService.FileRemoved += FileServiceFileRemoved;

	//can listen hover to draw (滑鼠一移動上去就觸發嗎?)
	//treeView.HotTracking = true;

	SD.ProjectService.ProjectItemAdded += ProjectServiceProjectItemAdded;
	treeView.DrawNode += TreeViewDrawNode;
	treeView.DragDrop += TreeViewDragDrop;
}


以及 TreeViewDrawNode 方法的改法:


//https://social.msdn.microsoft.com/Forums/vstudio/en-US/22e04bda-8dae-4f73-a5ef-34795212e8cb/treeview-highlighted-row-color?forum=vbgeneral
//更改 tab 被選中時, highlight 該 file
void TreeViewDrawNode(object sender, DrawTreeNodeEventArgs e)
{
	TreeNodeStates state = e.State;
	Font font = e.Node.NodeFont ?? e.Node.TreeView.Font;
	Color fore = e.Node.ForeColor;
	if (fore == Color.Empty) fore = e.Node.TreeView.ForeColor;
	if (e.Node == e.Node.TreeView.SelectedNode)
	{
		e.Graphics.FillRectangle(new SolidBrush(Color.FromArgb(67, 134, 185)), e.Bounds);
		e.Graphics.DrawRectangle(Pens.White, e.Bounds.X, e.Bounds.Y, e.Bounds.Width - 1, e.Bounds.Height - 1);
		TextRenderer.DrawText(e.Graphics, e.Node.Text, font, e.Bounds, Color.White, TextFormatFlags.SingleLine);
		e.DrawDefault = false; //refuse satate of current draw
		/*fore = SystemColors.HighlightText;
		e.Graphics.FillRectangle(Color.Red), e.Bounds);
		ControlPaint.DrawFocusRectangle(e.Graphics, e.Bounds, fore, Color.Red);
		TextRenderer.DrawText(e.Graphics, e.Node.Text, font, e.Bounds, fore, Color.Red, TextFormatFlags.GlyphOverhangPadding);*/
	}
	else if (state == TreeNodeStates.Hot && !e.Node.IsExpanded)
	{
		using (Pen solidpen = new Pen(SystemColors.WindowText))
		{
			font = new Font(font, FontStyle.Regular);
			solidpen.DashStyle = System.Drawing.Drawing2D.DashStyle.Solid;
			Color h = SystemColors.Highlight;
			solidpen.Color = Color.FromArgb(67, 134, 185);
			e.Graphics.DrawRectangle(solidpen, e.Bounds.X, e.Bounds.Y, e.Bounds.Width - 1, e.Bounds.Height - 1);
			TextRenderer.DrawText(e.Graphics, e.Node.Text, font, e.Bounds, Color.Black, TextFormatFlags.SingleLine);
			e.DrawDefault = false;
		}
	}
	else
	{
		e.Graphics.FillRectangle(SystemBrushes.Window, e.Bounds);
		TextRenderer.DrawText(e.Graphics, e.Node.Text, font, e.Bounds, fore, TextFormatFlags.GlyphOverhangPadding);
		e.DrawDefault = true; //refuse state of current draw
	}
	Console.WriteLine(state);
}


可以稍微比較一下舊的檔案跟現在這塊程式的差別,就不多閘述。



我不想要 Menu 一堆東西,要去哪裡刪掉


我是不建議刪掉,所以我們可以嘗試做一個自己的 Menu Tree,取代掉舊的 Menu 就好,要改這個地方,它是在專案區的 ICSharpCode.SharpDevelop 這個專案,底下的:

src/Main/Base/Project/ICSharpCode.SharpDevelop.addin

在這邊,你可能會發現這裡也有 .addin 檔案,事實上 SharpDevelop 的很多功能都是外掛搭上來的,然而 Sharpdevelop 有區分出 BackendBinding 跟 DisplayBinding 等不同 Binding 屬性的外掛,會有不同時間的進入點或觸發機制,或是背景執行。 (像上一篇就是被動執行外掛,如果是屬於 BackendBinding ,就會在一開始被主動執行外掛,差別就像被動的話,出錯要在按下 Menu Item 開啟後才會發生,主動的話,一開始 Startup 就會噴錯了)

回歸正題,我們要在 .addin 的檔案中,去新增一個一模一樣的 Menu Tree ,對照的範本,就是找到最上面第一節更改 Menu Bar 那堆程式碼的路徑拿去搜尋就可以找到:

const string mainMenuPath = "/SharpDevelop/Workbench/MainMenu"; //差不多在 Line: 51 可以看到 mainMenuPath
...
//預設 mainMenu
mainMenu.ItemsSource = MenuService.CreateMenuItems(this, this, mainMenuPath, activationMethod: "MainMenu", immediatelyExpandMenuBuildersForShortcuts: true);
	
//下個章節介紹自訂外掛描述檔時,就會使用這個東西
//mainMenu.ItemsSource = MenuService.CreateMenuItems(this, this, "/SharpDevelop/Workbench/MyCustomMainMenu", activationMethod: "MainMenu", immediatelyExpandMenuBuildersForShortcuts: true);

這段程式碼其實已經秀出 Menu 的 Path 了,我們稍微找出原本 Main Menu 的 Menu Tree XML 是什麼,然後複製一個一樣的,稱做 MyCustom (查這個字就可以看到),因為這個設定檔有 1 千多行,就麻煩自行複製回編輯器去看了,其中我有註解掉一些 Pad 的東西,也可以當作參考。

<AddIn name        = "SharpDevelop"
       author      = "Mike Krueger"
       copyright   = "prj:///doc/copyright.txt"
       url         = "http://www.icsharpcode.net"
       description = "SharpDevelop main module"
       addInManagerHidden = "true">
	
	<Manifest>
		<Identity name = "SharpDevelop" version = "@SharpDevelopCoreVersion"/>
	</Manifest>
	
	<Runtime>
		<Import assembly=":ICSharpCode.SharpDevelop">
			<ConditionEvaluator name="ActiveContentExtension" class="ICSharpCode.SharpDevelop.ActiveContentExtensionConditionEvaluator"/>
			<ConditionEvaluator name="ActiveViewContentUntitled" class="ICSharpCode.SharpDevelop.ActiveViewContentUntitledConditionEvaluator"/>
			<ConditionEvaluator name="ActiveWindowState" class="ICSharpCode.SharpDevelop.ActiveWindowStateConditionEvaluator"/>
			<ConditionEvaluator name="SolutionOpen" class="ICSharpCode.SharpDevelop.SolutionOpenConditionEvaluator"/>
			<ConditionEvaluator name="DebuggerSupports" class="ICSharpCode.SharpDevelop.Debugging.DebuggerSupportsConditionEvaluator"/>
			<ConditionEvaluator name="IsProcessRunning" class="ICSharpCode.SharpDevelop.Debugging.IsProcessRunningConditionEvaluator"/>
			<ConditionEvaluator name="OpenWindowState" class="ICSharpCode.SharpDevelop.OpenWindowStateConditionEvaluator"/>
			<ConditionEvaluator name="WindowActive" class="ICSharpCode.SharpDevelop.WindowActiveConditionEvaluator"/>
			<ConditionEvaluator name="WindowOpen" class="ICSharpCode.SharpDevelop.WindowOpenConditionEvaluator"/>
			<ConditionEvaluator name="WriteableProject" class="ICSharpCode.SharpDevelop.WriteableProjectConditionEvaluator"/>
			<ConditionEvaluator name="WriteableSolution" class="ICSharpCode.SharpDevelop.WriteableSolutionConditionEvaluator"/>
			<ConditionEvaluator name="ProjectActive" class="ICSharpCode.SharpDevelop.ProjectActiveConditionEvaluator"/>
			<ConditionEvaluator name="TextContent" class="ICSharpCode.SharpDevelop.Editor.TextContentConditionEvaluator"/>
			<ConditionEvaluator name="BrowserLocation" class="ICSharpCode.SharpDevelop.BrowserDisplayBinding.BrowserLocationConditionEvaluator"/>
			<ConditionEvaluator name="RefactoringProviderSupports" class="ICSharpCode.SharpDevelop.Refactoring.RefactoringProviderSupportsConditionEvaluator"/>
			<ConditionEvaluator name="CanNavigateBack" class="ICSharpCode.SharpDevelop.CanNavigateBackConditionEvaluator"/>
			<ConditionEvaluator name="CanNavigateForward" class="ICSharpCode.SharpDevelop.CanNavigateForwardConditionEvaluator"/>
			<ConditionEvaluator name="CompareProjectProperty" class="ICSharpCode.SharpDevelop.CompareProjectPropertyConditionEvaluator"/>
			<ConditionEvaluator name="ProjectItem" class="ICSharpCode.SharpDevelop.Project.ProjectItemConditionEvaluator"/>
			<ConditionEvaluator name="IsTextSelected" class="ICSharpCode.SharpDevelop.Editor.TextSelectedCondition"/>
			<ConditionEvaluator name="ViewInBrowser" class="ICSharpCode.SharpDevelop.ViewInBrowserConditionEvaluator"/>
			<ConditionEvaluator name="ProjectBehaviorSupported" class="ICSharpCode.SharpDevelop.Project.ProjectBehaviorSupportedConditionEvaluator"/>
			<ConditionEvaluator name="SymbolTypeAtCaret" class="ICSharpCode.SharpDevelop.Internal.ConditionEvaluators.SymbolTypeAtCaretConditionEvaluator"/>
			<ConditionEvaluator name="IsAssemblyUnpinned" class="ICSharpCode.SharpDevelop.Dom.ClassBrowser.IsAssemblyUnpinnedConditionEvaluator"/>
			
			<Doozer name="CustomTool" class="ICSharpCode.SharpDevelop.Project.CustomToolDoozer"/>
			<Doozer name="CustomProperty" class="ICSharpCode.SharpDevelop.Project.CustomPropertyDoozer"/>
			<Doozer name="OptionPanel" class="ICSharpCode.SharpDevelop.OptionPanelDoozer"/>
			<Doozer name="DisplayBinding" class="ICSharpCode.SharpDevelop.Workbench.DisplayBindingDoozer"/>
			<Doozer name="Pad" class="ICSharpCode.SharpDevelop.PadDoozer"/>
			<Doozer name="ProjectBinding" class="ICSharpCode.SharpDevelop.Project.ProjectBindingDoozer"/>
			<Doozer name="LanguageBinding" class="ICSharpCode.SharpDevelop.LanguageBindingDoozer"/>
			<Doozer name="TextEditorExtension" class="ICSharpCode.SharpDevelop.Editor.TextEditorExtensionDoozer"/>
			<Doozer name="BrowserSchemeExtension" class="ICSharpCode.SharpDevelop.BrowserDisplayBinding.SchemeExtensionDoozer"/>
			<Doozer name="CodeCompletionBinding" class="ICSharpCode.SharpDevelop.Editor.CodeCompletion.CodeCompletionBindingDoozer"/>
			<Doozer name="Directory" class="ICSharpCode.SharpDevelop.DirectoryDoozer"/>
			<Doozer name="TaskBoundAdditionalLogger" class="ICSharpCode.SharpDevelop.Project.TaskBoundAdditionalLoggerDoozer"/>
			<Doozer name="TaskBoundLoggerFilter" class="ICSharpCode.SharpDevelop.Project.TaskBoundLoggerFilterDoozer"/>
			<Doozer name="TemplateFile" class="ICSharpCode.SharpDevelop.Templates.TemplateFileDoozer"/>
			<Doozer name="TemplateCategory" class="ICSharpCode.SharpDevelop.Templates.TemplateCategoryDoozer"/>
		</Import>
		<Import assembly=":SharpDevelop">
			<Doozer name="Parser" class="ICSharpCode.SharpDevelop.Parser.ParserDoozer"/>
		</Import>
	</Runtime>
	
	<Path name="/SharpDevelop/Services">
		<Service id="ICSharpCode.SharpDevelop.Parser.IGlobalAssemblyCacheService"
		         class="ICSharpCode.SharpDevelop.Parser.GlobalAssemblyCacheService"/>
		<Service id="ICSharpCode.SharpDevelop.Parser.IParserService"
		         class="ICSharpCode.SharpDevelop.Parser.ParserService"/>
		<Service id="ICSharpCode.SharpDevelop.Parser.IAssemblyParserService"
		         class="ICSharpCode.SharpDevelop.Parser.AssemblyParserService"/>
		<Service id="ICSharpCode.SharpDevelop.Workbench.IFileService"
		         class="ICSharpCode.SharpDevelop.Workbench.FileService"/>
		<Service id="ICSharpCode.SharpDevelop.Workbench.IShutdownService"
		         class="ICSharpCode.SharpDevelop.Workbench.ShutdownService"/>
		<Service id="ICSharpCode.SharpDevelop.Workbench.IDisplayBindingService"
		         class="ICSharpCode.SharpDevelop.Workbench.DisplayBindingService"/>
		<Service id="ICSharpCode.SharpDevelop.Dom.ITreeNodeFactory"
		         class="ICSharpCode.SharpDevelop.Dom.TreeNodeFactoryService"/>
		<Service id="ICSharpCode.SharpDevelop.Dom.IModelFactory"
		         class="ICSharpCode.SharpDevelop.Dom.ModelFactory"/>
		<Service id="ICSharpCode.SharpDevelop.IClipboard"
		         class="ICSharpCode.SharpDevelop.ClipboardWrapper"/>
		<Service id="ICSharpCode.SharpDevelop.IFileSystem"
		         class="ICSharpCode.SharpDevelop.FileSystem"/>
		<Service id="ICSharpCode.SharpDevelop.Templates.ITemplateService"
		         class="ICSharpCode.SharpDevelop.Templates.TemplateService"/>
		<Service id="ICSharpCode.SharpDevelop.Project.IBuildService"
		         class="ICSharpCode.SharpDevelop.Project.BuildService"/>
		<Service id="ICSharpCode.SharpDevelop.Project.IProjectService"
		         class="ICSharpCode.SharpDevelop.Project.SDProjectService"/>
		<Service id="ICSharpCode.SharpDevelop.ILanguageService"
		         class="ICSharpCode.SharpDevelop.SDLanguageService"/>
		<Service id="ICSharpCode.SharpDevelop.Project.IMSBuildEngine"
		         class="ICSharpCode.SharpDevelop.Project.MSBuildEngine"/>
		<Service id="ICSharpCode.SharpDevelop.Editor.Bookmarks.IBookmarkManager"
		         class="ICSharpCode.SharpDevelop.Editor.Bookmarks.BookmarkManager"/>
		<Service id="ICSharpCode.SharpDevelop.IUIService"
		         class="ICSharpCode.SharpDevelop.UIService"/>
		<Service id="ICSharpCode.SharpDevelop.Dom.ClassBrowser.IClassBrowser"
		         class="ICSharpCode.SharpDevelop.Dom.ClassBrowser.ClassBrowserServiceImpl"/>
		<Service id="ICSharpCode.SharpDevelop.WinForms.IWinFormsService"
		         class="ICSharpCode.SharpDevelop.WinForms.WinFormsService"/>
		<Service id="ICSharpCode.SharpDevelop.WinForms.IWinFormsMenuService"
		         class="ICSharpCode.SharpDevelop.WinForms.WinFormsMenuService"/>
		<Service id="ICSharpCode.SharpDevelop.WinForms.IWinFormsToolbarService"
		         class="ICSharpCode.SharpDevelop.WinForms.WinFormsToolbarService"/>
	</Path>
	
	<Path name = "/SharpDevelop/Workbench/Ambiences">
	</Path>
	
	<Path name = "/SharpDevelop/Workbench/DisplayBindings">
		<DisplayBinding id    = "Browser"
		                title = "${res:Gui.ProjectBrowser.OpenWith.Bindings.WebBrowser}"
		                class = "ICSharpCode.SharpDevelop.BrowserDisplayBinding.BrowserDisplayBinding"/>
		<DisplayBinding id    = "AutoDetect"
		                title = "Auto-detect file type"
		                class = "ICSharpCode.SharpDevelop.Workbench.AutoDetectDisplayBinding"/>
		<DisplayBinding id    = "ShellExecute"
		                title = "${res:Gui.ProjectBrowser.OpenWith.Bindings.DefaultWindowsApplication}"
		                class = "ICSharpCode.SharpDevelop.Workbench.ShellExecuteDisplayBinding" />
	</Path>
	
	<Path name = "/SharpDevelop/Workbench/FileFilter">
		<FileFilter id         = "AllFiles"
		            name       = "${res:SharpDevelop.FileFilter.AllFiles}"
		            extensions = "*.*"/>
	</Path>
	
	<Path name = "/SharpDevelop/Workbench/Pads">
		<Pad id       = "ProjectBrowser"
		     category = "Main"
		     title    = "${res:MainWindow.Windows.ProjectScoutLabel}"
		     icon     = "PadIcons.ProjectBrowser"
		     class    = "ICSharpCode.SharpDevelop.Project.ProjectBrowserPad"
		     defaultPosition = "Left, Hidden" />
		
		<!--<Pad id       = "ClassBrowser"
		     category = "Main"
		     title    = "${res:MainWindow.Windows.ClassScoutLabel}"
		     icon     = "PadIcons.ClassBrowser"
		     class    = "ICSharpCode.SharpDevelop.Dom.ClassBrowser.ClassBrowserPad"
		     defaultPosition = "Right" />
		
		<Pad id       = "SideBar"
		     category = "Main"
		     title    = "${res:MainWindow.Windows.ToolbarLabel}"
		     icon     = "PadIcons.Toolbar"
		     class    = "ICSharpCode.SharpDevelop.Gui.ToolsPad"
		     defaultPosition = "Left" />
		
		<Pad id       = "OutlinePad"
		     category = "Main"
		     title    = "${res:MainWindow.Windows.OutlinePad}"
		     icon     = "PadIcons.Toolbar"
		     class    = "ICSharpCode.SharpDevelop.Gui.OutlinePad"
		     defaultPosition = "Left, Hidden" />
		-->
		<Pad id       = "ErrorList"
		     category = "Main"
		     title    = "${res:MainWindow.Windows.ErrorList}"
		     icon     = "PadIcons.ErrorList"
		     class    = "ICSharpCode.SharpDevelop.Gui.ErrorListPad"
		     defaultPosition = "Bottom" />
		
		<!--<Pad id       = "TaskList"
		     category = "Main"
		     title    = "${res:MainWindow.Windows.TaskList}"
		     icon     = "PadIcons.TaskList"
		     class    = "ICSharpCode.SharpDevelop.Gui.TaskListPad"
		     defaultPosition = "Bottom" />
		-->
		<Pad id       = "OutputPad"
		     category = "Main"
		     title    = "${res:MainWindow.Windows.OutputWindow}"
		     icon     = "PadIcons.Output"
		     class    = "ICSharpCode.SharpDevelop.Gui.CompilerMessageView"
		     defaultPosition = "Bottom" />
		
		<!--<Pad id       = "PropertyPad"
		     category = "Main"
		     title    = "${res:MainWindow.Windows.PropertiesScoutLabel}"
		     icon     = "Icons.16x16.PropertiesIcon"
		     shortcut = "F4"
		     class    = "ICSharpCode.SharpDevelop.Gui.PropertyPad"
		     defaultPosition = "Right" />
		
		<Pad id       = "FileScout"
		     category = "Tools"
		     title    = "${res:MainWindow.Windows.FileScoutLabel}"
		     icon     = "PadIcons.FileBrowser"
		     class    = "ICSharpCode.SharpDevelop.Gui.FileScout"
		     defaultPosition = "Left, Hidden" />
		
		<Pad id       = "SearchResults"
		     category = "Tools"
		     title    = "${res:MainWindow.Windows.SearchResultsLabel}"
		     icon     = "PadIcons.FindResults"
		     class    = "ICSharpCode.SharpDevelop.Editor.Search.SearchResultsPad"
		     defaultPosition = "Bottom, Hidden" />
		
		<Pad id       = "Bookmarks"
		     category = "Tools"
		     title    = "${res:MainWindow.Windows.BookmarksLabel}"
		     icon     = "PadIcons.Bookmarks"
		     class    = "ICSharpCode.SharpDevelop.Editor.Bookmarks.BookmarkPad"
		     defaultPosition = "Bottom, Hidden" />
		
		<Pad id       = "DefinitionView"
		     category = "Tools"
		     title    = "${res:MainWindow.Windows.DefinitionViewLabel}"
		     icon     = "PadIcons.DefinitionView"
		     class    = "ICSharpCode.SharpDevelop.Gui.DefinitionViewPad"
		     defaultPosition = "Bottom, Hidden" />-->
	</Path>
	
	<Path name = "/SharpDevelop/Workbench/Combine/FileFilter">
		<FileFilter id         = "Solution"
		            name       = "${res:SharpDevelop.FileFilter.SolutionFiles}"
		            extensions = "*.sln"/>
		
		<FileFilter id         = "AllFiles"
		            name       = "${res:SharpDevelop.FileFilter.AllFiles}"
		            extensions = "*.*"/>
	</Path>
	
	<!-- Project browser Paths -->
	<Path name = "/SharpDevelop/Pads/ProjectBrowser/ToolBar/Standard">
		<Condition name = "SolutionOpen" action="Disable">
			<ToolbarItem id      = "Properties"
			             icon    = "Icons.16x16.PropertiesIcon"
			             tooltip = "${res:MainWindow.Windows.PropertiesScoutLabel}"
			             class   = "ICSharpCode.SharpDevelop.Project.Commands.ShowPropertiesForNode"/>
			<ToolbarItem id = "PropertySeparator" type = "Separator"/>
			<ToolbarItem id      = "ShowAll"
			             type    = "CheckBox"
			             icon    = "ProjectBrowser.Toolbar.ShowHiddenFiles"
			             tooltip = "${res:Gui.ProjectBrowser.ShowAllFiles}"
			             class   = "ICSharpCode.SharpDevelop.Project.Commands.ToggleShowAll"/>
			<ToolbarItem id      = "Refresh"
			             icon    = "ProjectBrowser.Toolbar.Refresh"
			             tooltip = "${res:Global.Refresh}"
			             class   = "ICSharpCode.SharpDevelop.Project.Commands.RefreshProjectBrowser"/>
			<ToolbarItem id = "PropertySeparator" type = "Separator"/>
			<ToolbarItem id      = "Collapse"
			             icon    = "Icons.16x16.Collection"
			             tooltip = "${res:MainWindow.Windows.SearchResultPanel.CollapseAll.ToolTip}"
			             class   = "ICSharpCode.SharpDevelop.Project.Commands.CollapseAllProjectBrowser"/>
		</Condition>
	</Path>
	
	<Path name = "/SharpDevelop/Pads/ProjectBrowser/ToolBar/File">
		<ToolbarItem id      = "OpenFile"
		             icon    = "Icons.16x16.OpenFileIcon"
		             tooltip = "${res:Gui.ProjectBrowser.Open}"
		             class   = "ICSharpCode.SharpDevelop.Project.Commands.OpenFileFromProjectBrowser"/>
	</Path>
	
	<Path path = "/SharpDevelop/Pads/ProjectBrowser/ContextMenu/SolutionNode">
		<MenuItem id = "Build"
		          label = "${res:XML.MainMenu.BuildMenu.BuildSolution}"
		          shortcut = "F8"
		          icon  = "Icons.16x16.BuildCombine"
		          class = "ICSharpCode.SharpDevelop.Project.Commands.Build"/>
		<MenuItem id = "Rebuild"
		          label = "${res:XML.MainMenu.BuildMenu.RebuildSolution}"
		          shortcut = "Alt|F8"
		          class = "ICSharpCode.SharpDevelop.Project.Commands.Rebuild"/>
		<MenuItem id = "Clean"
		          label = "${res:XML.MainMenu.BuildMenu.CleanSolution}"
		          class = "ICSharpCode.SharpDevelop.Project.Commands.Clean"/>
		<MenuItem id = "CombineBuildGroupSeparator" type = "Separator"/>
		
		<Condition name="WriteableSolution" action="Disable">
			<MenuItem id = "CombineAddMenu" label = "${res:ProjectComponent.ContextMenu.AddMenu}" type = "Menu">
				<MenuItem id    = "AddNewProjectToSolution"
				          label = "${res:ProjectComponent.ContextMenu.NewProject}"
				          icon  = "Icons.16x16.NewProjectIcon"
				          class = "ICSharpCode.SharpDevelop.Project.Commands.AddNewProjectToSolution"/>
				<MenuItem id    = "AddExitingProjectToSolution"
				          label = "${res:ProjectComponent.ContextMenu.ExistingProject}"
				          class = "ICSharpCode.SharpDevelop.Project.Commands.AddExistingProjectToSolution"/>
				<MenuItem id    = "Separator1" type = "Separator" />
				<MenuItem id    = "AddItem"
				          label = "${res:ProjectComponent.ContextMenu.AddItem}"
				          class = "ICSharpCode.SharpDevelop.Project.Commands.AddExistingItemToSolution"/>
				<MenuItem id    = "AddNewSolutionFolderToSolution"
				          icon  = "ProjectBrowser.SolutionFolder.CreateNew"
				          label = "${res:ProjectComponent.ContextMenu.NewSolutionFolder}"
				          class = "ICSharpCode.SharpDevelop.Project.Commands.AddNewSolutionFolderToSolution"/>
			</MenuItem>
		</Condition>
		
		<MenuItem id = "AddSeparator" type = "Separator"/>
		<MenuItem id = "OpenFolderContainingFile"
		          label = "${res:Gui.ProjectBrowser.OpenFolderInExplorer}"
		          class = "ICSharpCode.SharpDevelop.Project.Commands.OpenFolderContainingFile"/>
		<MenuItem id = "OpenCommandPromptHere"
		          label = "${res:OpenFileTabEventHandler.OpenCommandPromptHere}"
		          class = "ICSharpCode.SharpDevelop.Project.Commands.OpenCommandPromptHere"/>
		<MenuItem id = "OpenSeparator" type = "Separator"/>
		<MenuItem id    = "CollapseAll"
		          label = "${res:ProjectComponent.ContextMenu.CollapseAll}"
		          class = "ICSharpCode.SharpDevelop.Project.Commands.CollapseAll"/>
		<MenuItem id    = "Paste"
		          label = "${res:XML.MainMenu.EditMenu.Paste}"
		          icon  = "Icons.16x16.PasteIcon"
		          loadclasslazy = "false"
		          class = "ICSharpCode.SharpDevelop.Project.Commands.PasteProjectBrowserNode"/>
		<MenuItem id       = "Rename"
		          label    = "${res:ProjectComponent.ContextMenu.Rename}"
		          shortcut = "F2"
		          class    = "ICSharpCode.SharpDevelop.Project.Commands.RenameEntryEvent"/>
		<MenuItem id = "Separator3" type = "Separator"/>
		<MenuItem id    = "Properties"
		          icon  = "Icons.16x16.PropertiesIcon"
		          label = "${res:XML.MainMenu.FormatMenu.ShowProperties}"
		          class = "ICSharpCode.SharpDevelop.Project.Commands.ShowPropertiesForNode"/>
	</Path>
	
	<Path path = "/SharpDevelop/Pads/ProjectBrowser/ContextMenu/SolutionFolderNode">
		<Include id = "CombineAddMenu" item="/SharpDevelop/Pads/ProjectBrowser/ContextMenu/SolutionNode/CombineAddMenu"/>
		
		<Include id = "CollapseAll" item="/SharpDevelop/Pads/ProjectBrowser/ContextMenu/SolutionNode/CollapseAll"/>
		
		<MenuItem id = "AddSeparator" type = "Separator"/>
		<Include id="CutPasteRemoveRename" path="/SharpDevelop/Pads/ProjectBrowser/ContextMenu/CutPasteRemoveRename"/>
	</Path>
	
	<Path path = "/SharpDevelop/Pads/ProjectBrowser/ContextMenu/SolutionItemNode">
		<MenuItem id = "OpenFile"
		          label = "${res:ProjectComponent.ContextMenu.Open}"
		          icon  = "Icons.16x16.OpenFileIcon"
		          class = "ICSharpCode.SharpDevelop.Project.Commands.OpenFileFromProjectBrowser"/>
		<MenuItem id      = "OpenFileWith"
		          label = "${res:Gui.ProjectBrowser.OpenWith}"
		          class   = "ICSharpCode.SharpDevelop.Project.Commands.OpenFileFromProjectBrowserWith"/>
		<MenuItem id = "OpenFolderContainingFile"
		          label = "${res:OpenFileTabEventHandler.FileContainingFolderInExplorer}"
		          class = "ICSharpCode.SharpDevelop.Project.Commands.OpenFolderContainingFile"/>
		<MenuItem id = "OpenCommandPromptHere"
		          label = "${res:OpenFileTabEventHandler.OpenCommandPromptHere}"
		          class = "ICSharpCode.SharpDevelop.Project.Commands.OpenCommandPromptHere"/>
		<MenuItem id = "OpenSeparator" type = "Separator" />
		<Include id="CutCopyRemoveRename" path="/SharpDevelop/Pads/ProjectBrowser/ContextMenu/CutCopyRemoveRename"/>
	</Path>
	
	<Path path = "/SharpDevelop/Pads/ProjectBrowser/ContextMenu/ProjectNode">
		<MenuItem id = "Build project"
		          label = "${res:ProjectComponent.ContextMenu.Build}"
		          icon  = "Icons.16x16.BuildCurrentSelectedProject"
		          class = "ICSharpCode.SharpDevelop.Project.Commands.BuildProject"/>
		<MenuItem id = "Rebuild project"
		          label = "${res:ProjectComponent.ContextMenu.Rebuild}"
		          class = "ICSharpCode.SharpDevelop.Project.Commands.RebuildProject"/>
		<MenuItem id = "Clean project"
		          label = "${res:ProjectComponent.ContextMenu.Clean}"
		          class = "ICSharpCode.SharpDevelop.Project.Commands.CleanProject"/>
		<!--<MenuItem id = "Publish project"
		          label = "${res:XML.MainMenu.BuildMenu.PublishProject}"
		          class = "ICSharpCode.SharpDevelop.Project.Commands.PublishProject"/>-->
		<MenuItem id = "CombineBuildGroupSeparator" type = "Separator"/>
		
		<Condition name="WriteableProject" action="Disable">
			<MenuItem id = "ProjectAddMenu" label = "${res:ProjectComponent.ContextMenu.AddMenu}" type = "Menu" >
				<Include path="/SharpDevelop/Pads/ProjectBrowser/ContextMenu/FolderNode/Add"/>
			</MenuItem>
			
			<MenuItem id    = "AddReference"
			          label = "${res:ProjectComponent.ContextMenu.AddReference}"
			          class = "ICSharpCode.SharpDevelop.Project.Commands.AddReferenceToProject"/>
			<MenuItem id    = "AddServiceReference"
			          label = "${res:ProjectComponent.ContextMenu.AddServiceReference}"
			          class = "ICSharpCode.SharpDevelop.Project.Commands.AddServiceReferenceToProject"/>
			<MenuItem id    = "AddWebReference"
			          label = "${res:ProjectComponent.ContextMenu.AddWebReference}"
			          class = "ICSharpCode.SharpDevelop.Project.Commands.AddWebReferenceToProject"/>
			<MenuItem id = "AddSeparator" type = "Separator"/>
		</Condition>
		
		<Include id = "CollapseAll" item="/SharpDevelop/Pads/ProjectBrowser/ContextMenu/SolutionNode/CollapseAll"/>
		
		<MenuItem id    = "OpenProjectWith"
		          label = "${res:Gui.ProjectBrowser.OpenWith}"
		          class = "ICSharpCode.SharpDevelop.Project.Commands.OpenFileFromProjectBrowserWith"/>
		
		<Include id = "ProjectActions" path="/SharpDevelop/Pads/ProjectBrowser/ContextMenu/ProjectActions"/>
		<MenuItem id = "Separator2" type = "Separator"/>
		<Include id="inc" path="/SharpDevelop/Pads/ProjectBrowser/ContextMenu/CutPasteRemoveRename"/>
		<MenuItem id = "CutCopyPasteSeparator" type = "Separator"/>
		<MenuItem id    = "Properties"
		          icon  = "Icons.16x16.PropertiesIcon"
		          label = "${res:XML.MainMenu.FormatMenu.ShowProperties}"
		          class = "ICSharpCode.SharpDevelop.Project.Commands.ShowPropertiesForNode"/>
	</Path>
	
	<Path name="/SharpDevelop/Pads/ProjectBrowser/ContextMenu/MissingProjectNode">
		<Include id="inc" path="/SharpDevelop/Pads/ProjectBrowser/ContextMenu/CutPasteRemoveRename"/>
	</Path>
	
	<Path name="/SharpDevelop/Pads/ProjectBrowser/ContextMenu/UnknownProjectNode">
		<MenuItem id    = "OpenProjectWith"
		          label = "${res:Gui.ProjectBrowser.OpenWith}"
		          class = "ICSharpCode.SharpDevelop.Project.Commands.OpenFileFromProjectBrowserWith"/>
		<MenuItem id = "OpenSeparator" type = "Separator" />
		
		<Include id="inc" path="/SharpDevelop/Pads/ProjectBrowser/ContextMenu/CutPasteRemoveRename"/>
	</Path>
	
	<Path name="/SharpDevelop/Pads/ProjectBrowser/ContextMenu/ProjectActions">
		<MenuItem id = "OpenFolder"
		          label = "${res:Gui.ProjectBrowser.OpenFolderInExplorer}"
		          class = "ICSharpCode.SharpDevelop.Project.Commands.OpenProjectFolder"/>
		<MenuItem id = "OpenProjectOutputFolder"
		          label = "${res:ProjectComponent.ContextMenu.OpenProjectOutputFolder}"
		          class = "ICSharpCode.SharpDevelop.Project.Commands.OpenProjectOutputFolder"/>
		<MenuItem id = "OpenCommandPromptHere"
		          label = "${res:OpenFileTabEventHandler.OpenCommandPromptHere}"
		          class = "ICSharpCode.SharpDevelop.Project.Commands.OpenCommandPromptHere"/>
		<Condition name="IsProcessRunning" isprocessrunning="False" isdebugging="False" action="Disable">
			<MenuItem id          = "Run"
			          label       = "${res:ProjectComponent.ContextMenu.RunProject}"
			          icon        = "Icons.16x16.RunProgramIcon"
			          class       = "ICSharpCode.SharpDevelop.Project.Commands.RunProject"/>
		</Condition>
		<MenuItem id          = "RunWithoutDebugger"
		          label       = "${res:ProjectComponent.ContextMenu.RunProjectWithoutDebugger}"
		          icon        = "Icons.16x16.Debug.StartWithoutDebugging"
		          class       = "ICSharpCode.SharpDevelop.Project.Commands.RunProjectWithoutDebugger"/>
		<MenuItem id    = "SetAsStartupProject"
		          label = "${res:ProjectComponent.ContextMenu.SetAsStartupProject}"
		          class = "ICSharpCode.SharpDevelop.Project.Commands.SetAsStartupProject"/>
		<MenuItem id = "GenerateDocumentation"
		          label = "${res:ProjectComponent.ContextMenu.GenerateDocumentation}"
		          class = "ICSharpCode.SharpDevelop.Project.Commands.GenerateProjectDocumentation"/>
	</Path>
	
	<Path name = "/SharpDevelop/Pads/ProjectBrowser/ContextMenu/ReferenceFolderNode">
		<Condition name="WriteableProject" action="Disable">
			<MenuItem id    = "AddReference"
			          label = "${res:ProjectComponent.ContextMenu.AddReference}"
			          class = "ICSharpCode.SharpDevelop.Project.Commands.AddReferenceToProject"/>
			<MenuItem id    = "AddServiceReference"
			          label = "${res:ProjectComponent.ContextMenu.AddServiceReference}"
			          class = "ICSharpCode.SharpDevelop.Project.Commands.AddServiceReferenceToProject"/>
			<MenuItem id    = "AddWebReference"
			          label = "${res:ProjectComponent.ContextMenu.AddWebReference}"
			          class = "ICSharpCode.SharpDevelop.Project.Commands.AddWebReferenceToProject"/>
		</Condition>
	</Path>
	
	<Path name = "/SharpDevelop/Pads/ProjectBrowser/ContextMenu/FileNode">
		<ComplexCondition>
			<Not>
				<Condition name = "Ownerstate" ownerstate = "Missing"/>
			</Not>
			<MenuItem id = "OpenFile"
			          label = "${res:ProjectComponent.ContextMenu.Open}"
			          icon  = "Icons.16x16.OpenFileIcon"
			          class = "ICSharpCode.SharpDevelop.Project.Commands.OpenFileFromProjectBrowser"/>
			<MenuItem id      = "OpenFileWith"
			          label = "${res:Gui.ProjectBrowser.OpenWith}"
			          class   = "ICSharpCode.SharpDevelop.Project.Commands.OpenFileFromProjectBrowserWith"/>
			<MenuItem id = "OpenFolderContainingFile"
			          label = "${res:OpenFileTabEventHandler.FileContainingFolderInExplorer}"
			          class = "ICSharpCode.SharpDevelop.Project.Commands.OpenFolderContainingFile"/>
			<MenuItem id = "OpenCommandPromptHere"
			          label = "${res:OpenFileTabEventHandler.OpenCommandPromptHere}"
			          class = "ICSharpCode.SharpDevelop.Project.Commands.OpenCommandPromptHere"/>
		</ComplexCondition>
		<Condition name = "Ownerstate" ownerstate = "Missing">
			<MenuItem id = "Remove"
			          label = "${res:Global.RemoveButtonText}"
			          type = "Item"
			          icon  = "Icons.16x16.DeleteIcon"
			          class = "ICSharpCode.SharpDevelop.Project.Commands.DeleteProjectBrowserNode"/>
		</Condition>
		<ComplexCondition>
			<Not>
				<Condition name = "Ownerstate" ownerstate = "Missing"/>
			</Not>
			<Condition name="WriteableProject" action="Disable">
				<MenuItem id = "OpenSeparator" type = "Separator" />
				
				<Condition name = "Ownerstate" ownerstate = "InProject">
					<MenuItem id = "Add" label = "${res:ProjectComponent.ContextMenu.AddMenu}" type="Menu">
						<Include path="/SharpDevelop/Pads/ProjectBrowser/ContextMenu/FolderNode/Add"/>
						<MenuItem id    = "AddDependentSeparator"
						          type  = "Separator" />
						<MenuItem id    = "NewDependentItem"
						          label = "${res:ProjectComponent.ContextMenu.NewDependentItem}"
						          icon  = "ProjectBrowser.CodeBehind"
						          class = "ICSharpCode.SharpDevelop.Project.Commands.AddNewDependentItemsToProject"/>
						<MenuItem id    = "ExistingItemAsDependent"
						          label = "${res:ProjectComponent.ContextMenu.ExistingItemAsDependent}"
						          icon  = "ProjectBrowser.CodeBehind"
						          class = "ICSharpCode.SharpDevelop.Project.Commands.AddExistingItemsToProjectAsDependent"/>
					</MenuItem>
					<MenuItem id = "AddSeparator" type = "Separator"  />
				</Condition>
			</Condition>
			
			<ComplexCondition>
				<Or>
					<Condition name = "Ownerstate" ownerstate = "InProject"/>
					<Condition name = "Ownerstate" ownerstate = "None"/>
					<Condition name = "Ownerstate" ownerstate = "BehindFile"/>
				</Or>
				<ComplexCondition>
					<Or>
						<Condition name = "Ownerstate" ownerstate = "InProject"/>
						<Condition name = "Ownerstate" ownerstate = "BehindFile"/>
					</Or>
					<Condition name="WriteableProject" action="Disable">
						<MenuItem id    = "ExcludeFile"
						          label = "${res:ProjectComponent.ContextMenu.ExcludeFileFromProject}"
						          class = "ICSharpCode.SharpDevelop.Project.Commands.ExcludeFileFromProject"/>
					</Condition>
					<MenuItem id     = "ExecuteCustomTool"
					          label  = "${res:ProjectComponent.ContextMenu.ExecuteCustomTool}"
					          class  = "ICSharpCode.SharpDevelop.Project.ExecuteCustomToolCommand"/>
				</ComplexCondition>
				
				<Condition name = "Ownerstate" ownerstate = "None">
					<MenuItem id    = "IncludeFile"
					          label = "${res:ProjectComponent.ContextMenu.IncludeFileInProject}"
					          class = "ICSharpCode.SharpDevelop.Project.Commands.IncludeFileInProject"/>
				</Condition>
				<MenuItem id = "ExcludeSeparator" type = "Separator" />
			</ComplexCondition>
			
			<ComplexCondition>
				<And>
					<Condition name = "Ownerstate" ownerstate = "InProject"/>
					<Not>
						<Condition name = "Ownerstate" ownerstate = "BehindFile"/>
					</Not>
					<Condition name="IsProcessRunning" isprocessrunning="False" isdebugging="False"/>
					<Condition name = "ViewInBrowser" extensions="html,htm"/>
				</And>
				
				<MenuItem id          = "ViewInBrowser"
				          label       = "${res:ProjectComponent.ContextMenu.ViewInBrowser}"
				          icon        = "Icons.22x22.Browser"
				          class       = "ICSharpCode.SharpDevelop.Project.Commands.ViewInBrowser"/>
				<MenuItem id = "ExcludeSeparator_ViewInBrowser" type = "Separator" />
			</ComplexCondition>
			
			<Include id="CutCopyPasteDeleteRename" path="/SharpDevelop/Pads/ProjectBrowser/ContextMenu/CutCopyPasteDeleteRename"/>
			<MenuItem id = "RenameSeparator" type = "Separator" />
			<MenuItem id    = "Properties"
			          icon  = "Icons.16x16.PropertiesIcon"
			          label = "${res:XML.MainMenu.FormatMenu.ShowProperties}"
			          class = "ICSharpCode.SharpDevelop.Project.Commands.ShowPropertiesForNode"/>
		</ComplexCondition>
	</Path>
	
	<Path name = "/SharpDevelop/Pads/ProjectBrowser/ContextMenu/CutCopyRemoveRename">
		<Condition name="WriteableProject" action="Disable">
			<MenuItem id = "Cut"
			          label = "${res:XML.MainMenu.EditMenu.Cut}"
			          type = "Item"
			          icon = "Icons.16x16.CutIcon"
			          loadclasslazy = "false"
			          class = "ICSharpCode.SharpDevelop.Project.Commands.CutProjectBrowserNode"/>
		</Condition>
		<MenuItem id = "Copy"
		          label = "${res:XML.MainMenu.EditMenu.Copy}"
		          type = "Item"
		          icon = "Icons.16x16.CopyIcon"
		          loadclasslazy = "false"
		          class = "ICSharpCode.SharpDevelop.Project.Commands.CopyProjectBrowserNode"/>
		<Condition name="WriteableProject" action="Disable">
			<MenuItem id = "Remove"
			          label = "${res:Global.RemoveButtonText}"
			          type = "Item"
			          icon  = "Icons.16x16.DeleteIcon"
			          loadclasslazy = "false"
			          class = "ICSharpCode.SharpDevelop.Project.Commands.DeleteProjectBrowserNode"/>
			<MenuItem id = "Rename"
			          label    = "${res:ProjectComponent.ContextMenu.Rename}"
			          shortcut = "F2"
			          class    = "ICSharpCode.SharpDevelop.Project.Commands.RenameEntryEvent"/>
		</Condition>
	</Path>
	
	<Path name = "/SharpDevelop/Pads/ProjectBrowser/ContextMenu/CutPasteRemoveRename">
		<Condition name="WriteableProject" action="Disable">
			<MenuItem id = "Cut"
			          label = "${res:XML.MainMenu.EditMenu.Cut}"
			          type = "Item"
			          icon = "Icons.16x16.CutIcon"
			          loadclasslazy = "false"
			          class = "ICSharpCode.SharpDevelop.Project.Commands.CutProjectBrowserNode"/>
			<MenuItem id    = "Paste"
			          label = "${res:XML.MainMenu.EditMenu.Paste}"
			          type = "Item"
			          icon  = "Icons.16x16.PasteIcon"
			          loadclasslazy = "false"
			          class = "ICSharpCode.SharpDevelop.Project.Commands.PasteProjectBrowserNode"/>
		</Condition>
		<MenuItem id = "Remove"
		          label = "${res:Global.RemoveButtonText}"
		          type = "Item"
		          icon  = "Icons.16x16.DeleteIcon"
		          loadclasslazy = "false"
		          class = "ICSharpCode.SharpDevelop.Project.Commands.DeleteProjectBrowserNode"/>
		<Condition name="WriteableProject" action="Disable">
			<MenuItem id = "Rename"
			          label    = "${res:ProjectComponent.ContextMenu.Rename}"
			          shortcut = "F2"
			          class    = "ICSharpCode.SharpDevelop.Project.Commands.RenameEntryEvent"/>
		</Condition>
	</Path>
	
	<Path name = "/SharpDevelop/Pads/ProjectBrowser/ContextMenu/CutCopyPasteDeleteRename">
		<Condition name="WriteableProject" action="Disable">
			<MenuItem id = "Cut"
			          label = "${res:XML.MainMenu.EditMenu.Cut}"
			          type = "Item"
			          icon = "Icons.16x16.CutIcon"
			          loadclasslazy = "false"
			          class = "ICSharpCode.SharpDevelop.Project.Commands.CutProjectBrowserNode"/>
		</Condition>
		<MenuItem id = "Copy"
		          label = "${res:XML.MainMenu.EditMenu.Copy}"
		          type = "Item"
		          icon = "Icons.16x16.CopyIcon"
		          loadclasslazy = "false"
		          class = "ICSharpCode.SharpDevelop.Project.Commands.CopyProjectBrowserNode"/>
		<Condition name="WriteableProject" action="Disable">
			<MenuItem id    = "Paste"
			          label = "${res:XML.MainMenu.EditMenu.Paste}"
			          type = "Item"
			          icon  = "Icons.16x16.PasteIcon"
			          loadclasslazy = "false"
			          class = "ICSharpCode.SharpDevelop.Project.Commands.PasteProjectBrowserNode"/>
			<MenuItem id = "Delete"
			          label = "${res:XML.MainMenu.EditMenu.Delete}"
			          type = "Item"
			          icon  = "Icons.16x16.DeleteIcon"
			          loadclasslazy = "false"
			          class = "ICSharpCode.SharpDevelop.Project.Commands.DeleteProjectBrowserNode"/>
			<MenuItem id = "Rename"
			          label    = "${res:ProjectComponent.ContextMenu.Rename}"
			          shortcut = "F2"
			          class    = "ICSharpCode.SharpDevelop.Project.Commands.RenameEntryEvent"/>
		</Condition>
	</Path>
	
	<Path name = "/SharpDevelop/Pads/ProjectBrowser/ContextMenu/FolderNode">
		<Condition name = "Ownerstate" ownerstate = "Missing">
			<MenuItem id = "CreateMissing"
			          label = "${res:ProjectComponent.ContextMenu.NewFolder}"
			          type  = "Item"
			          icon  = "Icons.16x16.NewFolderIcon"
			          class = "ICSharpCode.SharpDevelop.Project.Commands.CreateMissingCommand"/>
			<MenuItem id = "RemoveMissing"
			          label = "${res:Global.RemoveButtonText}"
			          type  = "Item"
			          icon  = "Icons.16x16.DeleteIcon"
			          class = "ICSharpCode.SharpDevelop.Project.Commands.ExcludeFileFromProject"/>
		</Condition>
		<ComplexCondition>
			<Not>
				<Condition name = "Ownerstate" ownerstate = "Missing"/>
			</Not>
			<MenuItem id = "Add" label = "${res:ProjectComponent.ContextMenu.AddMenu}" type="Menu">
				<MenuItem id    = "New Item"
				          label = "${res:ProjectComponent.ContextMenu.NewItem}"
				          icon  = "Icons.16x16.NewDocumentIcon"
				          class = "ICSharpCode.SharpDevelop.Project.Commands.AddNewItemsToProject"/>
				<MenuItem id    = "Existing Item"
				          label = "${res:ProjectComponent.ContextMenu.ExistingItem}"
				          class = "ICSharpCode.SharpDevelop.Project.Commands.AddExistingItemsToProject"/>
				<MenuItem id    = "NewFolder"
				          label = "${res:ProjectComponent.ContextMenu.NewFolder}"
				          icon  = "Icons.16x16.NewFolderIcon"
				          class = "ICSharpCode.SharpDevelop.Project.Commands.AddNewFolderToProject"/>
				<MenuItem id    = "ExistingFolder"
				          label = "${res:ProjectComponent.ContextMenu.ExistingFolder}"
				          class = "ICSharpCode.SharpDevelop.Project.Commands.AddExistingFolderToProject"/>
			</MenuItem>
			<MenuItem id = "AddSeparator" type = "Separator"  />
			<Include id = "CollapseAll" item="/SharpDevelop/Pads/ProjectBrowser/ContextMenu/SolutionNode/CollapseAll"/>
			<MenuItem id = "OpenFolder"
			          label = "${res:Gui.ProjectBrowser.OpenFolderInExplorer}"
			          class = "ICSharpCode.SharpDevelop.Project.Commands.OpenFolder"/>
			<MenuItem id = "OpenCommandPromptHere"
			          label = "${res:OpenFileTabEventHandler.OpenCommandPromptHere}"
			          class = "ICSharpCode.SharpDevelop.Project.Commands.OpenCommandPromptHere"/>
			<ComplexCondition>
				<Or>
					<Condition name = "Ownerstate" ownerstate = "InProject"/>
					<Condition name = "Ownerstate" ownerstate = "None"/>
				</Or>
				<Condition name = "Ownerstate" ownerstate = "InProject">
					<MenuItem id    = "ExcludeFile"
					          label = "${res:ProjectComponent.ContextMenu.ExcludeFileFromProject}"
					          class = "ICSharpCode.SharpDevelop.Project.Commands.ExcludeFileFromProject"/>
				</Condition>
				
				<Condition name = "Ownerstate" ownerstate = "None">
					<MenuItem id    = "IncludeFile"
					          label = "${res:ProjectComponent.ContextMenu.IncludeFileInProject}"
					          class = "ICSharpCode.SharpDevelop.Project.Commands.IncludeFileInProject"/>
				</Condition>
				
				<MenuItem id = "ExcludeSeparator" type = "Separator" />
			</ComplexCondition>
			
			<Include id="CutCopyPasteDeleteRename" path="/SharpDevelop/Pads/ProjectBrowser/ContextMenu/CutCopyPasteDeleteRename"/>
		</ComplexCondition>
	</Path>
	
	<Path name = "/SharpDevelop/Pads/ProjectBrowser/ContextMenu/WebReferencesFolderNode">
		<Condition name = "Ownerstate" ownerstate = "Missing">
			<MenuItem id = "RemoveMissing"
			          label = "${res:Global.RemoveButtonText}"
			          type  = "Item"
			          icon  = "Icons.16x16.DeleteIcon"
			          class = "ICSharpCode.SharpDevelop.Project.Commands.ExcludeFileFromProject"/>
		</Condition>
		<ComplexCondition>
			<Not>
				<Condition name = "Ownerstate" ownerstate = "Missing"/>
			</Not>
			<MenuItem id    = "AddWebReference"
			          label = "${res:ProjectComponent.ContextMenu.AddWebReference}"
			          class = "ICSharpCode.SharpDevelop.Project.Commands.AddWebReferenceToProject"/>
			<MenuItem id = "AddSeparator" type = "Separator"/>
			<MenuItem id = "Delete"
			          label = "${res:XML.MainMenu.EditMenu.Delete}"
			          type = "Item"
			          icon  = "Icons.16x16.DeleteIcon"
			          class = "ICSharpCode.SharpDevelop.Project.Commands.DeleteProjectBrowserNode"/>
			<MenuItem id = "Rename"
			          label    = "${res:ProjectComponent.ContextMenu.Rename}"
			          shortcut = "F2"
			          class    = "ICSharpCode.SharpDevelop.Project.Commands.RenameEntryEvent"/>
		</ComplexCondition>
	</Path>
	
	<Path name = "/SharpDevelop/Pads/ProjectBrowser/ContextMenu/WebReferenceNode">
		<Condition name = "Ownerstate" ownerstate = "Missing">
			<MenuItem id = "RemoveMissing"
			          label = "${res:Global.RemoveButtonText}"
			          type  = "Item"
			          icon  = "Icons.16x16.DeleteIcon"
			          class = "ICSharpCode.SharpDevelop.Project.Commands.ExcludeFileFromProject"/>
		</Condition>
		<ComplexCondition>
			<Not>
				<Condition name = "Ownerstate" ownerstate = "Missing"/>
			</Not>
			<MenuItem id = "Refresh"
			          label = "${res:ProjectComponent.ContextMenu.RefreshWebReference}"
			          type = "Item"
			          class = "ICSharpCode.SharpDevelop.Project.Commands.RefreshWebReference"/>
			<MenuItem id = "RefreshSeparator" type = "Separator" />
			<MenuItem id = "Delete"
			          label = "${res:XML.MainMenu.EditMenu.Delete}"
			          type = "Item"
			          icon  = "Icons.16x16.DeleteIcon"
			          class = "ICSharpCode.SharpDevelop.Project.Commands.DeleteProjectBrowserNode"/>
			<MenuItem id = "Rename"
			          label    = "${res:ProjectComponent.ContextMenu.Rename}"
			          shortcut = "F2"
			          class    = "ICSharpCode.SharpDevelop.Project.Commands.RenameEntryEvent"/>
			<MenuItem id = "PropertiesSeparator" type = "Separator" />
			<MenuItem id = "Properties"
			          icon  = "Icons.16x16.PropertiesIcon"
			          label = "${res:XML.MainMenu.FormatMenu.ShowProperties}"
			          class = "ICSharpCode.SharpDevelop.Project.Commands.ShowPropertiesForNode"/>
		</ComplexCondition>
	</Path>
	
	<Path name = "/SharpDevelop/Pads/ProjectBrowser/ContextMenu/ServiceReferencesFolderNode">
		<MenuItem id    = "AddServiceReference"
		          label = "${res:ProjectComponent.ContextMenu.AddServiceReference}"
		          class = "ICSharpCode.SharpDevelop.Project.Commands.AddServiceReferenceToProject"/>
		<Condition name = "Ownerstate" ownerstate = "Missing">
			<MenuItem id = "RemoveMissing"
			          label = "${res:Global.RemoveButtonText}"
			          type  = "Item"
			          icon  = "Icons.16x16.DeleteIcon"
			          class = "ICSharpCode.SharpDevelop.Project.Commands.ExcludeFileFromProject"/>
		</Condition>
		<ComplexCondition>
			<Not>
				<Condition name = "Ownerstate" ownerstate = "Missing"/>
			</Not>
			<MenuItem id    = "Delete"
			          label = "${res:XML.MainMenu.EditMenu.Delete}"
			          type  = "Item"
			          icon  = "Icons.16x16.DeleteIcon"
			          class = "ICSharpCode.SharpDevelop.Project.Commands.DeleteProjectBrowserNode"/>
			<MenuItem id       = "Rename"
			          label    = "${res:ProjectComponent.ContextMenu.Rename}"
			          shortcut = "F2"
			          class    = "ICSharpCode.SharpDevelop.Project.Commands.RenameEntryEvent"/>
		</ComplexCondition>
	</Path>
	
	<Path name = "/SharpDevelop/Pads/ProjectBrowser/ContextMenu/ServiceReferenceNode">
		<Condition name = "Ownerstate" ownerstate = "Missing">
			<MenuItem id = "RemoveMissing"
			          label = "${res:Global.RemoveButtonText}"
			          type  = "Item"
			          icon  = "Icons.16x16.DeleteIcon"
			          class = "ICSharpCode.SharpDevelop.Project.Commands.ExcludeFileFromProject"/>
		</Condition>
		<ComplexCondition>
			<Not>
				<Condition name = "Ownerstate" ownerstate = "Missing"/>
			</Not>
			<MenuItem id = "Delete"
			          label = "${res:XML.MainMenu.EditMenu.Delete}"
			          type = "Item"
			          icon  = "Icons.16x16.DeleteIcon"
			          class = "ICSharpCode.SharpDevelop.Project.Commands.DeleteProjectBrowserNode"/>
			<MenuItem id = "Rename"
			          label    = "${res:ProjectComponent.ContextMenu.Rename}"
			          shortcut = "F2"
			          class    = "ICSharpCode.SharpDevelop.Project.Commands.RenameEntryEvent"/>
			<MenuItem id = "PropertiesSeparator" type = "Separator" />
			<MenuItem id = "Properties"
			          icon  = "Icons.16x16.PropertiesIcon"
			          label = "${res:XML.MainMenu.FormatMenu.ShowProperties}"
			          class = "ICSharpCode.SharpDevelop.Project.Commands.ShowPropertiesForNode"/>
		</ComplexCondition>
	</Path>
	
	<Path name = "/SharpDevelop/Pads/ProjectBrowser/ContextMenu/ReferenceNode">
		<MenuItem id    = "RefreshReference"
		          icon  = "Icons.16x16.BrowserRefresh"
		          label = "${res:Global.Refresh}"
		          class = "ICSharpCode.SharpDevelop.Project.Commands.RefreshReference"/>
		<Condition name="WriteableProject" action="Disable">
			<MenuItem id    = "Remove"
			          label = "${res:Global.RemoveButtonText}"
			          icon  = "Icons.16x16.DeleteIcon"
			          class = "ICSharpCode.SharpDevelop.Project.Commands.DeleteProjectBrowserNode"/>
		</Condition>
		<MenuItem id = "RemoveSeparator" type = "Separator" />
		<MenuItem id    = "Properties"
		          icon  = "Icons.16x16.PropertiesIcon"
		          label = "${res:XML.MainMenu.FormatMenu.ShowProperties}"
		          class = "ICSharpCode.SharpDevelop.Project.Commands.ShowPropertiesForNode"/>
	</Path>
	
	<!-- END Project Browser Paths-->
	
	<Path name = "/SharpDevelop/Pads/CompilerMessageView/Toolbar">
		<ToolbarItem id      = "CategorySelect"
		             type    = "Custom"
		             tooltip = "${res:MainWindow.Windows.CompilerMessageView.ShowOutputFromComboBox.ToolTip}"
		             class   = "ICSharpCode.SharpDevelop.Gui.ShowOutputFromComboBox"/>
		
		<ToolbarItem id    = "CategorySelectSeparator" type  = "Separator"/>
		
		<ToolbarItem id      = "Clear"
		             icon    = "OutputPad.Toolbar.ClearOutputWindow"
		             tooltip = "${res:MainWindow.Windows.CompilerMessageView.ClearAllButton.ToolTip}"
		             class   = "ICSharpCode.SharpDevelop.Gui.ClearOutputWindow"/>
		
		<ToolbarItem id      = "ToggleWordWrap"
		             type    = "CheckBox"
		             icon    = "OutputPad.Toolbar.ToggleWordWrap"
		             tooltip = "${res:MainWindow.Windows.CompilerMessageView.ToggleWordWrapButton.ToolTip}"
		             class   = "ICSharpCode.SharpDevelop.Gui.ToggleMessageViewWordWrap"/>
	</Path>
	
	<Path name = "/SharpDevelop/Pads/CompilerMessageView/ContextMenu">
		<Include id = "Copy" item = "/SharpDevelop/Workbench/MainMenu/Edit/Copy"/>
		<Include id = "SelectAll" item = "/SharpDevelop/Workbench/MainMenu/Edit/SelectAll"/>
		<MenuItem id    = "Clear"
		          icon  = "OutputPad.Toolbar.ClearOutputWindow"
		          label = "${res:MainWindow.Windows.CompilerMessageView.ClearAllButton.ToolTip}"
		          class = "ICSharpCode.SharpDevelop.Gui.ClearOutputWindow"/>
	</Path>
	
	<Path name = "/SharpDevelop/Pads/ErrorList/Toolbar">
		<ToolbarItem id      = "Errors"
		             type    = "CheckBox"
		             icon    = "Icons.16x16.Error"
		             label   = "${res:MainWindow.Windows.ErrorList.ErrorButton.Label}"
		             tooltip = "${res:MainWindow.Windows.ErrorList.ErrorButton.ToolTip}"
		             class   = "ICSharpCode.SharpDevelop.Gui.ShowErrorsToggleButton"/>
		
		<ToolbarItem id    = "ErrorsSeparator" type  = "Separator"/>
		
		<ToolbarItem id    = "Warnings"
		             type  = "CheckBox"
		             icon  = "Icons.16x16.Warning"
		             label = "${res:MainWindow.Windows.ErrorList.WarningButton.Label}"
		             tooltip = "${res:MainWindow.Windows.ErrorList.WarningButton.ToolTip}"
		             class = "ICSharpCode.SharpDevelop.Gui.ShowWarningsToggleButton"/>
		<ToolbarItem id    = "WarningsSeparator" type  = "Separator"/>
		
		<ToolbarItem id    = "Messages"
		             type  = "CheckBox"
		             icon  = "Icons.16x16.Information"
		             label = "${res:MainWindow.Windows.ErrorList.MessageButton.Label}"
		             tooltip = "${res:MainWindow.Windows.ErrorList.MessageButton.ToolTip}"
		             class = "ICSharpCode.SharpDevelop.Gui.ShowMessagesToggleButton"/>
	</Path>
	
	<!-- ClassBrowser -->
	<Path name = "/SharpDevelop/Pads/ClassBrowser/Toolbar">
		<!--<ToolbarItem id      = "Back"
		             icon    = "Icons.16x16.BrowserBefore"
		             tooltip = "${res:MainWindow.Windows.ClassBrowser.BackButton.ToolTip}"
		             loadclasslazy = "false"
		             class   = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.ClassBrowserNavigateBackward"/>
		<ToolbarItem id      = "Forward"
		             icon    = "Icons.16x16.BrowserAfter"
		             tooltip = "${res:MainWindow.Windows.ClassBrowser.ForwardButton.ToolTip}"
		             loadclasslazy = "false"
		             class   = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.ClassBrowserNavigateForward"/>
		
		<ToolbarItem id = "NavigationSeparator" type  = "Separator"/>-->
		<ToolbarItem id      = "OpenAssembly"
		             type    = "DropDownButton"
		             icon    = "Icons.16x16.Assembly"
		             tooltip = "${res:MainWindow.Windows.ClassBrowser.OpenAssemblyButton.ToolTip}">
			<MenuItem id    = "OpenAssemblyFromFile"
			          icon    = "Icons.16x16.AssemblyFromFile"
			          label = "${res:MainWindow.Windows.ClassBrowser.OpenAssemblyFromFile}"
			          class = "ICSharpCode.SharpDevelop.Dom.ClassBrowser.OpenAssemblyFromFileCommand"/>
			<MenuItem id    = "OpenAssemblyFromGAC"
			          icon  = "Icons.16x16.AssemblyFromGAC"
			          label = "${res:MainWindow.Windows.ClassBrowser.OpenAssemblyFromGAC}"
			          class = "ICSharpCode.SharpDevelop.Dom.ClassBrowser.OpenAssemblyFromGACCommand"/>
		</ToolbarItem>
		<!--<ToolbarItem id      = "SelectFilter"
		             type    = "DropDownButton"
		             icon    = "Icons.16x16.FindInFiles"
		             tooltip = "${res:MainWindow.Windows.ClassBrowser.ClassViewSettingsButton.ToolTip}"
		             class   = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.SelectClassBrowserFilter">
			
			<MenuItem id    = "ShowProjectReferences"
			          type  = "CheckBox"
			          label = "${res:MainWindow.Windows.ClassBrowser.ClassViewSettings.ShowProjectReferences.Label}"
			          class = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.ShowProjectReferences"/>
			<MenuItem id = "ReferenceSeparator" type = "Separator"  />
			<MenuItem id    = "ShowPublicMembers"
			          type  = "CheckBox"
			          label = "${res:MainWindow.Windows.ClassBrowser.ClassViewSettings.ShowPublicMembers.Label}"
			          class = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.ShowPublicMembers"/>
			
			<MenuItem id    = "ShowPrivateMembers"
			          type  = "CheckBox"
			          label = "${res:MainWindow.Windows.ClassBrowser.ClassViewSettings.ShowPrivateMembers.Label}"
			          class = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.ShowPrivateMembers"/>
			
			<MenuItem id    = "ShowProtectedMembers"
			          type  = "CheckBox"
			          label = "${res:MainWindow.Windows.ClassBrowser.ClassViewSettings.ShowProtectedMembers.Label}"
			          class = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.ShowProtectedMembers"/>
			
			<MenuItem id    = "ShowOtherMembers"
			          type  = "CheckBox"
			          label = "${res:MainWindow.Windows.ClassBrowser.ClassViewSettings.ShowOtherMembers.Label}"
			          class = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.ShowOtherMembers"/>
		</ToolbarItem>
		<ToolbarItem id = "NavigationSeparator" type  = "Separator"/>
		<ToolbarItem id      = "Collapse"
		             icon    = "Icons.16x16.Collection"
		             tooltip = "${res:MainWindow.Windows.SearchResultPanel.CollapseAll.ToolTip}"
		             class   = "ICSharpCode.SharpDevelop.Dom.ClassBrowser.ClassBrowserCollapseAll"/>-->
	</Path>
	
	<Path name = "/SharpDevelop/Pads/ClassBrowser/Searchbar">
		<ToolbarItem id      = "Search"
		             type    = "Custom"
		             tooltip = "${res:MainWindow.Windows.ClassBrowser.SearchButton.ToolTip}"
		             class   = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.ClassBrowserSearchTerm"/>
		
		<ToolbarItem id      = "CommitSearch"
		             icon    = "Icons.16x16.FindIcon"
		             tooltip = "${res:MainWindow.Windows.ClassBrowser.CommitSearch.ToolTip}"
		             class   = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.ClassBrowserCommitSearch"/>
		
		<ToolbarItem id      = "CancelSearch"
		             icon    = "OutputPad.Toolbar.ClearOutputWindow"
		             tooltip = "${res:MainWindow.Windows.ClassBrowser.ClearSearch.ToolTip}"
		             class   = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.ClassBrowserCancelSearch"/>
	</Path>
	
	<Path name = "/SharpDevelop/Pads/ClassBrowser/AssemblyContextMenu">
		<Condition name="IsProcessRunning" isdebugging = "False" action = "Exclude">
			<Condition name="DebuggerSupports" debuggersupports = "Start">
				<MenuItem id = "RunAssemblyWithDebugger"
				          label = "${res:XML.MainMenu.RunMenu.Run}"
				          icon = "Icons.16x16.RunProgramIcon"
				          class = "ICSharpCode.SharpDevelop.Dom.ClassBrowser.RunAssemblyWithDebuggerCommand"/>
				<MenuItem id = "AssemblyContextMenuSeparator" type = "Separator"/>
			</Condition>
		</Condition>
		<Condition name="IsAssemblyUnpinned" action="Exclude">
			<MenuItem id = "PermanentlyAddToWorkspace"
			          label = "${res:MainWindow.Windows.ClassBrowser.AddToWorkspace}"
			          icon = "Icons.16x16.AssemblyFromFile"
			          class = "ICSharpCode.SharpDevelop.Dom.ClassBrowser.PermanentlyAddModuleToWorkspaceCommand"/>
		</Condition>
		<MenuItem id = "RemoveAssembly"
		          label = "${res:Global.RemoveButtonText}"
		          icon = "Icons.16x16.DeleteIcon"
		          class = "ICSharpCode.SharpDevelop.Dom.ClassBrowser.RemoveAssemblyCommand"/>
	</Path>
	
	<Path name = "/SharpDevelop/Pads/ClassBrowser/AssemblyReferencesContextMenu">
		<MenuItem id    = "AddReference"
		          label = "${res:ProjectComponent.ContextMenu.AddReference}"
		          class = "ICSharpCode.SharpDevelop.Dom.ClassBrowser.AddProjectReferenceCommand"/>
	</Path>
	
	<Path name = "/SharpDevelop/Pads/ClassBrowser/AssemblyReferenceContextMenu">
		<MenuItem id = "PermanentlyAddToWorkspace"
		          label = "${res:MainWindow.Windows.ClassBrowser.AddToWorkspace}"
		          icon = "Icons.16x16.AssemblyFromFile"
		          class = "ICSharpCode.SharpDevelop.Dom.ClassBrowser.PermanentlyAddModuleToWorkspaceCommand"/>
		<MenuItem id    = "Remove"
		          label = "${res:Global.RemoveButtonText}"
		          icon  = "Icons.16x16.DeleteIcon"
		          class = "ICSharpCode.SharpDevelop.Dom.ClassBrowser.RemoveProjectReferenceCommand"/>
	</Path>
	
	<!-- end ClassBrowser -->
	
	<!-- toolbars -->
	<Path name = "/SharpDevelop/Workbench/ToolBar/Standard">
		<ToolbarItem id      = "New"
		             icon    = "Icons.16x16.NewDocumentIcon"
		             tooltip = "${res:XML.MainMenu.FileMenu.New.File.Description}"
		             class   = "ICSharpCode.SharpDevelop.Commands.CreateNewFile"/>
		<ToolbarItem id      = "Open"
		             icon    = "Icons.16x16.OpenFileIcon"
		             tooltip = "${res:XML.MainMenu.FileMenu.Open.File.Description}"
		             class   = "ICSharpCode.SharpDevelop.Commands.OpenFile"/>
		
		<ToolbarItem id      = "OpenProject"
		             tooltip = "${res:XML.MainMenu.FileMenu.Open.Project.Description}"
		             icon    = "Icons.16x16.OpenProjectIcon"
		             class   = "ICSharpCode.SharpDevelop.Project.Commands.LoadSolution"
		/>
		
		<Condition name = "ActiveWindowState" windowstate="Dirty,Untitled" nowindowstate="ViewOnly" action="Disable">
			<ToolbarItem id      = "Save"
			             icon    = "Icons.16x16.SaveIcon"
			             tooltip = "${res:XML.MainMenu.FileMenu.Save.Description}"
			             class   = "ICSharpCode.SharpDevelop.Commands.SaveFile"/>
		</Condition>
		
		<Condition name = "OpenWindowState" openwindowstate="Dirty" action="Disable">
			<ToolbarItem id = "SaveAll"
			             icon = "Icons.16x16.SaveAllIcon"
			             tooltip = "${res:XML.MainMenu.FileMenu.SaveAll.Description}"
			             class = "ICSharpCode.SharpDevelop.Commands.SaveAllFiles"/>
		</Condition>
		
		<ToolbarItem id = "Separator1" type = "Separator"/>
		
		<ToolbarItem id = "Cut"
		             icon = "Icons.16x16.CutIcon"
		             tooltip = "${res:XML.MainMenu.EditMenu.Cut.Description}"
		             command = "Cut"/>
		<ToolbarItem id = "Copy"
		             icon = "Icons.16x16.CopyIcon"
		             tooltip = "${res:XML.MainMenu.EditMenu.Copy.Description}"
		             command = "Copy"/>
		<ToolbarItem id = "Paste"
		             icon = "Icons.16x16.PasteIcon"
		             tooltip = "${res:XML.MainMenu.EditMenu.Paste.Description}"
		             command = "Paste"/>
		<ToolbarItem id = "Delete"
		             icon = "Icons.16x16.DeleteIcon"
		             tooltip = "${res:XML.MainMenu.EditMenu.Delete.Description}"
		             command = "Delete"/>
		<ToolbarItem id = "UndoRedoSeparator"  type = "Separator"/>
		<ToolbarItem id      = "Undo"
		             icon    = "Icons.16x16.UndoIcon"
		             tooltip = "${res:XML.MainMenu.EditMenu.Undo.Description}"
		             command = "Undo"/>
		<ToolbarItem id      = "Redo"
		             icon    = "Icons.16x16.RedoIcon"
		             tooltip = "${res:XML.MainMenu.EditMenu.Redo.Description}"
		             command = "Redo"/>
		
		<ToolbarItem id = "CompileSeparator" type = "Separator"/>
		
		<ToolbarItem id      = "Compile"
		             icon    = "Icons.16x16.BuildCombine"
		             tooltip = "${res:XML.MainMenu.RunMenu.BuildSolution.Description}"
		             class   = "ICSharpCode.SharpDevelop.Project.Commands.Build"/>
		
		<ToolbarItem id      = "BuildProject"
		             icon    = "Icons.16x16.BuildCurrentSelectedProject"
		             tooltip = "${res:XML.MainMenu.RunMenu.BuildProject.Description}"
		             class   = "ICSharpCode.SharpDevelop.Project.Commands.BuildProject"/>
		
		<ToolbarItem id = "DebuggerSeparator" type = "Separator"  />
		
		<ComplexCondition>
			<Or>
				<Condition name="IsProcessRunning" isdebugging = "False"/>
				<Not>
					<Condition name="DebuggerSupports" debuggersupports = "ExecutionControl"/>
				</Not>
			</Or>
			<Condition name="IsProcessRunning" isdebugging = "False" action = "Disable">
				<Condition name = "SolutionOpen" action = "Disable">
					<Condition name="DebuggerSupports" debuggersupports = "Start">
						<ToolbarItem id      = "Run"
						             icon    = "Icons.16x16.RunProgramIcon"
						             tooltip = "${res:XML.MainMenu.RunMenu.Run.Description}"
						             class   = "ICSharpCode.SharpDevelop.Project.Commands.Execute"/>
					</Condition>
					
					<Condition name="DebuggerSupports" debuggersupports = "StartWithoutDebugging">
						<ToolbarItem id      = "RunWithoutDebugger"
						             icon    = "Icons.16x16.Debug.StartWithoutDebugging"
						             tooltip = "${res:XML.MainMenu.DebugMenu.RunWithoutDebug.Description}"
						             class   = "ICSharpCode.SharpDevelop.Project.Commands.ExecuteWithoutDebugger"/>
					</Condition>
				</Condition>
			</Condition>
		</ComplexCondition>
		
		<Condition name="IsProcessRunning" isdebugging = "True">
			<Condition name="DebuggerSupports" debuggersupports = "ExecutionControl">
				<Condition name="IsProcessRunning" isprocessrunning = "False" action = "Disable">
					<ToolbarItem id      = "Continue"
					             icon    = "Icons.16x16.Debug.Continue"
					             tooltip = "${res:XML.MainMenu.DebugMenu.Continue.Description}"
					             class   = "ICSharpCode.SharpDevelop.Project.Commands.ContinueDebuggingCommand"/>
				</Condition>
				<Condition name="IsProcessRunning" isprocessrunning = "True" action = "Disable">
					<ToolbarItem id      = "Break"
					             icon    = "Icons.16x16.Debug.Break"
					             tooltip = "${res:XML.MainMenu.DebugMenu.Break.Description}"
					             class   = "ICSharpCode.SharpDevelop.Project.Commands.BreakDebuggingCommand"/>
				</Condition>
			</Condition>
		</Condition>
		
		<Condition name="DebuggerSupports" debuggersupports = "Stop">
			<ComplexCondition action = "Disable">
				<Or>
					<Condition name="IsProcessRunning" isdebugging = "True"/>
					<Condition name="IsProcessRunning" isprocessrunning = "True"/>
				</Or>
				<ToolbarItem id = "Stop"
				             icon = "Icons.16x16.StopProcess"
				             tooltip = "${res:XML.MainMenu.DebugMenu.Stop.Description}"
				             class = "ICSharpCode.SharpDevelop.Project.Commands.StopDebuggingCommand"/>
			</ComplexCondition>
		</Condition>
		
		<Condition name="DebuggerSupports" debuggersupports = "Stepping">
			<ComplexCondition action="Disable">
				<Or>
					<Condition name = "IsProcessRunning" isdebugging="True" isprocessrunning="False" />
					<And>
						<Condition name="DebuggerSupports" debuggersupports = "Start" />
						<Condition name = "SolutionOpen" />
					</And>
				</Or>
				<ToolbarItem id = "SteppingSeparator" type = "Separator"  />
				<ToolbarItem id      = "Step over"
				             icon    = "Icons.16x16.Debug.StepOver"
				             tooltip = "${res:XML.MainMenu.DebugMenu.StepOver.Description}"
				             class   = "ICSharpCode.SharpDevelop.Project.Commands.StepDebuggingCommand"/>
				<ToolbarItem id      = "Step into"
				             icon    = "Icons.16x16.Debug.StepInto"
				             tooltip = "${res:XML.MainMenu.DebugMenu.StepInto.Description}"
				             class   = "ICSharpCode.SharpDevelop.Project.Commands.StepIntoDebuggingCommand"/>
				<Condition name="IsProcessRunning" isdebugging = "True" isprocessrunning="False" action="Disable">
					<ToolbarItem id      = "Step out"
					             icon    = "Icons.16x16.Debug.StepOut"
					             tooltip = "${res:XML.MainMenu.DebugMenu.StepOut.Description}"
					             class   = "ICSharpCode.SharpDevelop.Project.Commands.StepOutDebuggingCommand"/>
				</Condition>
			</ComplexCondition>
		</Condition>
		
		<ToolbarItem id = "ChooseConfigurationSeparator" type = "Separator"/>
		
		<ToolbarItem id    = "ChooseLayout"
		             type  = "Custom"
		             class = "ICSharpCode.SharpDevelop.Workbench.ChooseLayoutComboBox" />
		
		<ToolbarItem id="NavigationSeparator" type="Separator"/>
		<Condition name="CanNavigateBack" action="Disable">
			<ToolbarItem id="NavigateBack"
			             type="SplitButton"
			             icon="Icons.16x16.NavigateBack"
			             tooltip="${res:XML.MainMenu.Navigation.Back}"
			             disabledIcon="Icons.16x16.NavigateBack"
			             loadclasslazy="false"
			             class="ICSharpCode.SharpDevelop.Commands.NavigateBack"
			>
				<MenuItem id="NavigationHistoryBuilder"
				          type="Builder"
				          class="ICSharpCode.SharpDevelop.Commands.NavigationHistoryMenuBuilder"/>
			</ToolbarItem>
		</Condition>
		<Condition name="CanNavigateForward" action="Disable">
			<ToolbarItem id="NavigateForward"
			             icon="Icons.16x16.NavigateForward"
			             tooltip="${res:XML.MainMenu.Navigation.Forward}"
			             loadclasslazy="false"
			             class="ICSharpCode.SharpDevelop.Commands.NavigateForward"/>
		</Condition>
	</Path>
	
	<Path name="/SharpDevelop/Pads/BreakpointPad/Toolbar">
		<ToolbarItem id      = "GotoPrev"
		             icon    = "Bookmarks.PrevBreakpoint"
		             tooltip = "${res:MainWindow.Windows.BookmarkPad.GotoPrev.ToolTip}"
		             class   = "ICSharpCode.SharpDevelop.Editor.Bookmarks.PrevBookmarkPadCommand"/>
		<ToolbarItem id      = "GotoNext"
		             icon    = "Bookmarks.NextBreakpoint"
		             tooltip = "${res:MainWindow.Windows.BookmarkPad.GotoNext.ToolTip}"
		             class   = "ICSharpCode.SharpDevelop.Editor.Bookmarks.NextBookmarkPadCommand"/>
		<ToolbarItem id = "GotoInFolderSeparator" type = "Separator" />
		<ToolbarItem id      = "DisableAllBreakpoints"
		             icon    = "Bookmarks.DisableAllBreakpoints"
		             tooltip = "${res:MainWindow.Windows.BookmarkPad.EnableDisableAll.ToolTip}"
		             class   = "ICSharpCode.SharpDevelop.Editor.Bookmarks.EnableDisableAll"/>
		<ToolbarItem id = "EnableDisableSeparator" type = "Separator" />
		<ToolbarItem id      = "DeleteMark"
		             icon    = "Icons.16x16.DeleteIcon"
		             tooltip = "${res:MainWindow.Windows.BookmarkPad.DeleteMark.ToolTip}"
		             class   = "ICSharpCode.SharpDevelop.Editor.Bookmarks.DeleteMark"/>
		<ToolbarItem id = "EnableDisableSeparator" type = "Separator" />
		<ToolbarItem id      = "DeleteAllBreakpoints"
		             icon    = "Bookmarks.DeleteAllBreakpoints"
		             tooltip = "${res:XML.MainMenu.DebugMenu.RemoveAllBreakpoints}"
		             class   = "ICSharpCode.SharpDevelop.Editor.Bookmarks.DeleteAllMarks"/>
	</Path>
	<!-- end toolbars -->
	
	<Path name = "/SharpDevelop/Workbench/OpenFileTab/ContextMenu">
		<MenuItem id = "Close"
		          label = "關閉文件"
		          icon  = "Icons.16x16.CloseFileIcon"
		          class = "ICSharpCode.SharpDevelop.Commands.TabStrip.CloseFileTab"/>
		<MenuItem id    = "CloseAll"
		          icon  = "Icons.16x16.CloseAllDocuments"
		          label = "${res:XML.MainMenu.FileMenu.CloseAll}"
		          class = "ICSharpCode.SharpDevelop.Commands.CloseAllWindows" />
		<MenuItem id    = "CloseAllButThis"
		          label = "${res:OpenFileTabEventHandler.ContextMenu.CloseAllButThis}"
		          class = "ICSharpCode.SharpDevelop.Commands.TabStrip.CloseAllButThisFileTab" />
		
		<MenuItem id = "CloseSeparator" type = "Separator" />
		<ComplexCondition action="Disable">
			<And>
				<Condition name = "Ownerstate" ownerstate="FileDirty"/>
				<Not>
					<Condition name = "Ownerstate" ownerstate="FileUntitled"/>
				</Not>
			</And>
			
			<MenuItem id = "Save"
			          label = "${res:OpenFileTabEventHandler.ContextMenu.Save}"
			          icon  = "Icons.16x16.SaveIcon"
			          class = "ICSharpCode.SharpDevelop.Commands.TabStrip.SaveFileTab"/>
		</ComplexCondition>
		<MenuItem id = "SaveAs"
		          label = "${res:OpenFileTabEventHandler.ContextMenu.SaveAs}"
		          class = "ICSharpCode.SharpDevelop.Commands.TabStrip.SaveFileAsTab"/>
		<MenuItem id = "SaveSeparator" type = "Separator" />
		<ComplexCondition action="Disable">
			<Not>
				<Condition name = "Ownerstate" ownerstate="FileUntitled,ViewContentWithoutFile" />
			</Not>
			<MenuItem id = "CopyPathName"
			          label = "${res:OpenFileTabEventHandler.CopyPathName}"
			          class = "ICSharpCode.SharpDevelop.Commands.TabStrip.CopyPathName"/>
			<MenuItem id = "NavigateToFileInProjectBrowser"
			          label = "${res:ICSharpCode.SharpDevelop.Commands.TabStrip.NavigateToFileInProjectBrowser}"
			          class = "ICSharpCode.SharpDevelop.Commands.TabStrip.NavigateToFileInProjectBrowser"/>
			<MenuItem id = "OpenFolderContainingFileFromTab"
			          label = "${res:OpenFileTabEventHandler.FileContainingFolderInExplorer}"
			          class = "ICSharpCode.SharpDevelop.Commands.TabStrip.OpenFolderContainingFile"/>
			<MenuItem id = "OpenCommandPromptHereFromTab"
			          label = "${res:OpenFileTabEventHandler.OpenCommandPromptHere}"
			          class = "ICSharpCode.SharpDevelop.Commands.TabStrip.OpenCommandPromptHere"/>
		</ComplexCondition>
	</Path>
	
	<Path name = "/SharpDevelop/Views/PropertyPad/ContextMenu">
		<MenuItem id    = "ResetProperty"
		          label = "${res:ICSharpCode.SharpDevelop.Gui.Pads.PropertyPad.ContextMenu.Reset}"
		          class = "ICSharpCode.SharpDevelop.Gui.PropertyPadResetCommand"/>
		<MenuItem id = "Separator"  type = "Separator" />
		<MenuItem id    = "ShowDescription"
		          label = "${res:ICSharpCode.SharpDevelop.Gui.Pads.PropertyPad.ContextMenu.ShowDescription}"
		          class = "ICSharpCode.SharpDevelop.Gui.PropertyPadShowDescriptionCommand"/>
	</Path>
	
	<Path name = "/SharpDevelop/Dialogs/OptionsDialog">
		<OptionPanel id    = "UIOptions"
		             label = "${res:Dialog.Options.TreeViewOptions.SharpDevelopOptionsText}">
			<OptionPanel id    = "SelectCulture"
			             label = "${res:Dialog.Options.IDEOptions.SelectCulture.PanelName}"
			             class = "ICSharpCode.SharpDevelop.Gui.OptionPanels.SelectCulturePanel"/>
			<OptionPanel id    = "SelectStyle"
			             label = "${res:Dialog.Options.IDEOptions.SelectVisualStyle.PanelName}"
			             class = "ICSharpCode.SharpDevelop.Gui.OptionPanels.SelectStylePanel"/>
			<OptionPanel id    = "LoadSave"
			             label = "${res:Dialog.Options.IDEOptions.LoadSaveOptions.PanelName}"
			             class = "ICSharpCode.SharpDevelop.OptionPanels.LoadSaveOptions"/>
			
			<OptionPanel id    = "TaskListOptions"
			             label = "${res:Dialog.Options.IDEOptions.TaskListOptions.PanelName}"
			             class = "ICSharpCode.SharpDevelop.Gui.OptionPanels.TaskListOptionsPanel"/>
			
			
			<OptionPanel id    = "OutputWindowOptions"
			             label = "${res:Dialog.Options.IDEOptions.OutputPanel.Title}"
			             class = "ICSharpCode.SharpDevelop.Gui.OptionPanels.OutputWindowOptionsPanel"/>
			
			<OptionPanel id    = "ProjectAndSolutionOptions"
			             label = "${res:Dialog.Options.IDEOptions.ProjectAndSolutionOptions.PanelName}"
			             class = "ICSharpCode.SharpDevelop.Gui.OptionPanels.ProjectAndSolutionOptions"/>
		
		</OptionPanel>
		
		<OptionPanel id    = "CodingOptions"
		             label = "${res:Dialog.Options.IDEOptions.CodingOptionsText}">
			
			<OptionPanel id    = "CodeGeneration"
			             label = "${res:Dialog.Options.IDEOptions.CodeGenerationOptionsPanel.Title}"
			             class = "ICSharpCode.SharpDevelop.Gui.OptionPanels.CodeGenerationPanel"/>
			
			<OptionPanel id    = "EditStandardHeaderPanel"
			             label = "${res:Dialog.Options.IDEOptions.EditStandardHeaderPanel.Title}"
			             class = "ICSharpCode.SharpDevelop.Gui.OptionPanels.EditStandardHeaderPanel"/>
		</OptionPanel>
		
		<OptionPanel id    = "ToolsOptions"
		             label = "${res:Dialog.Options.IDEOptions.ToolsOptionsText}">
			
			<OptionPanel id    = "ExternalTools"
			             label = "${res:Dialog.Options.ExternalToolsText}"
			             class = "ICSharpCode.SharpDevelop.Gui.OptionPanels.ExternalToolPanel"/>
			
			<OptionPanel id    = "ServiceReferences"
			             label = "${res:Dialog.Options.ServicesReferencesText}"
			             class = "ICSharpCode.SharpDevelop.Gui.OptionPanels.ServiceReference.ServiceReferenceOptionsPanel"/>
		</OptionPanel>
	</Path>
	
	<Path name = "/SharpDevelop/Workbench/SharpDevelopSideBar/ContextMenu">
		<Condition name = "Ownerstate" ownerstate = "TabCanBeDeleted" action="Disable">
			<MenuItem id     = "DeleteTab"
			          label = "${res:SideBarComponent.ContextMenu.DeleteTab}"
			          class = "ICSharpCode.SharpDevelop.Commands.SideBarDeleteTabHeader"/>
		</Condition>
		
		<Condition name = "Ownerstate" ownerstate="CanBeRenamed" action="Disable">
			<MenuItem id    = "RenameTab"
			          label = "${res:SideBarComponent.ContextMenu.RenameTab}"
			          class = "ICSharpCode.SharpDevelop.Commands.SideBarRenameTabHeader"/>
		</Condition>
		
		<MenuItem id = "Separator1" type = "Separator" />
		<MenuItem id    = "AddTab"
		          label = "${res:SideBarComponent.ContextMenu.AddTab}"
		          class = "ICSharpCode.SharpDevelop.Commands.SideBarAddTabHeader"/>
		
		<MenuItem id = "Separator2" type = "Separator" />
		<Condition name = "Ownerstate" ownerstate="CanMoveUp" action="Disable">
			<MenuItem id    = "MoveTabUp"
			          label = "${res:Global.MoveUp}"
			          class = "ICSharpCode.SharpDevelop.Commands.SideBarMoveTabUp"/>
		</Condition>
		
		<Condition name = "Ownerstate" ownerstate="CanMoveDown" action="Disable">
			<MenuItem id    = "MoveTabDown"
			          label = "${res:Global.MoveDown}"
			          class = "ICSharpCode.SharpDevelop.Commands.SideBarMoveTabDown"/>
		</Condition>
		
		<Include id="CommonContextMenu" path="/SharpDevelop/Workbench/SharpDevelopSideBar/CommonContextMenu"/>
	</Path>
	
	<Path name = "/SharpDevelop/Workbench/SharpDevelopSideBar/SideTab/ContextMenu">
		<Condition name = "Ownerstate" ownerstate="TabCanBeDeleted" action="Disable">
			<MenuItem id = "DeleteTabItem"
			          label = "${res:SideBarComponent.ContextMenu.DeleteTabItem}"
			          class = "ICSharpCode.SharpDevelop.Commands.SideBarDeleteTabItem"/>
		</Condition>
		
		<Condition name = "Ownerstate" ownerstate="CanBeRenamed" action="Disable">
			<MenuItem id = "RenameTabItem"
			          label = "${res:SideBarComponent.ContextMenu.RenameTabItem}"
			          class = "ICSharpCode.SharpDevelop.Commands.SideBarRenameTabItem" />
		</Condition>
		
		<MenuItem id = "Separator1" type = "Separator" />
		<Condition name = "Ownerstate" ownerstate="CanMoveItemUp" action="Disable">
			<MenuItem id = "MoveItemUp"
			          label = "${res:Global.MoveUp}"
			          class = "ICSharpCode.SharpDevelop.Commands.SideBarMoveActiveItemUp"/>
		</Condition>
		
		<Condition name = "Ownerstate" ownerstate="CanMoveItemDown" action="Disable">
			<MenuItem id = "MoveItemDown"
			          label = "${res:Global.MoveDown}"
			          class = "ICSharpCode.SharpDevelop.Commands.SideBarMoveActiveItemDown"/>
		</Condition>
		
		<Include id="CommonContextMenu" path="/SharpDevelop/Workbench/SharpDevelopSideBar/CommonContextMenu"/>
	</Path>

  <!-- MyCustom Main Menu -->
  <Path name = "/SharpDevelop/Workbench/MyCustomMainMenu">
    <MenuItem id = "File" label    = "MyCustom File" type="Menu">
      <MenuItem id = "New" label = "${res:XML.MainMenu.FileMenu.New}" type="Menu">
        <MenuItem id           = "File"
                  label        = "${res:XML.MainMenu.FileMenu.New.File}"
                  icon         = "Icons.16x16.NewDocumentIcon"
                  shortcut     = "Control|N"
                  class        = "ICSharpCode.SharpDevelop.Commands.CreateNewFile"/>

        <Condition name="SolutionOpen" action="Disable">
          <MenuItem id          = "Project"
                    label       = "${res:XML.MainMenu.FileMenu.New.Project}"
                    icon        = "Icons.16x16.NewProjectIcon"
                    class       = "ICSharpCode.SharpDevelop.Project.Commands.AddNewProjectToSolution"/>
        </Condition>

        <MenuItem id          = "Solution"
                  label       = "${res:XML.MainMenu.FileMenu.New.Solution}"
                  icon        = "Icons.16x16.SolutionIcon"
                  shortcut    = "Control|Shift|N"
                  class       = "ICSharpCode.SharpDevelop.Project.Commands.CreateNewSolution"/>
      </MenuItem>


      <MenuItem id = "Open" label = "${res:XML.MainMenu.FileMenu.Open}" type="Menu">
        <MenuItem id          = "File"
                  label       = "${res:XML.MainMenu.FileMenu.Open.File}"
                  icon        = "Icons.16x16.OpenFileIcon"
                  shortcut    = "Control|O"
                  class       = "ICSharpCode.SharpDevelop.Commands.OpenFile"/>

        <MenuItem id          = "OpenWith"
                  label       = "${res:Gui.ProjectBrowser.OpenWith}"
                  class       = "ICSharpCode.SharpDevelop.Commands.OpenFileWith"/>

        <MenuItem id = "Project"
                  label = "${res:XML.MainMenu.FileMenu.Open.Project}"
                  icon = "Icons.16x16.OpenProjectIcon"
                  shortcut = "Control|Shift|O"
                  class = "ICSharpCode.SharpDevelop.Project.Commands.LoadSolution"/>
      </MenuItem>

      <MenuItem id = "Close" label = "${res:XML.MainMenu.FileMenu.Close}" type="Menu">
        <Condition name = "WindowActive" activewindow="*" action="Disable">
          <MenuItem id = "CloseFile"
                    label = "${res:XML.MainMenu.FileMenu.Close.File}"
                    icon  = "Icons.16x16.CloseFileIcon"
                    shortcut = "Control|F4"
                    class ="ICSharpCode.SharpDevelop.Commands.CloseFile"/>
        </Condition>
        <Condition name = "SolutionOpen" action="Disable">
          <MenuItem id = "CloseCombine"
                    label = "${res:XML.MainMenu.FileMenu.Close.Project}"
                    shortcut = "Control|Shift|F4"
                    class = "ICSharpCode.SharpDevelop.Project.Commands.CloseSolution"/>
        </Condition>
      </MenuItem>

      <MenuItem id = "ReloadSeparator" type = "Separator"  />
      <Condition name = "WindowActive" activewindow="*" action="Disable">
        <MenuItem id = "Reloadfile"
                  label = "${res:XML.MainMenu.FileMenu.Reload}"
                  shortcut = "Shift|Control|U"
                  class = "ICSharpCode.SharpDevelop.Commands.ReloadFile" />
      </Condition>

      <MenuItem id = "SaveSeparator" type = "Separator"  />

      <Condition name = "ActiveWindowState" windowstate="Dirty, Untitled" nowindowstate="ViewOnly" action="Disable">
        <MenuItem id = "Save"
                  label = "${res:XML.MainMenu.FileMenu.Save}"
                  icon = "Icons.16x16.SaveIcon"
                  shortcut = "Control|S"
                  class = "ICSharpCode.SharpDevelop.Commands.SaveFile"/>
      </Condition>

      <Condition name = "ActiveWindowState" windowstate="None" nowindowstate="ViewOnly" action="Disable">
        <MenuItem id = "SaveAs"
                  label = "${res:XML.MainMenu.FileMenu.SaveAs}"
                  class = "ICSharpCode.SharpDevelop.Commands.SaveFileAs"/>
      </Condition>

      <Condition name = "OpenWindowState" openwindowstate="Dirty" action="Disable">
        <MenuItem id = "SaveAll"
                  label = "${res:XML.MainMenu.FileMenu.SaveAll}"
                  icon = "Icons.16x16.SaveAllIcon"
                  shortcut = "Control|Shift|S"
                  class = "ICSharpCode.SharpDevelop.Commands.SaveAllFiles"/>
      </Condition>

      <MenuItem id = "RecentSeparator" type = "Separator"  />
      <MenuItem id = "RecentFiles"    attribute = "RecentFiles" label = "${res:XML.MainMenu.FileMenu.RecentFiles}" type="Menu">
        <MenuItem id = "RecentFilesBuilder" type = "Builder" class = "ICSharpCode.SharpDevelop.Commands.RecentFilesMenuBuilder" />
        <MenuItem id = "RecentFilesSeparator" type = "Separator"  />
        <MenuItem id = "ClearRecentFiles"
                  label = "${res:XML.MainMenu.FileMenu.ClearRecentFiles}"
                  class = "ICSharpCode.SharpDevelop.Commands.ClearRecentFiles" />
      </MenuItem>

      <MenuItem id = "RecentProjects" attribute = "RecentProjects" label = "${res:XML.MainMenu.FileMenu.RecentProjects}" type="Menu">
        <MenuItem id = "RecentProjectsBuilder" type = "Builder" class = "ICSharpCode.SharpDevelop.Commands.RecentProjectsMenuBuilder" />
        <MenuItem id = "RecentProjectsSeparator" type = "Separator"  />
        <MenuItem id = "ClearRecentFiles"
                  label = "${res:XML.MainMenu.FileMenu.ClearRecentProjects}"
                  class = "ICSharpCode.SharpDevelop.Commands.ClearRecentProjects" />
      </MenuItem>

      <MenuItem id = "ExitSeparator" type = "Separator"  />
      <MenuItem id = "Exit"
                label = "${res:XML.MainMenu.FileMenu.Exit}"
                icon = "Icons.16x16.CancelIcon"
                class = "ICSharpCode.SharpDevelop.Commands.ExitWorkbenchCommand" />
    </MenuItem>
    <!-- End MyCustom Main Menu-->

    <!-- MyCustom Edit Menu-->
    <MenuItem id = "Edit" label = "${res:XML.MainMenu.EditMenu}" type="Menu">
      <!-- Do not specify shortcuts for built-in commands, those are bound automatically by WPF.
			     The shortcuts work correctly in WinForms pads (e.g. label edit in tree view in WinForms project pad)
			     only if they are not explicitly specified in the menu.
			-->
      <MenuItem id = "Undo"
                label = "${res:XML.MainMenu.EditMenu.Undo}"
                icon = "Icons.16x16.UndoIcon"
                type = "Item"
                command = "Undo"/>
      <MenuItem id = "Redo"
                label = "${res:XML.MainMenu.EditMenu.Redo}"
                icon = "Icons.16x16.RedoIcon"
                type = "Item"
                command = "Redo"/>
      <MenuItem id = "Separator1" type = "Separator"  />
      <MenuItem id = "Cut"
                label = "${res:XML.MainMenu.EditMenu.Cut}"
                icon = "Icons.16x16.CutIcon"
                type = "Item"
                command = "Cut"/>
      <MenuItem id = "Copy"
                label = "${res:XML.MainMenu.EditMenu.Copy}"
                icon = "Icons.16x16.CopyIcon"
                type = "Item"
                command = "Copy"/>
      <MenuItem id = "Paste"
                label = "${res:XML.MainMenu.EditMenu.Paste}"
                icon = "Icons.16x16.PasteIcon"
                type = "Item"
                command = "Paste"/>
      <MenuItem id = "Delete"
                label = "${res:XML.MainMenu.EditMenu.Delete}"
                icon = "Icons.16x16.DeleteIcon"
                type = "Item"
                command = "Delete"/>
      <MenuItem id = "Separator2" type = "Separator"  />
      <MenuItem id = "SelectAll"
                label = "${res:XML.MainMenu.EditMenu.SelectAll}"
                type = "Item"
                command = "SelectAll"/>

    </MenuItem>
    <!-- end EDIT menu -->


    <MenuItem id = "View" label = "${res:XML.MainMenu.ViewMenu}" type="Menu">
      <MenuItem id    = "MainViewMenuBuilder"
			          type  = "Builder"
			          class = "ICSharpCode.SharpDevelop.Commands.MainViewMenuBuilder" />
    </MenuItem>
    <!-- end VIEW menu -->
  </Path>

  <!-- Main Menu -->
	<Path name = "/SharpDevelop/Workbench/MainMenu">
		<MenuItem id = "File" label    = "${res:XML.MainMenu.FileMenu}" type="Menu">
			<MenuItem id = "New" label = "${res:XML.MainMenu.FileMenu.New}" type="Menu">
				<MenuItem id           = "File"
				          label        = "${res:XML.MainMenu.FileMenu.New.File}"
				          icon         = "Icons.16x16.NewDocumentIcon"
				          shortcut     = "Control|N"
				          class        = "ICSharpCode.SharpDevelop.Commands.CreateNewFile"/>
				
				<Condition name="SolutionOpen" action="Disable">
					<MenuItem id          = "Project"
					          label       = "${res:XML.MainMenu.FileMenu.New.Project}"
					          icon        = "Icons.16x16.NewProjectIcon"
					          class       = "ICSharpCode.SharpDevelop.Project.Commands.AddNewProjectToSolution"/>
				</Condition>
				
				<MenuItem id          = "Solution"
				          label       = "${res:XML.MainMenu.FileMenu.New.Solution}"
				          icon        = "Icons.16x16.SolutionIcon"
				          shortcut    = "Control|Shift|N"
				          class       = "ICSharpCode.SharpDevelop.Project.Commands.CreateNewSolution"/>
			</MenuItem>
			
			
			<MenuItem id = "Open" label = "${res:XML.MainMenu.FileMenu.Open}" type="Menu">
				<MenuItem id          = "File"
				          label       = "${res:XML.MainMenu.FileMenu.Open.File}"
				          icon        = "Icons.16x16.OpenFileIcon"
				          shortcut    = "Control|O"
				          class       = "ICSharpCode.SharpDevelop.Commands.OpenFile"/>
				
				<MenuItem id          = "OpenWith"
				          label       = "${res:Gui.ProjectBrowser.OpenWith}"
				          class       = "ICSharpCode.SharpDevelop.Commands.OpenFileWith"/>
				
				<MenuItem id = "Project"
				          label = "${res:XML.MainMenu.FileMenu.Open.Project}"
				          icon = "Icons.16x16.OpenProjectIcon"
				          shortcut = "Control|Shift|O"
				          class = "ICSharpCode.SharpDevelop.Project.Commands.LoadSolution"/>
			</MenuItem>
			
			<MenuItem id = "Close" label = "${res:XML.MainMenu.FileMenu.Close}" type="Menu">
				<Condition name = "WindowActive" activewindow="*" action="Disable">
					<MenuItem id = "CloseFile"
					          label = "${res:XML.MainMenu.FileMenu.Close.File}"
					          icon  = "Icons.16x16.CloseFileIcon"
					          shortcut = "Control|F4"
					          class ="ICSharpCode.SharpDevelop.Commands.CloseFile"/>
				</Condition>
				<Condition name = "SolutionOpen" action="Disable">
					<MenuItem id = "CloseCombine"
					          label = "${res:XML.MainMenu.FileMenu.Close.Project}"
					          shortcut = "Control|Shift|F4"
					          class = "ICSharpCode.SharpDevelop.Project.Commands.CloseSolution"/>
				</Condition>
			</MenuItem>
			
			<MenuItem id = "ReloadSeparator" type = "Separator"  />
			<Condition name = "WindowActive" activewindow="*" action="Disable">
				<MenuItem id = "Reloadfile"
				          label = "${res:XML.MainMenu.FileMenu.Reload}"
				          shortcut = "Shift|Control|U"
				          class = "ICSharpCode.SharpDevelop.Commands.ReloadFile" />
			</Condition>
			
			<MenuItem id = "SaveSeparator" type = "Separator"  />
			
			<Condition name = "ActiveWindowState" windowstate="Dirty, Untitled" nowindowstate="ViewOnly" action="Disable">
				<MenuItem id = "Save"
				          label = "${res:XML.MainMenu.FileMenu.Save}"
				          icon = "Icons.16x16.SaveIcon"
				          shortcut = "Control|S"
				          class = "ICSharpCode.SharpDevelop.Commands.SaveFile"/>
			</Condition>
			
			<Condition name = "ActiveWindowState" windowstate="None" nowindowstate="ViewOnly" action="Disable">
				<MenuItem id = "SaveAs"
				          label = "${res:XML.MainMenu.FileMenu.SaveAs}"
				          class = "ICSharpCode.SharpDevelop.Commands.SaveFileAs"/>
			</Condition>
			
			<Condition name = "OpenWindowState" openwindowstate="Dirty" action="Disable">
				<MenuItem id = "SaveAll"
				          label = "${res:XML.MainMenu.FileMenu.SaveAll}"
				          icon = "Icons.16x16.SaveAllIcon"
				          shortcut = "Control|Shift|S"
				          class = "ICSharpCode.SharpDevelop.Commands.SaveAllFiles"/>
			</Condition>
			
			<MenuItem id = "PrintSeparator" type = "Separator"  />
			<Condition name = "WindowActive" activewindow="*" action="Disable">
				<MenuItem id = "Print"
				          label = "${res:XML.MainMenu.FileMenu.Print}"
				          icon = "Icons.16x16.Print"
				          shortcut = "Control|P"
				          command = "Print"/>
				<MenuItem id = "PrintPreview"
				          label = "${res:XML.MainMenu.FileMenu.PrintPreview}"
				          icon = "Icons.16x16.PreView"
				          command = "PrintPreview"/>
			</Condition>
			
			<MenuItem id = "RecentSeparator" type = "Separator"  />
			<MenuItem id = "RecentFiles"    attribute = "RecentFiles" label = "${res:XML.MainMenu.FileMenu.RecentFiles}" type="Menu">
				<MenuItem id = "RecentFilesBuilder" type = "Builder" class = "ICSharpCode.SharpDevelop.Commands.RecentFilesMenuBuilder" />
				<MenuItem id = "RecentFilesSeparator" type = "Separator"  />
				<MenuItem id = "ClearRecentFiles"
				          label = "${res:XML.MainMenu.FileMenu.ClearRecentFiles}"
				          class = "ICSharpCode.SharpDevelop.Commands.ClearRecentFiles" />
			</MenuItem>
			
			<MenuItem id = "RecentProjects" attribute = "RecentProjects" label = "${res:XML.MainMenu.FileMenu.RecentProjects}" type="Menu">
				<MenuItem id = "RecentProjectsBuilder" type = "Builder" class = "ICSharpCode.SharpDevelop.Commands.RecentProjectsMenuBuilder" />
				<MenuItem id = "RecentProjectsSeparator" type = "Separator"  />
				<MenuItem id = "ClearRecentFiles"
				          label = "${res:XML.MainMenu.FileMenu.ClearRecentProjects}"
				          class = "ICSharpCode.SharpDevelop.Commands.ClearRecentProjects" />
			</MenuItem>
			
			<MenuItem id = "ExitSeparator" type = "Separator"  />
			<MenuItem id = "Exit"
			          label = "${res:XML.MainMenu.FileMenu.Exit}"
			          icon = "Icons.16x16.CancelIcon"
			          class = "ICSharpCode.SharpDevelop.Commands.ExitWorkbenchCommand" />
		</MenuItem> <!-- END File menu -->
		
		<MenuItem id = "Edit" label = "${res:XML.MainMenu.EditMenu}" type="Menu">
			<!-- Do not specify shortcuts for built-in commands, those are bound automatically by WPF.
			     The shortcuts work correctly in WinForms pads (e.g. label edit in tree view in WinForms project pad)
			     only if they are not explicitly specified in the menu.
			-->
			<MenuItem id = "Undo"
			          label = "${res:XML.MainMenu.EditMenu.Undo}"
			          icon = "Icons.16x16.UndoIcon"
			          type = "Item"
			          command = "Undo"/>
			<MenuItem id = "Redo"
			          label = "${res:XML.MainMenu.EditMenu.Redo}"
			          icon = "Icons.16x16.RedoIcon"
			          type = "Item"
			          command = "Redo"/>
			<MenuItem id = "Separator1" type = "Separator"  />
			<MenuItem id = "Cut"
			          label = "${res:XML.MainMenu.EditMenu.Cut}"
			          icon = "Icons.16x16.CutIcon"
			          type = "Item"
			          command = "Cut"/>
			<MenuItem id = "Copy"
			          label = "${res:XML.MainMenu.EditMenu.Copy}"
			          icon = "Icons.16x16.CopyIcon"
			          type = "Item"
			          command = "Copy"/>
			<MenuItem id = "Paste"
			          label = "${res:XML.MainMenu.EditMenu.Paste}"
			          icon = "Icons.16x16.PasteIcon"
			          type = "Item"
			          command = "Paste"/>
			<MenuItem id = "Delete"
			          label = "${res:XML.MainMenu.EditMenu.Delete}"
			          icon = "Icons.16x16.DeleteIcon"
			          type = "Item"
			          command = "Delete"/>
			<MenuItem id = "Separator2" type = "Separator"  />
			<Condition name = "WindowActive" activewindow="ICSharpCode.SharpDevelop.Editor.ITextEditor" action="Disable">
				<MenuItem id = "Insert" label = "${res:XML.MainMenu.EditMenu.Insert}" type="Menu">
					<MenuItem id = "PasteAsComment"
					          label = "${res:XML.MainMenu.EditMenu.Paste.AsComment}"
					          class="ICSharpCode.SharpDevelop.Editor.Commands.PasteAsCommentCommand"/>
					<MenuItem id = "PasteAsString"
					          label = "${res:XML.MainMenu.EditMenu.Paste.AsString}"
					          class="ICSharpCode.SharpDevelop.Editor.Commands.PasteAsStringCommand"/>
					
					<MenuItem id="Separator1" type="Separator"/>
					
					<MenuItem id = "InsertColor"
					          label = "${res:XML.MainMenu.ToolMenu.InsColor}"
					          class = "ICSharpCode.SharpDevelop.Editor.Commands.ShowColorDialog"/>
					<MenuItem id       = "InsertGuid"
					          shortcut = "Control|Shift|G"
					          label    = "${res:XML.MainMenu.ToolMenu.InsGUID}"
					          class    = "ICSharpCode.SharpDevelop.Editor.Commands.InsertGuidCommand"/>
				</MenuItem>
			</Condition>
			<MenuItem id = "SelectAll"
			          label = "${res:XML.MainMenu.EditMenu.SelectAll}"
			          type = "Item"
			          command = "SelectAll"/>
			<MenuItem id = "Separator4" type = "Separator"  />
			<ComplexCondition action="Disable">
				<Or>
					<Condition name = "WindowActive" activewindow="*"/>
					<Condition name = "SolutionOpen"/>
				</Or>
				<MenuItem id = "WordCount"
				          label = "${res:XML.MainMenu.EditMenu.WordCount}"
				          class = "ICSharpCode.SharpDevelop.Commands.WordCount"/>
			</ComplexCondition>
		</MenuItem> <!-- end EDIT menu -->
		
		<MenuItem id = "View" label = "${res:XML.MainMenu.ViewMenu}" type="Menu">
			<MenuItem id    = "MainViewMenuBuilder"
			          type  = "Builder"
			          class = "ICSharpCode.SharpDevelop.Commands.MainViewMenuBuilder" />
			
			<MenuItem id = "Tools" label = "${res:XML.MainMenu.ViewMenu.ToolsMenu}" type="Menu">
				<MenuItem id    = "ToolsViewMenuBuilder"
				          type  = "Builder"
				          class = "ICSharpCode.SharpDevelop.Commands.ToolsViewMenuBuilder" />
			</MenuItem>
			
			<MenuItem id = "ViewItemsSeparator" type = "Separator" />
			<MenuItem id = "FullScreen"
			          label         = "${res:XML.MainMenu.ViewMenu.FullScreen}"
			          icon        = "Icons.16x16.FullScreen"
			          class       = "ICSharpCode.SharpDevelop.Commands.ToggleFullscreenCommand" />
		</MenuItem> <!-- end VIEW menu -->
		
		<Condition name="RefactoringProviderSupports" supports="*">
			<MenuItem id = "Refactor" label = "${res:XML.MainMenu.RefactorMenu}" type="Menu">
				<MenuItem id    = "Rename"
				          label = "${res:SharpDevelop.Refactoring.RenameCommand}"
				          class = "ICSharpCode.SharpDevelop.Refactoring.RenameCommand"
				          shortcut = "Control|R" />
				<Condition name="RefactoringProviderSupports" supports="FindUnusedUsingDeclarations">
					<MenuItem id    = "RemoveUnusedUsings"
					          label = "${res:SharpDevelop.Refactoring.RemoveUnusedImports}"
					          class = "ICSharpCode.SharpDevelop.Refactoring.RemoveUnusedUsingsCommand" />
				</Condition>
			</MenuItem>
		</Condition> <!-- end REFACTOR menu -->
		
		<Condition name = "ProjectActive" activeproject="*">
			<MenuItem id = "Project" label = "${res:XML.MainMenu.ProjectMenu}" type="Menu">
				<MenuItem id = "ProjectAddMenu" label = "${res:ProjectComponent.ContextMenu.AddMenu}" type = "Menu" >
					<Include path="/SharpDevelop/Pads/ProjectBrowser/ContextMenu/FolderNode/Add"/>
				</MenuItem>
				<MenuItem id    = "AddReference"
				          label = "${res:ProjectComponent.ContextMenu.AddReference}"
				          class = "ICSharpCode.SharpDevelop.Project.Commands.AddReferenceToProject"/>
				<MenuItem id    = "AddServiceReference"
				          label = "${res:ProjectComponent.ContextMenu.AddServiceReference}"
				          class = "ICSharpCode.SharpDevelop.Project.Commands.AddServiceReferenceToProject"/>
				<MenuItem id    = "AddWebReference"
				          label = "${res:ProjectComponent.ContextMenu.AddWebReference}"
				          class = "ICSharpCode.SharpDevelop.Project.Commands.AddWebReferenceToProject"/>
				<MenuItem id = "AddSeparator" type = "Separator"/>
				<Include id = "ProjectActions" path="/SharpDevelop/Pads/ProjectBrowser/ContextMenu/ProjectActions"/>
				<MenuItem id = "Separator2" type = "Separator" />
				<MenuItem id = "Options"
				          label = "${res:XML.MainMenu.ProjectMenu.Options}"
				          class = "ICSharpCode.SharpDevelop.Project.Commands.ViewProjectOptions"/>
			</MenuItem>
		</Condition> <!-- end PROJECT menu -->
		
		<MenuItem id = "Build" label = "${res:XML.MainMenu.BuildMenu}" type="Menu">
			<Condition name = "SolutionOpen" action="Disable">
				<MenuItem id       = "Build"
				          label    = "${res:XML.MainMenu.BuildMenu.BuildSolution}"
				          shortcut = "F8"
				          icon     = "Icons.16x16.BuildCombine"
				          class    = "ICSharpCode.SharpDevelop.Project.Commands.Build"/>
				<MenuItem id       = "Rebuild"
				          label    = "${res:XML.MainMenu.BuildMenu.RebuildSolution}"
				          shortcut = "Alt|F8"
				          class    = "ICSharpCode.SharpDevelop.Project.Commands.Rebuild"/>
				<MenuItem id    = "Clean"
				          label = "${res:XML.MainMenu.BuildMenu.CleanSolution}"
				          class = "ICSharpCode.SharpDevelop.Project.Commands.Clean"/>
				<Condition name = "ProjectActive" activeproject="*">
					<MenuItem id = "Separator1" type = "Separator" />
					<MenuItem id       = "Build project"
					          label    = "${res:XML.MainMenu.BuildMenu.BuildProject}"
					          shortcut = "F9"
					          icon     = "Icons.16x16.BuildCurrentSelectedProject"
					          class    = "ICSharpCode.SharpDevelop.Project.Commands.BuildProject"/>
					<MenuItem id       = "Rebuild project"
					          label    = "${res:XML.MainMenu.BuildMenu.RebuildProject}"
					          shortcut = "Alt|F9"
					          class    = "ICSharpCode.SharpDevelop.Project.Commands.RebuildProject"/>
					<MenuItem id    = "Clean project"
					          label = "${res:XML.MainMenu.BuildMenu.CleanProject}"
					          class = "ICSharpCode.SharpDevelop.Project.Commands.CleanProject"/>
					<!--<MenuItem id    = "Publish project"
					          label = "${res:XML.MainMenu.BuildMenu.PublishProject}"
					          class = "ICSharpCode.SharpDevelop.Project.Commands.PublishProject"/>-->
				</Condition>
				<MenuItem id = "Separator2" type = "Separator" />
				<MenuItem id="AbortBuild"
				          label="${res:XML.MainMenu.BuildMenu.AbortBuild}"
				          shortcut="Pause"
				          class="ICSharpCode.SharpDevelop.Project.Commands.AbortBuild"
				          loadclasslazy="false"/>
				<MenuItem id = "Separator3" type = "Separator" />
				<MenuItem id = "SetConfiguration"
				          label = "${res:XML.MainMenu.BuildMenu.SetConfiguration}"
				          type = "Menu">
					<MenuItem id = "ConfigurationBuilder" type = "Builder" class = "ICSharpCode.SharpDevelop.Project.Commands.SetConfigurationMenuBuilder"/>
				</MenuItem>
				<MenuItem id = "SetPlatform"
				          label = "${res:XML.MainMenu.BuildMenu.SetPlatform}"
				          type = "Menu">
					<MenuItem id = "PlatformBuilder" type = "Builder" class = "ICSharpCode.SharpDevelop.Project.Commands.SetPlatformMenuBuilder"/>
				</MenuItem>
				<MenuItem id = "EditConfigurations"
				          label = "${res:XML.MainMenu.BuildMenu.EditConfigurationsPlatforms}"
				          class = "ICSharpCode.SharpDevelop.Project.Commands.EditConfigurationsCommand"/>
			</Condition>
		</MenuItem> <!-- end BUILD menu -->
		
		<MenuItem id = "Debug" label = "${res:XML.MainMenu.DebugMenu}" type="Menu">
			<Condition name="DebuggerSupports" debuggersupports = "Start">
				<Condition name = "SolutionOpen" action="Disable">
					<Condition name="IsProcessRunning" isdebugging="False" action="Disable">
						<MenuItem id       = "Run"
						          label    = "${res:XML.MainMenu.RunMenu.Run}"
						          icon     = "Icons.16x16.RunProgramIcon"
						          shortcut = "F5"
						          class    = "ICSharpCode.SharpDevelop.Project.Commands.ContinueDebuggingCommand"/>
					</Condition>
				</Condition>
			</Condition>
			
			<Condition name="DebuggerSupports" debuggersupports = "StartWithoutDebugging">
				<Condition name = "SolutionOpen" action="Disable">
					<Condition name="IsProcessRunning" isdebugging="False" action="Disable">
						<MenuItem id       = "RunWithoutDebugger"
						          label    = "${res:XML.MainMenu.DebugMenu.RunWithoutDebug}"
						          icon     = "Icons.16x16.Debug.StartWithoutDebugging"
						          shortcut = "Control|F5"
						          class    = "ICSharpCode.SharpDevelop.Project.Commands.ExecuteWithoutDebugger"/>
					</Condition>
				</Condition>
			</Condition>
			
			<Condition name = "SolutionOpen" action="Disable">
				<Condition name="IsProcessRunning" isdebugging="False" action="Disable">
					<MenuItem id       = "RunWithoutBuild"
					          label    = "${res:XML.MainMenu.DebugMenu.RunLastBuild}"
					          shortcut = "Control|Shift|F5"
					          class    = "ICSharpCode.SharpDevelop.Project.Commands.ExecuteLastBuild"/>
				</Condition>
			</Condition>
			
			<Condition name="DebuggerSupports" debuggersupports = "Stop">
				<Condition name="IsProcessRunning" isdebugging="True" action="Disable">
					<MenuItem id    = "Stop"
					          label = "${res:XML.MainMenu.DebugMenu.Stop}"
					          icon  = "Icons.16x16.StopProcess"
					          shortcut = "Shift|F5"
					          class = "ICSharpCode.SharpDevelop.Project.Commands.StopDebuggingCommand"/>
				</Condition>
			</Condition>
			
			<Condition name="DebuggerSupports" debuggersupports="Attaching">
				<Condition name="IsProcessRunning" isprocessrunning="False" isdebugging="False" action="Disable">
					<MenuItem id    = "Attach"
					          label = "${res:XML.MainMenu.DebugMenu.Attach}"
					          class = "ICSharpCode.SharpDevelop.Project.Commands.AttachToProcessCommand"/>
				</Condition>
			</Condition>
			
			<Condition name="DebuggerSupports" debuggersupports="Detaching">
				<Condition name="IsProcessRunning" isdebugging="True" action="Disable">
					<MenuItem id    = "Detach"
					          label = "${res:XML.MainMenu.DebugMenu.Detach}"
					          class = "ICSharpCode.SharpDevelop.Project.Commands.DetachFromProcessCommand"/>
				</Condition>
			</Condition>
			
			<Condition name="DebuggerSupports" debuggersupports = "ExecutionControl">
				<MenuItem id = "ExecutionControlSeparator" type = "Separator" />
				<Condition name="IsProcessRunning" isprocessrunning = "True" isdebugging = "True" action = "Disable">
					<MenuItem id       = "Break"
					          label    = "${res:XML.MainMenu.DebugMenu.Break}"
					          icon     = "Icons.16x16.Debug.Break"
					          class    = "ICSharpCode.SharpDevelop.Project.Commands.BreakDebuggingCommand"/>
				</Condition>
				<Condition name="IsProcessRunning" isprocessrunning = "False" isdebugging = "True" action = "Disable">
					<MenuItem id       = "Continue"
					          label    = "${res:XML.MainMenu.DebugMenu.Continue}"
					          icon     = "Icons.16x16.Debug.Continue"
					          shortcut = "F5"
					          class    = "ICSharpCode.SharpDevelop.Project.Commands.ContinueDebuggingCommand"/>
				</Condition>
			</Condition>
			
			<Condition name="DebuggerSupports" debuggersupports = "Stepping">
				<ComplexCondition action="Disable">
					<Or>
						<Condition name = "IsProcessRunning" isdebugging="True" isprocessrunning="False" />
						<And>
							<Condition name="DebuggerSupports" debuggersupports = "Start" />
							<Condition name = "SolutionOpen" />
						</And>
					</Or>
					<MenuItem id = "BeforeSteppingSeparator" type = "Separator" />
					<MenuItem id       = "Step over"
					          label    = "${res:XML.MainMenu.DebugMenu.StepOver}"
					          icon     = "Icons.16x16.Debug.StepOver"
					          shortcut = "F10"
					          class    = "ICSharpCode.SharpDevelop.Project.Commands.StepDebuggingCommand"/>
					<MenuItem id       = "Step into"
					          label    = "${res:XML.MainMenu.DebugMenu.StepInto}"
					          icon     = "Icons.16x16.Debug.StepInto"
					          shortcut = "F11"
					          class    = "ICSharpCode.SharpDevelop.Project.Commands.StepIntoDebuggingCommand"/>
					<Condition name="IsProcessRunning" isdebugging = "True" isprocessrunning="False" action="Disable">
						<MenuItem id       = "Step out"
						          label    = "${res:XML.MainMenu.DebugMenu.StepOut}"
						          icon     = "Icons.16x16.Debug.StepOut"
						          shortcut = "Shift|F11"
						          class    = "ICSharpCode.SharpDevelop.Project.Commands.StepOutDebuggingCommand"/>
					</Condition>
				</ComplexCondition>
			</Condition>
			
			<MenuItem id = "ToggleBreakpointSeparator" type = "Separator" />
			<ComplexCondition action="Disable">
				<And>
					<Condition name = "WindowActive" activewindow="ICSharpCode.SharpDevelop.Editor.ITextEditor"/>
					<Condition name = "ActiveViewContentUntitled" activewindowuntitled="False"/>
				</And>
				<MenuItem id       = "Toggle Breakpoint"
				          label    = "${res:XML.MainMenu.DebugMenu.ToggleBreakpoint}"
				          shortcut = "F7"
				          icon     = "Bookmarks.Breakpoint"
				          class    = "ICSharpCode.SharpDevelop.Project.Commands.ToggleBreakpointCommand"/>
			</ComplexCondition>
		</MenuItem> <!-- end DEBUG menu -->
		
		<MenuItem id = "Search" label = "${res:XML.MainMenu.SearchMenu}" type="Menu">
			<MenuItem id = "SearchSeparator" type = "Separator" />
			<Condition name = "WindowActive" activewindow="ICSharpCode.SharpDevelop.Editor.ITextEditor" action="Disable">
				<MenuItem id = "ToggleBookmark"
				          label = "${res:XML.MainMenu.SearchMenu.ToggleBookmark}"
				          shortcut = "Control|M"
				          icon = "Bookmarks.ToggleMark"
				          class = "ICSharpCode.SharpDevelop.Editor.Bookmarks.ToggleBookmark"/>
				<MenuItem id = "PrevBookmark"
				          label = "${res:XML.MainMenu.SearchMenu.PrevBookmark}"
				          shortcut = "Control|OemComma"
				          icon = "Bookmarks.GotoPrevInFile"
				          class = "ICSharpCode.SharpDevelop.Editor.Bookmarks.PrevBookmark"/>
				<MenuItem id = "NextBookmark"
				          label = "${res:XML.MainMenu.SearchMenu.NextBookmark}"
				          shortcut = "Control|OemPeriod"
				          icon = "Bookmarks.GotoNextInFile"
				          class = "ICSharpCode.SharpDevelop.Editor.Bookmarks.NextBookmark"/>
				<MenuItem id = "ClearBookmarks"
				          label = "${res:XML.MainMenu.SearchMenu.ClrBookmark}"
				          icon = "Bookmarks.ClearAll"
				          class = "ICSharpCode.SharpDevelop.Editor.Bookmarks.ClearBookmarks"/>
			</Condition>
			<MenuItem id = "Separator2" type = "Separator" />
			
			<MenuItem id = "GotoLineNr"
			          label = "${res:XML.MainMenu.SearchMenu.Goto}"
			          shortcut = "Control|G"
			          class = "ICSharpCode.SharpDevelop.Editor.Commands.GotoLineNumber"/>
			
			<MenuItem id = "GotoDefinition"
			          label = "${res:ICSharpCode.NAntAddIn.GotoDefinitionMenuLabel}"
			          shortcut = "Control|Return"
			          icon="Icons.16x16.SelectionArrow"
			          class = "ICSharpCode.SharpDevelop.Editor.Commands.GoToDefinition"/>
			
			<MenuItem id = "FindReferences"
			          label = "${res:SharpDevelop.Refactoring.FindReferences}"
			          shortcut = "F12"
			          icon="Icons.16x16.SelectionArrow"
			          class = "ICSharpCode.SharpDevelop.Editor.Commands.FindReferencesCommand"/>
			
			<MenuItem id = "Rename"
			          label = "${res:SharpDevelop.Refactoring.RenameCommand}"
			          shortcut="Ctrl+R"
			          class = "ICSharpCode.SharpDevelop.Editor.Commands.RenameSymbolCommand"/>
			
			<MenuItem id = "GotoBrace"
			          label = "${res:XML.MainMenu.SearchMenu.GotoBrace}"
			          shortcut = "Control|B"
			          class = "ICSharpCode.SharpDevelop.Editor.Commands.GoToMatchingBrace"/>
			<!--			</Condition> -->
		</MenuItem>
		
		<MenuItem id="Analysis" label="${res:XML.MainMenu.Analysis}" type="Menu">
			<MenuItem id="Separator1" type="Separator" />
		</MenuItem>
		
		<MenuItem id = "Tools" label = "${res:XML.MainMenu.ToolMenu}" type="Menu">
			<MenuItem id = "ToolBuilder" type="Builder" class = "ICSharpCode.SharpDevelop.Commands.ToolMenuBuilder" />
			<MenuItem id = "Separator1" type = "Separator" />
			<Include id = "ToolList" path = "/SharpDevelop/Workbench/Tools" />
			<MenuItem id = "Separator2" type = "Separator" />
			
			<Condition name = "SolutionOpen" action="Disable">
				<MenuItem id = "Upgrade"
				          label = "${res:ICSharpCode.SharpDevelop.Project.UpgradeView.Title}"
				          class = "ICSharpCode.SharpDevelop.Project.Converter.ShowUpgradeView"/>
			</Condition>
			
			<MenuItem id = "LastSeparator" type = "Separator" />
			
			<MenuItem id = "Options"
			          label = "${res:XML.MainMenu.ToolMenu.Options}"
			          icon = "Icons.16x16.Options"
			          class = "ICSharpCode.SharpDevelop.Commands.OptionsCommand"/>
		</MenuItem> <!-- end TOOLS menu -->
		
		<MenuItem id = "Window" label = "${res:XML.MainMenu.WindowMenu}" type="Menu">
			<Condition name = "WindowActive" activewindow="*"  action="Disable">
				<MenuItem id  = "NextWindow"
				          label = "${res:XML.MainMenu.WindowMenu.NxtWindow}"
				          icon = "Icons.16x16.NextWindowIcon"
				          shortcut = "Control|Tab"
				          class = "ICSharpCode.SharpDevelop.Commands.SelectNextWindow" />
				<MenuItem id = "PrevWindow"
				          label = "${res:XML.MainMenu.WindowMenu.PrvWindow}"
				          icon = "Icons.16x16.PrevWindowIcon"
				          shortcut = "Shift|Control|Tab"
				          class = "ICSharpCode.SharpDevelop.Commands.SelectPrevWindow" />
				<MenuItem id ="NxtPrvSeparator" type = "Separator" />
				<MenuItem id    = "CloseAll"
				          label = "${res:XML.MainMenu.FileMenu.CloseAll}"
				          icon  = "Icons.16x16.CloseAllDocuments"
				          class = "ICSharpCode.SharpDevelop.Commands.CloseAllWindows" />
			</Condition>
			<MenuItem id = "ContentBuilder"  type="Builder" class="ICSharpCode.SharpDevelop.Commands.OpenContentsMenuBuilder"/>
		</MenuItem>	 <!-- end WINDOW menu -->
		
		<MenuItem id = "Help" label = "${res:XML.MainMenu.HelpMenu}" type="Menu">
			<MenuItem id = "ContextHelp"
			          label = "${res:XML.MainMenu.HelpMenu.ContextHelp}"
			          icon = "Icons.16x16.HelpIcon"
			          shortcut = "F1"
			          command = "Help"/>
			<MenuItem id = "Help"
			          label = "${res:XML.MainMenu.HelpMenu.Topics}"
			          shortcut = "Alt|F1"
			          link = "https://github.com/icsharpcode/SharpDevelop/wiki/"/>
			<MenuItem id = "Separator1" type = "Separator" />
			<MenuItem id    = "ViewReadme"
			          label = "${res:XML.MainMenu.HelpMenu.ReadMe}"
			          link  = "home://doc/ReadMe.rtf" />
			<MenuItem id = "Web" label = "${res:XML.MainMenu.HelpMenu.WebMenu}" type="Menu">
				<MenuItem id = "SharpDevelop" label = "SharpDevelop" type="Menu">
					<MenuItem id = "Downloads" label = "Downloads" icon = "Icons.16x16.WebSearchIcon" link = "http://www.icsharpcode.net/OpenSource/SD/Download/" />
					<MenuItem id = "Forum" label = "Community Forums" icon = "Icons.16x16.WebSearchIcon" link = "http://community.sharpdevelop.net/forums/" />
					<MenuItem id = "Announcement" label = "Announcements" icon = "Icons.16x16.WebSearchIcon" link = "http://community.sharpdevelop.net/forums/3.aspx" />
					<MenuItem id = "Mail" label = "Send Us a Mail" icon = "Icons.16x16.WebSearchIcon" link = "http://www.sharpdevelop.net/OpenSource/SD/ContactUs.asp" />
					<MenuItem id = "Twitter" label = "On Twitter" icon = "Icons.16x16.WebSearchIcon" link = "https://twitter.com/sharpdevelop" />
				</MenuItem>
				<MenuItem id = "C#" label = "C#" type="Menu">
					<MenuItem id = "C# Help" label = "C# Help" icon = "Icons.16x16.WebSearchIcon" link = "http://www.csharphelp.com" />
					<MenuItem id = "CodeProject" label = "CodeProject" icon = "Icons.16x16.WebSearchIcon" link = "http://www.codeproject.com" />
					<MenuItem id = "C# Corner" label = "C# Corner" icon = "Icons.16x16.WebSearchIcon" link = "http://www.c-sharpcorner.com" />
				</MenuItem>
				<MenuItem id = "IntegratedProjects" label = "Integrated Projects" type="Menu">
					<MenuItem id = "AvalonDock" label = "AvalonDock" icon = "Icons.16x16.WebSearchIcon" link = "http://www.codeplex.com/AvalonDock/" />
					<MenuItem id = "NUnit" label = "NUnit" icon = "PadIcons.NUnitTest" link = "http://www.nunit.org/" />
					<MenuItem id = "WiX" label = "WiX" icon = "Icons.16x16.WebSearchIcon" link = "http://sourceforge.net/projects/wix/" />
					<MenuItem id = "SHFB" label = "Sandcastle Help File Builder" icon = "Icons.16x16.WebSearchIcon" link = "http://www.codeplex.com/SHFB" />
				</MenuItem>
				<MenuItem id = "NETPlatforms" label = ".NET Platforms" type="Menu">
					<MenuItem id = "MSNET"  label = "MS .NET" icon = "Icons.16x16.WebSearchIcon" link = "http://msdn.microsoft.com/net" />
					<MenuItem id = "Mono"   label = "Mono Project" icon = "Icons.16x16.WebSearchIcon" link = "http://www.mono-project.com/" />
				</MenuItem>
			</MenuItem>
			<MenuItem id = "Separator2" type = "Separator" />
			<MenuItem id = "About"
			          label = "${res:XML.MainMenu.HelpMenu.About}"
			          icon = "Icons.16x16.AboutIcon"
			          class = "ICSharpCode.SharpDevelop.Commands.AboutSharpDevelop" />
		</MenuItem> <!-- end HELP menu -->
	</Path> <!-- end Main Menu -->
	
	<!-- create empty /SharpDevelop/Workbench/Tools path - it's included by the main menu -->
	<Path name = "/SharpDevelop/Workbench/Tools"/>
	
	<!-- TEXT EDITOR -->
	
	<Path name = "/SharpDevelop/EntityContextMenu">
		<Include id="GotoDefinition" item="/SharpDevelop/Workbench/MainMenu/Search/GotoDefinition" />
		<Condition name="SymbolTypeAtCaret" type="member,type" action="Exclude">
			<MenuItem id="OpenInClassBrowser"
			          icon="ILSpy"
			          type="Item"
			          label="${res:MainWindow.Windows.ClassBrowser.OpenInClassBrowser}"
			          class="ICSharpCode.SharpDevelop.Dom.ClassBrowser.OpenInClassBrowserCommand"/>
		</Condition>
		<MenuItem id="Separator1" type="Separator" />
		
		<Include id="Rename" item="/SharpDevelop/Workbench/MainMenu/Search/Rename" />
		<MenuItem id = "FindReferences"
		          label = "${res:SharpDevelop.Refactoring.FindReferencesCommand}"
		          class = "ICSharpCode.SharpDevelop.Editor.Commands.FindReferencesCommand"/>
		
		<MenuItem id="DeclaringTypeContextMenu" type="Builder" class="ICSharpCode.SharpDevelop.Editor.Commands.DeclaringTypeSubMenuBuilder" />
	</Path>
	
	<!--
	<Path name = "/SharpDevelop/ViewContent/DefaultTextEditor/Refactoring/Common">
		<MenuItem id = "Rename"
		          label = "${res:SharpDevelop.Refactoring.RenameCommand}"
		          class = "ICSharpCode.SharpDevelop.Refactoring.RenameLocalVariableCommand"/>
		<MenuItem id = "FindReferences"
		          label = "${res:SharpDevelop.Refactoring.FindReferencesCommand}"
		          class = "ICSharpCode.SharpDevelop.Refactoring.FindLocalVariableReferencesCommand"/>
	</Path>
	
	<Path name = "/SharpDevelop/ViewContent/DefaultTextEditor/Refactoring/LocalVariableDefinition">
		<Include id = "Common" path = "/SharpDevelop/ViewContent/DefaultTextEditor/Refactoring/Common"/>
	</Path>
	
	<Path name = "/SharpDevelop/ViewContent/DefaultTextEditor/Refactoring/LocalVariable">
		<Include id = "Common" path = "/SharpDevelop/ViewContent/DefaultTextEditor/Refactoring/Common"/>
	</Path>
	
	<Path name = "/SharpDevelop/ViewContent/DefaultTextEditor/Refactoring/ParameterDefinition">
		<Include id = "Common" path = "/SharpDevelop/ViewContent/DefaultTextEditor/Refactoring/Common"/>
	</Path>
	
	<Path name = "/SharpDevelop/ViewContent/DefaultTextEditor/Refactoring/Parameter">
		<Include id = "Common" path = "/SharpDevelop/ViewContent/DefaultTextEditor/Refactoring/Common"/>
	</Path>-->
	
	<Path name = "/SharpDevelop/ViewContent/TextEditor/ContextMenu">
		<Condition name="SymbolTypeAtCaret" type="member,type,local" action="Exclude">
			<Include id="EntityContextMenu" path="/SharpDevelop/EntityContextMenu" />
			<MenuItem id="Separator1" type="Separator" />
		</Condition>
		
		<Include id = "Cut" item = "/SharpDevelop/Workbench/MainMenu/Edit/Cut"/>
		<Include id = "Copy" item = "/SharpDevelop/Workbench/MainMenu/Edit/Copy"/>
		<Include id = "Paste" item = "/SharpDevelop/Workbench/MainMenu/Edit/Paste"/>
		<Include id = "Delete" item = "/SharpDevelop/Workbench/MainMenu/Edit/Delete"/>
		<MenuItem id = "Separator1" type = "Separator" />
		<!-- All these items are accessible from main menu. Users rarely use them from context menu, and they occupy space.
		<MenuItem id = "Save"
		          label = "${res:XML.MainMenu.FileMenu.Save}"
		          icon = "Icons.16x16.SaveIcon"
		          shortcut = "Control|S"
		          class = "ICSharpCode.SharpDevelop.Commands.SaveFile"/>
		<MenuItem id = "SaveAs"
		          label = "${res:XML.MainMenu.FileMenu.SaveAs}"
		          class = "ICSharpCode.SharpDevelop.Commands.SaveFileAs"/>
		<MenuItem id = "CloseFile"
		          label = "${res:XML.MainMenu.FileMenu.Close}"
		          icon  = "Icons.16x16.CloseFileIcon"
		          class ="ICSharpCode.SharpDevelop.Commands.CloseFile"/>
		
		<MenuItem id = "Separator2" type = "Separator" />
		-->
		<MenuItem id = "Comment"
		          icon  = "Icons.16x16.CommentRegion"
		          label = "${res:XML.TextAreaContextMenu.CommentUncommentSelection}"
		          shortcut="Control|OemQuestion"
		          class = "ICSharpCode.SharpDevelop.Editor.Commands.CommentRegion"/>
		<MenuItem id = "Indent"
		          label = "${res:XML.TextAreaContextMenu.Indent}"
		          shortcut = "Control|I"
		          class = "ICSharpCode.SharpDevelop.Editor.Commands.IndentSelection" />
		<MenuItem id = "Reformat"
		          label = "${res:XML.TextAreaContextMenu.Reformat}"
		          shortcut = "Control|Shift|I"
		          class = "ICSharpCode.SharpDevelop.Editor.Commands.ReformatSelection" />
	</Path>
	
	<Path name = "/SharpDevelop/ViewContent/TextEditor/ToolTips">
		<Class id = "DefaultDebuggerToolTips" class = "ICSharpCode.SharpDevelop.Debugging.DebuggerTextAreaToolTipProvider"/>
	</Path>
	
	<Path name = "/SharpDevelop/Workbench/ToolBar/Standard">
		<ToolbarItem id = "SearchSeparator" type = "Separator"/>
		<Condition name = "WindowActive" activewindow="ICSharpCode.SharpDevelop.Editor.ITextEditor" action="Disable">
			<ToolbarItem id = "Comment"
			             icon = "Icons.16x16.CommentRegion"
			             tooltip = "${res:XML.TextAreaContextMenu.CommentUncommentSelection}"
			             class = "ICSharpCode.SharpDevelop.Editor.Commands.CommentRegion"/>
			<ToolbarItem id = "SearchSeparator2" type = "Separator"/>
			<ToolbarItem id = "ToggleBookmark"
			             icon = "Bookmarks.ToggleMark"
			             tooltip = "${res:XML.MainMenu.SearchMenu.ToggleBookmark.Description}"
			             class = "ICSharpCode.SharpDevelop.Editor.Bookmarks.ToggleBookmark"/>
			<ToolbarItem id = "PrevBookmark"
			             icon = "Bookmarks.GotoPrevInFile"
			             tooltip = "${res:XML.MainMenu.SearchMenu.PrevBookmark.Description}"
			             class = "ICSharpCode.SharpDevelop.Editor.Bookmarks.PrevBookmark"/>
			<ToolbarItem id = "NextBookmark"
			             icon = "Bookmarks.GotoNextInFile"
			             tooltip = "${res:XML.MainMenu.SearchMenu.NextBookmark.Description}"
			             class = "ICSharpCode.SharpDevelop.Editor.Bookmarks.NextBookmark"/>
			<ToolbarItem id = "ClearBookmarks"
			             icon = "Bookmarks.ClearAll"
			             tooltip = "${res:XML.MainMenu.SearchMenu.ClrBookmark.Description}"
			             class = "ICSharpCode.SharpDevelop.Editor.Bookmarks.ClearBookmarks"/>
		</Condition>
	</Path>
	
	<Path name = "/SharpDevelop/Workbench/MainMenu/Edit">
		<MenuItem insertafter = "Delete" id = "Separator2" type = "Separator" />
		<MenuItem id = "Format" label = "${res:XML.MainMenu.EditMenu.FormatMenu}" type="Menu">
			<MenuItem id = "Separator4" type = "Separator" />
			<Include id = "Comment" item = "/SharpDevelop/ViewContent/TextEditor/ContextMenu/Comment" />
			<Include id = "Indent" item = "/SharpDevelop/ViewContent/TextEditor/ContextMenu/Indent" />
			<Include id = "Reformat" item = "/SharpDevelop/ViewContent/TextEditor/ContextMenu/Reformat" />
		</MenuItem>
		<MenuItem insertbefore = "SelectAll" id = "Separator3" type = "Separator" />
	</Path>
	
	<Path name = "/SharpDevelop/ViewContent/Browser/Toolbar">
		<ToolbarItem id      = "Back"
		             icon    = "Icons.16x16.BrowserBefore"
		             tooltip = "${res:AddIns.HtmlHelp2.Back}"
		             class   = "ICSharpCode.SharpDevelop.BrowserDisplayBinding.GoBack"/>
		
		<ToolbarItem id      = "Forward"
		             icon    = "Icons.16x16.BrowserAfter"
		             tooltip = "${res:AddIns.HtmlHelp2.Forward}"
		             class   = "ICSharpCode.SharpDevelop.BrowserDisplayBinding.GoForward"/>
		
		<ToolbarItem id      = "Stop"
		             icon    = "Icons.16x16.BrowserCancel"
		             tooltip = "${res:AddIns.HtmlHelp2.Stop}"
		             class   = "ICSharpCode.SharpDevelop.BrowserDisplayBinding.Stop"/>
		
		<ToolbarItem id      = "Refresh"
		             icon    = "Icons.16x16.BrowserRefresh"
		             tooltip = "${res:Global.Refresh}"
		             class   = "ICSharpCode.SharpDevelop.BrowserDisplayBinding.Refresh"/>
		
		<ToolbarItem id = "Separator" type  = "Separator"/>
		
		<ToolbarItem id      = "GoHome"
		             icon    = "Icons.16x16.BrowserHome"
		             tooltip = "${res:AddIns.HtmlHelp2.Homepage}"
		             class   = "ICSharpCode.SharpDevelop.BrowserDisplayBinding.GoHome"/>
		
		<ToolbarItem id      = "GoSearch"
		             icon    = "Icons.16x16.FindIcon"
		             tooltip = "${res:AddIns.HtmlHelp2.Search}"
		             class   = "ICSharpCode.SharpDevelop.BrowserDisplayBinding.GoSearch"/>
		
		<ToolbarItem id      = "UrlComboBox"
		             type    = "Builder"
		             tooltip = "${res:AddIns.HtmlHelp2.EnterURL}"
		             class   = "ICSharpCode.SharpDevelop.BrowserDisplayBinding.UrlComboBoxBuilder"/>
		
		<ToolbarItem id      = "NewWindow"
		             icon    = "Icons.16x16.BrowserWindow"
		             tooltip = "${res:AddIns.HtmlHelp2.NewWindow}"
		             class   = "ICSharpCode.SharpDevelop.BrowserDisplayBinding.NewWindow"/>
	</Path>
	
	<Path name = "/SharpDevelop/Dialogs/OptionsDialog/TextEditorOptions">
		<OptionPanel id = "CodeCompletion"
		             insertafter="Behavior"
		             label = "${res:Dialog.Options.IDEOptions.TextEditor.CodeCompletion.PanelName}"
		             class = "ICSharpCode.SharpDevelop.Editor.CodeCompletion.CodeCompletionOptionPanel"/>
	</Path>
	
	<Path name = "/SharpDevelop/Pads/BookmarkPad/Toolbar">
		<Condition name = "WindowActive" activewindow="ICSharpCode.SharpDevelop.Editor.ITextEditor" action="Disable">
			<ToolbarItem id = "ToggleBookmark"
			             tooltip = "${res:XML.MainMenu.SearchMenu.ToggleBookmark}"
			             icon = "Bookmarks.ToggleMark"
			             class = "ICSharpCode.SharpDevelop.Editor.Bookmarks.ToggleBookmark"/>
		</Condition>
		
		<ToolbarItem id      = "GotoPrev"
		             icon    = "Bookmarks.GotoPrev"
		             tooltip = "${res:MainWindow.Windows.BookmarkPad.GotoPrev.ToolTip}"
		             class   = "ICSharpCode.SharpDevelop.Editor.Bookmarks.PrevBookmarkPadCommand"/>
		<ToolbarItem id      = "GotoNext"
		             icon    = "Bookmarks.GotoNext"
		             tooltip = "${res:MainWindow.Windows.BookmarkPad.GotoNext.ToolTip}"
		             class   = "ICSharpCode.SharpDevelop.Editor.Bookmarks.NextBookmarkPadCommand"/>
		<!--<ToolbarItem id = "GotoInFolderSeparator" type = "Separator" />
		<ToolbarItem id      = "EnableDisableAll"
		             icon    = "Bookmarks.EnableDisableAll"
		             tooltip = "${res:MainWindow.Windows.BookmarkPad.EnableDisableAll.ToolTip}"
		             class   = "ICSharpCode.SharpDevelop.Editor.Bookmarks.EnableDisableAll"/>-->
		<ToolbarItem id = "EnableDisableSeparator" type = "Separator" />
		<ToolbarItem id      = "DeleteMark"
		             icon    = "Bookmarks.DeleteMark"
		             tooltip = "${res:MainWindow.Windows.BookmarkPad.DeleteMark.ToolTip}"
		             class   = "ICSharpCode.SharpDevelop.Editor.Bookmarks.DeleteMark"/>
		<ToolbarItem id      = "DeleteAllMarks"
		             icon    = "Bookmarks.DeleteAllMarks"
		             tooltip = "${res:MainWindow.Windows.BookmarkPad.DeleteAllMarks.ToolTip}"
		             class   = "ICSharpCode.SharpDevelop.Editor.Bookmarks.DeleteAllMarks"/>
	</Path>
	
	<Path name = "/SharpDevelop/Pads/SearchResultPad/Toolbar">
		<ToolbarItem id      = "ShowLast"
		             type    = "DropDownButton"
		             icon    = "Icons.16x16.FindIcon"
		             tooltip = "${res:MainWindow.Windows.SearchResultPanel.ShowLast.ToolTip}">
			<MenuItem id="RecentList" type="Builder" class="ICSharpCode.SharpDevelop.Editor.Search.LastSearchResultsBuilder"/>
			<MenuItem id="Separator" type="Separator"/>
			<MenuItem id="ClearRecentList"
			          type="Item"
			          label="${res:MainWindow.Windows.SearchResultPanel.ClearHistory}"
			          class="ICSharpCode.SharpDevelop.Editor.Search.ClearSearchResultsList" />
		</ToolbarItem>
	</Path>
	
	<!--
	<Path name = "/SharpDevelop/Pads/SearchResultPanel/Toolbar">
		<Condition name = "Ownerstate" ownerstate = "DefaultMode" action = "Exclude">
			<ToolbarItem id      = "ExpandAll"
			             icon    = "Icons.16x16.OpenCollection"
			             tooltip = "${res:MainWindow.Windows.SearchResultPanel.ExpandAll.ToolTip}"
			             class   = "SearchAndReplace.ExpandAll"/>
			
			<ToolbarItem id      = "CollapseAll"
			             icon    = "Icons.16x16.Collection"
			             tooltip = "${res:MainWindow.Windows.SearchResultPanel.CollapseAll.ToolTip}"
			             class   = "SearchAndReplace.CollapseAll"/>
			<ToolbarItem id = "ExpandCollapseSeparator" type = "Separator" />
		</Condition>
		
		<ToolbarItem id      = "ShowLast"
		             type    = "DropDownButton"
		             icon    = "Icons.16x16.FindIcon"
		             tooltip = "${res:MainWindow.Windows.SearchResultPanel.ShowLast.ToolTip}"
		             class   = "SearchAndReplace.ShowLastSearchResults"/>
		
		<Condition name = "Ownerstate" ownerstate = "DefaultMode" action = "Exclude">
			<ToolbarItem id      = "SelectViewMode"
			             type    = "DropDownButton"
			             icon    = "Icons.16x16.FindIcon"
			             tooltip = "${res:MainWindow.Windows.SearchResultPanel.SelectViewMode.ToolTip}"
			             class   = "SearchAndReplace.SelectViewMode"/>
		</Condition>
	</Path>
	-->
	
	<Path name = "/Workspace/Icons">
		<!-- Resources -->
		<Icon id         = "ResourceFileIcon"
		      extensions = ".resources;.resx"
		      resource   = "Icons.16x16.ResourceFileIcon" />
		
		<!-- XML -->
		<Icon id         = "XmlFileIcon"
		      extensions = ".xml"
		      resource   = "FileIcons.XmlIcon" />
		
		<Icon id         = "DtdFileIcon"
		      extensions = ".dtd"
		      resource   = "Icons.16x16.DTDIcon"/>
		
		<Icon id         = "XsdFileIcon"
		      extensions = ".xsd"
		      resource   = "Icons.16x16.XSDIcon"/>
		
		<Icon id         = "XslFileIcon"
		      extensions = ".xsl"
		      resource   = "Icons.16x16.XSLIcon"/>
		
		<Icon id         = "HtmlFileIcon"
		      extensions = ".html;.htm"
		      resource   = "Icons.16x16.HTMLIcon"/>
		
		<Icon id         = "AspFileIcon"
		      extensions = ".asp;.aspx"
		      resource   = "Icons.16x16.ASPFileIcon"/>
		
		<Icon id         = "AddInFileIcon"
		      extensions = ".addin"
		      resource   = "Icons.16x16.AddInIcon" />
		
		<!-- TextFiles -->
		<Icon id         = "TextFileIcon"
		      extensions = ".txt;.doc"
		      resource   = "Icons.16x16.TextFileIcon"/>
		
		<Icon id= "CssFileIcon"
		      extensions = ".css"
		      resource   = "Icons.16x16.CSSIcon"/>
		<Icon id         = "StrongNameKeyFileIcon"
		      extensions = ".snk"
		      resource   = "Icons.16x16.StrongNameKeyFileIcon"/>
	</Path>
	
	<Path name = "/SharpDevelop/Workbench/MainMenu/View">
		<MenuItem id    = "Debugger"
		          label = "${res:XML.MainMenu.ViewMenu.DebugMenu}"
		          type  = "Menu"
		          insertafter  = "Tools"
		          insertbefore = "ViewItemsSeparator">
			<MenuItem id    = "DebugViewMenuBuilder"
			          type  = "Builder"
			          class = "ICSharpCode.SharpDevelop.Commands.DebugViewMenuBuilder"/>
		</MenuItem>
	</Path>
	
	<Path name = "/SharpDevelop/Views/ProjectBrowser/NodeBuilders">
		<Class id = "DefaultBuilder"
		       class = "ICSharpCode.SharpDevelop.Project.DefaultDotNetNodeBuilder"/>
	</Path>
	
	<Path name = "/SharpDevelop/Views/ClassBrowser/ProjectNodeBuilders">
		<Class id = "DefaultProjectBuilder"
		       class = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.DefaultProjectNodeBuilder"/>
	</Path>
	
	<Path name="/SharpDevelop/TreeNodeFactories">
		<Class id="ClassBrowserTreeNodesFactory" class="ICSharpCode.SharpDevelop.Dom.ClassBrowser.ClassBrowserTreeNodesFactory" />
	</Path>
	
	<Path name = "/SharpDevelop/Views/ClassBrowser/ClassNodeBuilders">
		<Class id = "DefaultClassBuilder"
		       class = "ICSharpCode.SharpDevelop.Gui.ClassBrowser.DefaultClassNodeBuilder"/>
	</Path>
	
	<Path name = "/SharpDevelop/Workbench/DependentFileExtensions">
		<String id = "FormsDesignerGeneratedCode" text=".Designer${Extension}"/>
		<String id = "FormsDesignerResources"     text=".resx"/>
	</Path>
	
	<Path name="/SharpDevelop/BackendBindings/ProjectOptions/AllManaged">
		<!-- put project option panels valid for all .NET projects here -->
		<OptionPanel id          = "CustomTool"
		             label       = "${res:ICSharpCode.SharpDevelop.Internal.Project.ProjectFile.CustomTool}"
		             class       = "ICSharpCode.SharpDevelop.Gui.OptionPanels.ProjectCustomToolOptionsPanel"/>
	</Path>
	
	<Path name="/SharpDevelop/Pads/ErrorList/TaskContextMenu">
		<MenuItem id = "Copy"
		          label = "${res:XML.MainMenu.EditMenu.Copy}"
		          type = "Item"
		          icon = "Icons.16x16.CopyIcon"
		          command = "Copy"/>
	</Path>
	
	<Path name="/SharpDevelop/Pads/TaskList/Toolbar">
		<ToolbarItem id = "SelectScope"
		             class = "ICSharpCode.SharpDevelop.Gui.SelectScopeComboBox"
		             type = "Custom"/>
	</Path>
	
	<Path name="/SharpDevelop/Pads/TaskList/TaskContextMenu">
		<MenuItem id = "Copy"
		          label = "${res:XML.MainMenu.EditMenu.Copy}"
		          type = "Item"
		          icon = "Icons.16x16.CopyIcon"
		          command = "Copy"/>
	</Path>
	
	<Path name="/SharpDevelop/Pads/CommonConsole/ToolBar">
		<ToolbarItem id = "ClearConsole"
		             tooltip = "${res:AddIns.Debugger.Console.ClearConsole}"
		             class = "ICSharpCode.SharpDevelop.Gui.ClearConsoleCommand"
		             icon = "OutputPad.Toolbar.ClearOutputWindow" />
		<ToolbarItem id = "DeleteHistory"
		             tooltip = "${res:AddIns.Debugger.Console.DeleteHistory}"
		             class = "ICSharpCode.SharpDevelop.Gui.DeleteHistoryCommand"
		             icon = "Icons.16x16.DeleteHistory" />
		<ToolbarItem type="Separator" />
		<ToolbarItem id      = "ToggleWordWrap"
		             type    = "CheckBox"
		             icon    = "OutputPad.Toolbar.ToggleWordWrap"
		             tooltip = "${res:MainWindow.Windows.CompilerMessageView.ToggleWordWrapButton.ToolTip}"
		             class   = "ICSharpCode.SharpDevelop.Gui.ToggleConsoleWordWrapCommand"/>
	</Path>
	
	<Path name = "/SharpDevelop/BackendBindings/Templates">
		<TemplateFile path="../data/templates" />
	</Path>
	
	<Path name = "/SharpDevelop/BackendBindings/TemplateCommands">
		<Class id="CheckPortableLibraryInstalled"
		       class="ICSharpCode.SharpDevelop.Project.PortableLibrary.CheckPortableLibraryInstalled"/>
	</Path>
	
	<Path name = "/SharpDevelop/Views/ProjectBrowser/ContextSpecificProperties">
		<ComplexCondition>
			<Not>
				<Condition name = "ProjectItem" property = "Generator" value = ""/>
			</Not>
			<CustomProperty id = "CustomToolNamespace"
			                name = "CustomToolNamespace"
			                displayName = "${res:ICSharpCode.SharpDevelop.Internal.Project.ProjectFile.CustomToolNamespace}"
			                description = "${res:ICSharpCode.SharpDevelop.Internal.Project.ProjectFile.CustomToolNamespace.Description}"
			                runCustomTool="True" />
		</ComplexCondition>
		<Condition name = "ProjectItem" itemType = "EmbeddedResource">
			<CustomProperty id = "EmbeddedResourceLogicalName"
			                name = "LogicalName"
			                displayName = "${res:ICSharpCode.SharpDevelop.Internal.Project.ProjectFile.LogicalName}"
			                description = "${res:ICSharpCode.SharpDevelop.Internal.Project.ProjectFile.LogicalName.Description}" />
		</Condition>
	</Path>
	
	<Path name = "/SharpDevelop/MSBuildEngine/LoggerFilters">
		<Class
			id = "TargetingPackWarningWorkaround"
			class = "ICSharpCode.SharpDevelop.Project.TargetingPackWarningWorkaround"/>
	</Path>
	
	<Path name = "/SharpDevelop/Workbench/ProjectBehaviors">
		<Condition name="ProjectBehaviorSupported" guid="{786C830F-07A1-408B-BD7F-6EE04809D6DB}">
			<Class id="PortableLibraryBehavior" class="ICSharpCode.SharpDevelop.Project.PortableLibrary.PortableLibraryProjectBehavior" />
		</Condition>
		<ComplexCondition>
			<And>
				<Not> <!-- not already portable -->
					<Condition name="ProjectBehaviorSupported" guid="{786C830F-07A1-408B-BD7F-6EE04809D6DB}" />
				</Not>
				<Or> <!-- and either a C# or VB project -->
					<Condition name = "ProjectActive" activeproject="C#" />
					<Condition name = "ProjectActive" activeproject="VB" />
				</Or>
			</And>
			<Class id="ConvertToPortableLibraryBehavior" class="ICSharpCode.SharpDevelop.Project.PortableLibrary.ConvertToPortableLibraryProjectBehavior" />
		</ComplexCondition>
	</Path>
	
	<Path name = "/SharpDevelop/TargetFrameworks">
		<Static class="ICSharpCode.SharpDevelop.Project.TargetFramework" member="Net20" />
		<Static class="ICSharpCode.SharpDevelop.Project.TargetFramework" member="Net30" />
		<Static class="ICSharpCode.SharpDevelop.Project.TargetFramework" member="Net35" />
		<Static class="ICSharpCode.SharpDevelop.Project.TargetFramework" member="Net35Client" />
		<Static class="ICSharpCode.SharpDevelop.Project.TargetFramework" member="Net40" />
		<Static class="ICSharpCode.SharpDevelop.Project.TargetFramework" member="Net40Client" />
		<Static class="ICSharpCode.SharpDevelop.Project.TargetFramework" member="Net45" />
		<Static class="ICSharpCode.SharpDevelop.Project.TargetFramework" member="Net451" />
		<Static class="ICSharpCode.SharpDevelop.Project.TargetFramework" member="Net452" />
	</Path>
</AddIn>

一改完後,請記得回到最早的這段 code ,修改它

//預設 mainMenu
//mainMenu.ItemsSource = MenuService.CreateMenuItems(this, this, mainMenuPath, activationMethod: "MainMenu", immediatelyExpandMenuBuildersForShortcuts: true);
	
//直接採用我們要的這段自定 Menu     下個章節介紹自訂外掛描述檔時,就會使用這個東西
mainMenu.ItemsSource = MenuService.CreateMenuItems(this, this, "/SharpDevelop/Workbench/MyCustomMainMenu", activationMethod: "MainMenu", immediatelyExpandMenuBuildersForShortcuts: true);

然後,就可以看到一個自定的 Menu 替換掉:


沒有留言:

張貼留言

© Mac Taylor, 歡迎自由轉貼。
Background Email Pattern by Toby Elliott
Since 2014