diff --git a/AddIns/ICSharpCode.SharpDevelop.addin b/AddIns/ICSharpCode.SharpDevelop.addin
index 7d38d968c2..03ab7612a2 100644
--- a/AddIns/ICSharpCode.SharpDevelop.addin
+++ b/AddIns/ICSharpCode.SharpDevelop.addin
@@ -890,6 +890,29 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/data/resources/image/BitmapResources/BitmapResources.res b/data/resources/image/BitmapResources/BitmapResources.res
index 5cc681be84..76331d6bc3 100644
--- a/data/resources/image/BitmapResources/BitmapResources.res
+++ b/data/resources/image/BitmapResources/BitmapResources.res
@@ -1,253 +1,253 @@
-# this file was automatically generated by ResAsm
-
-Icons.Svn.StatusImages = SubversionIcons\Svn.StatusImages.png
-Svn.ApplyPatch = SubversionIcons\Svn.ApplyPatch.png
-Svn.Checkout = SubversionIcons\Svn.Checkout.png
-Svn.Commit = SubversionIcons\Svn.Commit.png
-Svn.CreatePatch = SubversionIcons\Svn.CreatePatch.png
-Svn.Export = SubversionIcons\Svn.Export.png
-Svn.Import = SubversionIcons\Svn.Import.png
-Svn.Update = SubversionIcons\Svn.Update.png
-
-
-# Nes project browser icons
-ProjectBrowser.Folder.Closed = ProjectBrowserIcons\Folder.Closed.png
-ProjectBrowser.Folder.Open = ProjectBrowserIcons\Folder.Open.png
-ProjectBrowser.Folder.Missing = ProjectBrowserIcons\Folder.Missing.png
-ProjectBrowser.GhostFolder.Closed = ProjectBrowserIcons\GhostFolder.Closed.png
-ProjectBrowser.GhostFolder.Open = ProjectBrowserIcons\GhostFolder.Open.png
-ProjectBrowser.PropertyFolder.Closed = ProjectBrowserIcons\PropertyFolder.Closed.png
-ProjectBrowser.PropertyFolder.Open = ProjectBrowserIcons\PropertyFolder.Open.png
-ProjectBrowser.ReferenceFolder.Closed = ProjectBrowserIcons\ReferenceFolder.Closed.png
-ProjectBrowser.ReferenceFolder.Open = ProjectBrowserIcons\ReferenceFolder.Open.png
-ProjectBrowser.GhostFile = ProjectBrowserIcons\GhostFile.png
-ProjectBrowser.CodeBehind = ProjectBrowserIcons\CodeBehind.png
-ProjectBrowser.MissingFile = ProjectBrowserIcons\MissingFile.png
-ProjectBrowser.ProjectWarning = ProjectBrowserIcons\ProjectWarning.png
-ProjectBrowser.MissingProject = ProjectBrowserIcons\MissingProject.png
-ProjectBrowser.MissingSolution = ProjectBrowserIcons\MissingSolution.png
-ProjectBrowser.Solution = ProjectBrowserIcons\Solution.png
-ProjectBrowser.Toolbar.Refresh = ProjectBrowserIcons\Toolbar.Refresh.png
-ProjectBrowser.Toolbar.ShowHiddenFiles = ProjectBrowserIcons\Toolbar.ShowHiddenFiles.png
-ProjectBrowser.SolutionFolder.Closed = ProjectBrowserIcons\SolutionFolder.Closed.png
-ProjectBrowser.SolutionFolder.Open = ProjectBrowserIcons\SolutionFolder.Open.png
-ProjectBrowser.SolutionFolder.CreateNew = ProjectBrowserIcons\SolutionFolder.CreateNew.png
-
-ProjectBrowser.WebReferenceFolder.Closed = ProjectBrowserIcons\WebReferenceFolder.Closed.png
-ProjectBrowser.WebReferenceFolder.Open = ProjectBrowserIcons\WebReferenceFolder.Open.png
-ProjectBrowser.WebReference = ProjectBrowserIcons\WebReference.png
-
-#Output pad
-
-OutputPad.Toolbar.ClearOutputWindow = OutputPadIcons\ClearOutputWindow.png
-OutputPad.Toolbar.ToggleWordWrap = OutputPadIcons\ToggleWordWrap.png
-
-
-Icons.16x16.OpenFolderBitmap = ProjectBrowserIcons\Folder.Open.png
-Icons.16x16.ClosedFolderBitmap = ProjectBrowserIcons\Folder.Closed.png
-
-Icons.16x16.OpenReferenceFolder = ProjectBrowserIcons\GhostFolder.Open.png
-Icons.16x16.ClosedReferenceFolder = ProjectBrowserIcons\GhostFolder.Closed.png
-
-Icons.16x16.OpenResourceFolder = ProjectBrowserIcons\PropertyFolder.Open.png
-Icons.16x16.ClosedResourceFolder = ProjectBrowserIcons\PropertyFolder.Closed.png
-
-
-Icons.16x16.ArrowLeftRight = BitmapResources-data\Icons.16x16.ArrowLeftRight.png
-Icons.16x16.ArrowDown = BitmapResources-data\Icons.16x16.ArrowDown.png
-Icons.16x16.ArrowUp = BitmapResources-data\Icons.16x16.ArrowUp.png
-Icons.16x16.OK = BitmapResources-data\Icons.16x16.OK.png
-
-Icons.16x16.Debug.Start = DebuggerIcons\Icons.16x16.Debug.Start.png
-Icons.16x16.Debug.StartWithoutDebugging = DebuggerIcons\Icons.16x16.Debug.StartWithoutDebugging.png
-Icons.16x16.Debug.StopProcess = DebuggerIcons\Icons.16x16.Debug.StopProcess.png
-Icons.16x16.Debug.Break = DebuggerIcons\Icons.16x16.Debug.Break.png
-Icons.16x16.Debug.Continue = DebuggerIcons\Icons.16x16.Debug.Continue.png
-Icons.16x16.Debug.StepOver = DebuggerIcons\Icons.16x16.Debug.StepOver.png
-Icons.16x16.Debug.StepInto = DebuggerIcons\Icons.16x16.Debug.StepInto.png
-Icons.16x16.Debug.StepOut = DebuggerIcons\Icons.16x16.Debug.StepOut.png
-
-Icons.16x16.TestRunner.Yellow = BitmapResources-data\Icons.16x16.TestRunner.Yellow.png
-Icons.16x16.TestRunner.Red = BitmapResources-data\Icons.16x16.TestRunner.Red.png
-Icons.16x16.TestRunner.Green = BitmapResources-data\Icons.16x16.TestRunner.Green.png
-Icons.16x16.TestRunner.Gray = BitmapResources-data\Icons.16x16.TestRunner.Gray.png
-ErrorReport = BitmapResources-data\ErrorReport.png
-Icons.16x16.Shell = Icons.16x16.Shell.png
-Icons.16x16.StopProcess = BitmapResources-data\Icons.16x16.StopProcess.png
-Icons.16x16.Desktop = BitmapResources-data\Icons.16x16.Desktop.png
-Icons.16x16.MyComputer = BitmapResources-data\Icons.16x16.MyComputer.png
-Icons.16x16.PersonalFiles = BitmapResources-data\Icons.16x16.PersonalFiles.png
-Icons.16x16.NewProjectIcon = BitmapResources-data\Icons.16x16.NewProjectIcon.png
-Icons.TipOfTheDayIcon = BitmapResources-data\Icons.TipOfTheDayIcon.png
-Icons.16x16.Indent = BitmapResources-data\Icons.16x16.Indent.png
-Icons.16x16.ResourceEditor.icon = BitmapResources-data\Icons.16x16.ResourceEditor.icon.ico
-Icons.16x16.FullScreen = BitmapResources-data\Icons.16x16.FullScreen.png
-Icons.16x16.AdjustBackgroundColor = BitmapResources-data\Icons.16x16.AdjustBackgroundColor.png
-Icons.16x16.HelpOpenFolder = BitmapResources-data\Icons.16x16.HelpOpenFolder.png
-Icons.16x16.SmallIconsIcon = BitmapResources-data\Icons.16x16.SmallIconsIcon.png
-Icons.16x16.HtmlElements.AnchorElement = BitmapResources-data\Icons.16x16.HtmlElements.AnchorElement.png
-Icons.16x16.Assembly = BitmapResources-data\Icons.16x16.Assembly.png
-Icons.16x16.TipOfTheDay = BitmapResources-data\Icons.16x16.TipOfTheDay.png
-Icons.16x16.Right = BitmapResources-data\Icons.16x16.Right.png
-Icons.16x16.CDROM = BitmapResources-data\Icons.16x16.CDROM.png
-Icons.16x16.RedoIcon = BitmapResources-data\Icons.16x16.RedoIcon.png
-Icons.16x16.CloseAllDocuments = BitmapResources-data\Icons.16x16.CloseAllDocuments.png
-Icons.16x16.HtmlElements.InputRadioElement = BitmapResources-data\Icons.16x16.HtmlElements.InputRadioElement.png
-Icons.16x16.FormsDesigner.SendToBack = BitmapResources-data\Icons.16x16.FormsDesigner.SendToBack.png
-Icons.16x16.BrowserAfter = BitmapResources-data\Icons.16x16.BrowserAfter.png
-Icons.16x16.BrowserHome = BitmapResources-data\Icons.16x16.BrowserHome.gif
-Icons.16x16.BrowserWindow = BitmapResources-data\Icons.16x16.BrowserWindow.png
-Icons.SharpDevelopIcon = BitmapResources-data\Icons.SharpDevelopIcon.ico
-Icons.16x16.HtmlElements.InputPasswordElement = BitmapResources-data\Icons.16x16.HtmlElements.InputPasswordElement.png
-Icons.16x16.HtmlElements.InputCheckBoxElement = BitmapResources-data\Icons.16x16.HtmlElements.InputCheckBoxElement.png
-Icons.16x16.FormsDesigner.AlignCenters = BitmapResources-data\Icons.16x16.FormsDesigner.AlignCenters.png
-Icons.16x16.Center = BitmapResources-data\Icons.16x16.Center.png
-Icons.16x16.FormsDesigner.CenterHorizontally = BitmapResources-data\Icons.16x16.FormsDesigner.CenterHorizontally.png
-Icons.16x16.FormsDesigner.LockControls = BitmapResources-data\Icons.16x16.FormsDesigner.LockControls.png
-Icons.16x16.FormsDesigner.DecreaseVerticalSpace = BitmapResources-data\Icons.16x16.FormsDesigner.DecreaseVerticalSpace.png
-Icons.16x16.NewFolderIcon = BitmapResources-data\Icons.16x16.NewFolderIcon.png
-Icons.16x16.UnderlineText = BitmapResources-data\Icons.16x16.UnderlineText.png
-Icons.16x16.RunProgramIcon = BitmapResources-data\Icons.16x16.RunProgramIcon.png
-Icons.16x16.HtmlElements.TableElement = BitmapResources-data\Icons.16x16.HtmlElements.TableElement.png
-Icons.16x16.ResourceEditor.obj = BitmapResources-data\Icons.16x16.ResourceEditor.obj.ico
-Icons.16x16.ResourceEditor.bin = BitmapResources-data\Icons.16x16.ResourceEditor.bin.ico
-Icons.16x16.DesignPanel = BitmapResources-data\Icons.16x16.DesignPanel.png
-Icons.ClassBrowserIcon = BitmapResources-data\Icons.ClassBrowserIcon.png
-Icons.16x16.HtmlElements.InputImageElement = BitmapResources-data\Icons.16x16.HtmlElements.InputImageElement.png
-Icons.16x16.FormsDesigner.AlignBottoms = BitmapResources-data\Icons.16x16.FormsDesigner.AlignBottoms.png
-Icons.16x16.FormsDesigner.RemoveVerticalSpace = BitmapResources-data\Icons.16x16.FormsDesigner.RemoveVerticalSpace.png
-Icons.16x16.ResourceEditor.string = BitmapResources-data\Icons.16x16.ResourceEditor.string.ico
-Icons.32x32.Error = BitmapResources-data\Icons.32x32.Error.png
-Icons.16x16.LargeIconsIcon = BitmapResources-data\Icons.16x16.LargeIconsIcon.png
-Icons.16x16.NextWindowIcon = BitmapResources-data\Icons.16x16.NextWindowIcon.png
-Icons.16x16.FormsDesigner.CenterVertically = BitmapResources-data\Icons.16x16.FormsDesigner.CenterVertically.png
-Icons.16x16.Options = BitmapResources-data\Icons.16x16.Options.png
-Icons.16x16.FormsDesigner.EqualizeHorizontalSpace = BitmapResources-data\Icons.16x16.FormsDesigner.EqualizeHorizontalSpace.png
-Icons.16x16.FormsDesigner.IncreaseHorizontalSpace = BitmapResources-data\Icons.16x16.FormsDesigner.IncreaseHorizontalSpace.png
-Icons.16x16.HtmlElements.ImageElement = BitmapResources-data\Icons.16x16.HtmlElements.ImageElement.png
-Icons.16x16.HtmlElements.LabelElement = BitmapResources-data\Icons.16x16.HtmlElements.LabelElement.png
-Icons.16x16.WebSearchIcon = BitmapResources-data\Icons.16x16.WebSearchIcon.png
-Icons.16x16.FormsDesigner.AlignToGrid = BitmapResources-data\Icons.16x16.FormsDesigner.AlignToGrid.png
-Icons.16x16.HtmlElements.InputResetElement = BitmapResources-data\Icons.16x16.HtmlElements.InputResetElement.png
-Icons.16x16.CommentRegion = BitmapResources-data\Icons.16x16.CommentRegion.png
-Icons.16x16.PreView = BitmapResources-data\Icons.16x16.PreView.png
-Icons.16x16.FormsDesigner.AlignRights = BitmapResources-data\Icons.16x16.FormsDesigner.AlignRights.png
-Icons.FileScoutIcon = BitmapResources-data\Icons.FileScoutIcon.png
-Icons.ProjectScoutIcon = BitmapResources-data\Icons.ProjectScoutIcon.png
-Icons.16x16.HtmlElements.PanelElement = BitmapResources-data\Icons.16x16.HtmlElements.PanelElement.png
-Icons.16x16.AdjustColor = BitmapResources-data\Icons.16x16.AdjustColor.png
-Icons.16x16.SideBarDocument = BitmapResources-data\Icons.16x16.SideBarDocument.png
-Icons.16x16.Information = BitmapResources-data\Icons.16x16.Information.png
-Icons.16x16.CopyLeftIcon = BitmapResources-data\Icons.16x16.CopyLeftIcon.png
-Icons.16x16.FormsDesigner.AlignLefts = BitmapResources-data\Icons.16x16.FormsDesigner.AlignLefts.png
-Icons.16x16.FormsDesigner.MakeSameHeight = BitmapResources-data\Icons.16x16.FormsDesigner.MakeSameHeight.png
-Icons.16x16.BrowserCancel = BitmapResources-data\Icons.16x16.BrowserCancel.png
-Icons.16x16.HtmlElements.DivElement = BitmapResources-data\Icons.16x16.HtmlElements.DivElement.png
-Icons.16x16.BuildCurrentSelectedProject = BitmapResources-data\Icons.16x16.BuildCurrentSelectedProject.png
-Icons.16x16.HelpTopic = BitmapResources-data\Icons.16x16.HelpTopic.png
-Icons.16x16.PrevWindowIcon = BitmapResources-data\Icons.16x16.PrevWindowIcon.png
-Icons.16x16.HtmlElements.SelectElement = BitmapResources-data\Icons.16x16.HtmlElements.SelectElement.png
-Icons.16x16.OpenAssembly = BitmapResources-data\Icons.16x16.OpenAssembly.png
-Icons.16x16.HtmlElements.InputSubmitElement = BitmapResources-data\Icons.16x16.HtmlElements.InputSubmitElement.png
-Icons.16x16.CancelIcon = BitmapResources-data\Icons.16x16.CancelIcon.png
-Icons.16x16.ItalicText = BitmapResources-data\Icons.16x16.ItalicText.png
-Icons.16x16.BrowserBefore = BitmapResources-data\Icons.16x16.BrowserBefore.png
-Icons.16x16.HtmlElements.InputTextElement = BitmapResources-data\Icons.16x16.HtmlElements.InputTextElement.png
-Icons.16x16.HelpClosedFolder = BitmapResources-data\Icons.16x16.HelpClosedFolder.png
-Icons.16x16.CutIcon = BitmapResources-data\Icons.16x16.CutIcon.png
-Icons.16x16.BoldText = BitmapResources-data\Icons.16x16.BoldText.png
-GeneralWizardBackground = BitmapResources-data\GeneralWizardBackground.png
-Icons.16x16.HtmlElements.TextAreaElement = BitmapResources-data\Icons.16x16.HtmlElements.TextAreaElement.png
-Icons.16x16.SaveAllIcon = BitmapResources-data\Icons.16x16.SaveAllIcon.png
-Icons.16x16.Left = BitmapResources-data\Icons.16x16.Left.png
-Icons.16x16.FormsDesigner.SizeToGrid = BitmapResources-data\Icons.16x16.FormsDesigner.SizeToGrid.png
-Icons.16x16.HtmlElements.FormElement = BitmapResources-data\Icons.16x16.HtmlElements.FormElement.png
-Icons.16x16.HtmlElements.InputFileElement = BitmapResources-data\Icons.16x16.HtmlElements.InputFileElement.png
-Icons.16x16.NewDocumentIcon = BitmapResources-data\Icons.16x16.NewDocumentIcon.png
-Icons.16x16.SelectionArrow = BitmapResources-data\Icons.16x16.SelectionArrow.png
-Icons.16x16.Question = BitmapResources-data\Icons.16x16.Question.png
-Icons.16x16.PasteIcon = BitmapResources-data\Icons.16x16.PasteIcon.png
-Icons.32x32.Warning = BitmapResources-data\Icons.32x32.Warning.png
-Icons.16x16.FormsDesigner.MakeSameSize = BitmapResources-data\Icons.16x16.FormsDesigner.MakeSameSize.png
-Icons.16x16.Error = BitmapResources-data\Icons.16x16.Error.png
-Icons.16x16.HtmlElements.InputButtonElement = BitmapResources-data\Icons.16x16.HtmlElements.InputButtonElement.png
-Icons.16x16.NETWORK = BitmapResources-data\Icons.16x16.NETWORK.png
-Icons.16x16.Library = BitmapResources-data\Icons.16x16.Library.png
-Icons.16x16.AboutIcon = BitmapResources-data\Icons.16x16.AboutIcon.png
-Icons.16x16.LowerToUpperCase = BitmapResources-data\Icons.16x16.LowerToUpperCase.png
-Icons.16x16.UndoIcon = BitmapResources-data\Icons.16x16.UndoIcon.png
-Icons.16x16.FormsDesigner.AlignMiddles = BitmapResources-data\Icons.16x16.FormsDesigner.AlignMiddles.png
-Icons.16x16.ReplaceIcon = BitmapResources-data\Icons.16x16.ReplaceIcon.png
-Icons.16x16.FormsDesigner.MakeSameWidth = BitmapResources-data\Icons.16x16.FormsDesigner.MakeSameWidth.png
-Icons.16x16.OpenProjectIcon = BitmapResources-data\Icons.16x16.OpenProjectIcon.png
-Icons.16x16.HtmlElements.InputHiddenElement = BitmapResources-data\Icons.16x16.HtmlElements.InputHiddenElement.png
-Icons.16x16.SuperTypes = BitmapResources-data\Icons.16x16.SuperTypes.png
-Icons.16x16.BuildCombine = BitmapResources-data\Icons.16x16.BuildCombine.png
-Icons.16x16.HelpIcon = BitmapResources-data\Icons.16x16.HelpIcon.png
-Icons.16x16.ReplaceInFiles = BitmapResources-data\Icons.16x16.ReplaceInFiles.png
-Icons.16x16.FLOPPY = BitmapResources-data\Icons.16x16.FLOPPY.png
-Icons.AboutImage = BitmapResources-data\Icons.AboutImage.png
-Icons.16x16.HtmlElements.HorizontalRuleElement = BitmapResources-data\Icons.16x16.HtmlElements.HorizontalRuleElement.png
-Icons.16x16.FormsDesigner.ShowTabOrder = BitmapResources-data\Icons.16x16.FormsDesigner.ShowTabOrder.png
-Icons.16x16.FindInFiles = BitmapResources-data\Icons.16x16.FindInFiles.png
-Icons.16x16.ResourceEditor.cursor = BitmapResources-data\Icons.16x16.ResourceEditor.cursor.ico
-Icons.16x16.FormsDesigner.PointerIcon = BitmapResources-data\Icons.16x16.FormsDesigner.PointerIcon.png
-Icons.16x16.CopyIcon = BitmapResources-data\Icons.16x16.CopyIcon.png
-Icons.16x16.PropertiesIcon = BitmapResources-data\Icons.16x16.PropertiesIcon.png
-Icons.16x16.OutDent = BitmapResources-data\Icons.16x16.OutDent.png
-Icons.16x16.DeleteIcon = BitmapResources-data\Icons.16x16.DeleteIcon.png
-Icons.16x16.FormsDesigner.IncreaseVerticalSpace = BitmapResources-data\Icons.16x16.FormsDesigner.IncreaseVerticalSpace.png
-Icons.16x16.UpperToLowerCase = BitmapResources-data\Icons.16x16.UpperToLowerCase.png
-Icons.16x16.FindNextIcon = BitmapResources-data\Icons.16x16.FindNextIcon.png
-Icons.32x32.Information = BitmapResources-data\Icons.32x32.Information.png
-Icons.16x16.FormsDesigner.BringToFront = BitmapResources-data\Icons.16x16.FormsDesigner.BringToFront.png
-Icons.16x16.BrowserRefresh = BitmapResources-data\Icons.16x16.BrowserRefresh.png
-Icons.16x16.HtmlElements.ListBoxElement = BitmapResources-data\Icons.16x16.HtmlElements.ListBoxElement.png
-Icons.16x16.FormsDesigner.DecreaseHorizontalSpace = BitmapResources-data\Icons.16x16.FormsDesigner.DecreaseHorizontalSpace.png
-Icons.16x16.ResourceEditor.bmp = BitmapResources-data\Icons.16x16.ResourceEditor.bmp.ico
-Icons.16x16.SubTypes = BitmapResources-data\Icons.16x16.SubTypes.png
-Icons.16x16.DRIVE = BitmapResources-data\Icons.16x16.DRIVE.png
-Icons.16x16.HtmlElements.ButtonElement = BitmapResources-data\Icons.16x16.HtmlElements.ButtonElement.png
-Icons.16x16.Print = BitmapResources-data\Icons.16x16.Print.png
-Icons.32x32.Question = BitmapResources-data\Icons.32x32.Question.png
-Icons.16x16.FormsDesigner.ViewCode = BitmapResources-data\Icons.16x16.FormsDesigner.ViewCode.png
-Icons.16x16.FormsDesigner.AlignTops = BitmapResources-data\Icons.16x16.FormsDesigner.AlignTops.png
-Icons.16x16.Warning = BitmapResources-data\Icons.16x16.Warning.png
-Icons.16x16.HtmlElements.SpanElement = BitmapResources-data\Icons.16x16.HtmlElements.SpanElement.png
-Icons.16x16.FormsDesigner.RemoveHorizontalSpace = BitmapResources-data\Icons.16x16.FormsDesigner.RemoveHorizontalSpace.png
-Icons.16x16.HtmlElements.IFrameElement = BitmapResources-data\Icons.16x16.HtmlElements.IFrameElement.png
-Icons.16x16.FormsDesigner.EqualizeVerticalSpace = BitmapResources-data\Icons.16x16.FormsDesigner.EqualizeVerticalSpace.png
-Icons.16x16.FindIcon = BitmapResources-data\Icons.16x16.FindIcon.png
-Icons.16x16.HtmlElements.Element = BitmapResources-data\Icons.16x16.HtmlElements.Element.png
-Icons.16x16.SaveIcon = BitmapResources-data\Icons.16x16.SaveIcon.png
-Icons.16x16.ILDasm = BitmapResources-data\Icons.16x16.ILDasm.png
-Icons.16x16.CloseFileIcon = BitmapResources-data\Icons.16x16.CloseFileIcon.png
-Icons.16x16.OpenFileIcon = BitmapResources-data\Icons.16x16.OpenFileIcon.png
-Icons.16x16.HtmlElements.FieldSetElement = BitmapResources-data\Icons.16x16.HtmlElements.FieldSetElement.png
-Icons.16x16.SplitWindow = BitmapResources-data\Icons.16x16.SplitWindow.png
-
-#pad icons
-PadIcons.ErrorList = PadIcons\ErrorList.png
-PadIcons.TaskList = PadIcons\TaskList.png
-PadIcons.Output = PadIcons\Output.png
-PadIcons.Toolbar = PadIcons\Toolbar.png
-PadIcons.NUnitTest = PadIcons\NUnit.png
-PadIcons.MbUnitTest = PadIcons\MbUnit.png
-PadIcons.FindResults = PadIcons\FindResults.png
-PadIcons.FileBrowser = PadIcons\FileBrowser.png
-PadIcons.ClassBrowser = PadIcons\ClassBrowser.png
-PadIcons.ProjectBrowser = PadIcons\ProjectBrowser.png
-PadIcons.Bookmarks = PadIcons\Bookmarks.png
-PadIcons.DefinitionView = PadIcons\DefinitionView.png
-PadIcons.BreakPoints = PadIcons\Breakpoints.png
-PadIcons.CallStack = PadIcons\CallStack.png
-PadIcons.LoadedModules = PadIcons\LoadedModules.png
-PadIcons.LocalVariables = PadIcons\LocalVariables.png
-PadIcons.Threads = PadIcons\Threads.png
-PadIcons.Exceptions = PadIcons\Exceptions.png
-
-#SharpQuery icons
-Icons.16x16.SharpQuery.DataBaseRoot = SharpQueryIcons\Icons.16x16.SharpQuery.Database.png
+# this file was automatically generated by ResAsm
+
+Icons.Svn.StatusImages = SubversionIcons\Svn.StatusImages.png
+Svn.ApplyPatch = SubversionIcons\Svn.ApplyPatch.png
+Svn.Checkout = SubversionIcons\Svn.Checkout.png
+Svn.Commit = SubversionIcons\Svn.Commit.png
+Svn.CreatePatch = SubversionIcons\Svn.CreatePatch.png
+Svn.Export = SubversionIcons\Svn.Export.png
+Svn.Import = SubversionIcons\Svn.Import.png
+Svn.Update = SubversionIcons\Svn.Update.png
+
+
+# Nes project browser icons
+ProjectBrowser.Folder.Closed = ProjectBrowserIcons\Folder.Closed.png
+ProjectBrowser.Folder.Open = ProjectBrowserIcons\Folder.Open.png
+ProjectBrowser.Folder.Missing = ProjectBrowserIcons\Folder.Missing.png
+ProjectBrowser.GhostFolder.Closed = ProjectBrowserIcons\GhostFolder.Closed.png
+ProjectBrowser.GhostFolder.Open = ProjectBrowserIcons\GhostFolder.Open.png
+ProjectBrowser.PropertyFolder.Closed = ProjectBrowserIcons\PropertyFolder.Closed.png
+ProjectBrowser.PropertyFolder.Open = ProjectBrowserIcons\PropertyFolder.Open.png
+ProjectBrowser.ReferenceFolder.Closed = ProjectBrowserIcons\ReferenceFolder.Closed.png
+ProjectBrowser.ReferenceFolder.Open = ProjectBrowserIcons\ReferenceFolder.Open.png
+ProjectBrowser.GhostFile = ProjectBrowserIcons\GhostFile.png
+ProjectBrowser.CodeBehind = ProjectBrowserIcons\CodeBehind.png
+ProjectBrowser.MissingFile = ProjectBrowserIcons\MissingFile.png
+ProjectBrowser.ProjectWarning = ProjectBrowserIcons\ProjectWarning.png
+ProjectBrowser.MissingProject = ProjectBrowserIcons\MissingProject.png
+ProjectBrowser.MissingSolution = ProjectBrowserIcons\MissingSolution.png
+ProjectBrowser.Solution = ProjectBrowserIcons\Solution.png
+ProjectBrowser.Toolbar.Refresh = ProjectBrowserIcons\Toolbar.Refresh.png
+ProjectBrowser.Toolbar.ShowHiddenFiles = ProjectBrowserIcons\Toolbar.ShowHiddenFiles.png
+ProjectBrowser.SolutionFolder.Closed = ProjectBrowserIcons\SolutionFolder.Closed.png
+ProjectBrowser.SolutionFolder.Open = ProjectBrowserIcons\SolutionFolder.Open.png
+ProjectBrowser.SolutionFolder.CreateNew = ProjectBrowserIcons\SolutionFolder.CreateNew.png
+
+ProjectBrowser.WebReferenceFolder.Closed = ProjectBrowserIcons\WebReferenceFolder.Closed.png
+ProjectBrowser.WebReferenceFolder.Open = ProjectBrowserIcons\WebReferenceFolder.Open.png
+ProjectBrowser.WebReference = ProjectBrowserIcons\WebReference.png
+
+#Output pad
+
+OutputPad.Toolbar.ClearOutputWindow = OutputPadIcons\ClearOutputWindow.png
+OutputPad.Toolbar.ToggleWordWrap = OutputPadIcons\ToggleWordWrap.png
+
+
+Icons.16x16.OpenFolderBitmap = ProjectBrowserIcons\Folder.Open.png
+Icons.16x16.ClosedFolderBitmap = ProjectBrowserIcons\Folder.Closed.png
+
+Icons.16x16.OpenReferenceFolder = ProjectBrowserIcons\GhostFolder.Open.png
+Icons.16x16.ClosedReferenceFolder = ProjectBrowserIcons\GhostFolder.Closed.png
+
+Icons.16x16.OpenResourceFolder = ProjectBrowserIcons\PropertyFolder.Open.png
+Icons.16x16.ClosedResourceFolder = ProjectBrowserIcons\PropertyFolder.Closed.png
+
+
+Icons.16x16.ArrowLeftRight = BitmapResources-data\Icons.16x16.ArrowLeftRight.png
+Icons.16x16.ArrowDown = BitmapResources-data\Icons.16x16.ArrowDown.png
+Icons.16x16.ArrowUp = BitmapResources-data\Icons.16x16.ArrowUp.png
+Icons.16x16.OK = BitmapResources-data\Icons.16x16.OK.png
+
+Icons.16x16.Debug.Start = DebuggerIcons\Icons.16x16.Debug.Start.png
+Icons.16x16.Debug.StartWithoutDebugging = DebuggerIcons\Icons.16x16.Debug.StartWithoutDebugging.png
+Icons.16x16.Debug.StopProcess = DebuggerIcons\Icons.16x16.Debug.StopProcess.png
+Icons.16x16.Debug.Break = DebuggerIcons\Icons.16x16.Debug.Break.png
+Icons.16x16.Debug.Continue = DebuggerIcons\Icons.16x16.Debug.Continue.png
+Icons.16x16.Debug.StepOver = DebuggerIcons\Icons.16x16.Debug.StepOver.png
+Icons.16x16.Debug.StepInto = DebuggerIcons\Icons.16x16.Debug.StepInto.png
+Icons.16x16.Debug.StepOut = DebuggerIcons\Icons.16x16.Debug.StepOut.png
+
+Icons.16x16.TestRunner.Yellow = BitmapResources-data\Icons.16x16.TestRunner.Yellow.png
+Icons.16x16.TestRunner.Red = BitmapResources-data\Icons.16x16.TestRunner.Red.png
+Icons.16x16.TestRunner.Green = BitmapResources-data\Icons.16x16.TestRunner.Green.png
+Icons.16x16.TestRunner.Gray = BitmapResources-data\Icons.16x16.TestRunner.Gray.png
+ErrorReport = BitmapResources-data\ErrorReport.png
+Icons.16x16.Shell = Icons.16x16.Shell.png
+Icons.16x16.StopProcess = BitmapResources-data\Icons.16x16.StopProcess.png
+Icons.16x16.Desktop = BitmapResources-data\Icons.16x16.Desktop.png
+Icons.16x16.MyComputer = BitmapResources-data\Icons.16x16.MyComputer.png
+Icons.16x16.PersonalFiles = BitmapResources-data\Icons.16x16.PersonalFiles.png
+Icons.16x16.NewProjectIcon = BitmapResources-data\Icons.16x16.NewProjectIcon.png
+Icons.TipOfTheDayIcon = BitmapResources-data\Icons.TipOfTheDayIcon.png
+Icons.16x16.Indent = BitmapResources-data\Icons.16x16.Indent.png
+Icons.16x16.ResourceEditor.icon = BitmapResources-data\Icons.16x16.ResourceEditor.icon.ico
+Icons.16x16.FullScreen = BitmapResources-data\Icons.16x16.FullScreen.png
+Icons.16x16.AdjustBackgroundColor = BitmapResources-data\Icons.16x16.AdjustBackgroundColor.png
+Icons.16x16.HelpOpenFolder = BitmapResources-data\Icons.16x16.HelpOpenFolder.png
+Icons.16x16.SmallIconsIcon = BitmapResources-data\Icons.16x16.SmallIconsIcon.png
+Icons.16x16.HtmlElements.AnchorElement = BitmapResources-data\Icons.16x16.HtmlElements.AnchorElement.png
+Icons.16x16.Assembly = BitmapResources-data\Icons.16x16.Assembly.png
+Icons.16x16.TipOfTheDay = BitmapResources-data\Icons.16x16.TipOfTheDay.png
+Icons.16x16.Right = BitmapResources-data\Icons.16x16.Right.png
+Icons.16x16.CDROM = BitmapResources-data\Icons.16x16.CDROM.png
+Icons.16x16.RedoIcon = BitmapResources-data\Icons.16x16.RedoIcon.png
+Icons.16x16.CloseAllDocuments = BitmapResources-data\Icons.16x16.CloseAllDocuments.png
+Icons.16x16.HtmlElements.InputRadioElement = BitmapResources-data\Icons.16x16.HtmlElements.InputRadioElement.png
+Icons.16x16.FormsDesigner.SendToBack = BitmapResources-data\Icons.16x16.FormsDesigner.SendToBack.png
+Icons.16x16.BrowserAfter = BitmapResources-data\Icons.16x16.BrowserAfter.png
+Icons.16x16.BrowserHome = BitmapResources-data\Icons.16x16.BrowserHome.gif
+Icons.16x16.BrowserWindow = BitmapResources-data\Icons.16x16.BrowserWindow.png
+Icons.SharpDevelopIcon = BitmapResources-data\Icons.SharpDevelopIcon.ico
+Icons.16x16.HtmlElements.InputPasswordElement = BitmapResources-data\Icons.16x16.HtmlElements.InputPasswordElement.png
+Icons.16x16.HtmlElements.InputCheckBoxElement = BitmapResources-data\Icons.16x16.HtmlElements.InputCheckBoxElement.png
+Icons.16x16.FormsDesigner.AlignCenters = BitmapResources-data\Icons.16x16.FormsDesigner.AlignCenters.png
+Icons.16x16.Center = BitmapResources-data\Icons.16x16.Center.png
+Icons.16x16.FormsDesigner.CenterHorizontally = BitmapResources-data\Icons.16x16.FormsDesigner.CenterHorizontally.png
+Icons.16x16.FormsDesigner.LockControls = BitmapResources-data\Icons.16x16.FormsDesigner.LockControls.png
+Icons.16x16.FormsDesigner.DecreaseVerticalSpace = BitmapResources-data\Icons.16x16.FormsDesigner.DecreaseVerticalSpace.png
+Icons.16x16.NewFolderIcon = BitmapResources-data\Icons.16x16.NewFolderIcon.png
+Icons.16x16.UnderlineText = BitmapResources-data\Icons.16x16.UnderlineText.png
+Icons.16x16.RunProgramIcon = BitmapResources-data\Icons.16x16.RunProgramIcon.png
+Icons.16x16.HtmlElements.TableElement = BitmapResources-data\Icons.16x16.HtmlElements.TableElement.png
+Icons.16x16.ResourceEditor.obj = BitmapResources-data\Icons.16x16.ResourceEditor.obj.ico
+Icons.16x16.ResourceEditor.bin = BitmapResources-data\Icons.16x16.ResourceEditor.bin.ico
+Icons.16x16.DesignPanel = BitmapResources-data\Icons.16x16.DesignPanel.png
+Icons.ClassBrowserIcon = BitmapResources-data\Icons.ClassBrowserIcon.png
+Icons.16x16.HtmlElements.InputImageElement = BitmapResources-data\Icons.16x16.HtmlElements.InputImageElement.png
+Icons.16x16.FormsDesigner.AlignBottoms = BitmapResources-data\Icons.16x16.FormsDesigner.AlignBottoms.png
+Icons.16x16.FormsDesigner.RemoveVerticalSpace = BitmapResources-data\Icons.16x16.FormsDesigner.RemoveVerticalSpace.png
+Icons.16x16.ResourceEditor.string = BitmapResources-data\Icons.16x16.ResourceEditor.string.ico
+Icons.32x32.Error = BitmapResources-data\Icons.32x32.Error.png
+Icons.16x16.LargeIconsIcon = BitmapResources-data\Icons.16x16.LargeIconsIcon.png
+Icons.16x16.NextWindowIcon = BitmapResources-data\Icons.16x16.NextWindowIcon.png
+Icons.16x16.FormsDesigner.CenterVertically = BitmapResources-data\Icons.16x16.FormsDesigner.CenterVertically.png
+Icons.16x16.Options = BitmapResources-data\Icons.16x16.Options.png
+Icons.16x16.FormsDesigner.EqualizeHorizontalSpace = BitmapResources-data\Icons.16x16.FormsDesigner.EqualizeHorizontalSpace.png
+Icons.16x16.FormsDesigner.IncreaseHorizontalSpace = BitmapResources-data\Icons.16x16.FormsDesigner.IncreaseHorizontalSpace.png
+Icons.16x16.HtmlElements.ImageElement = BitmapResources-data\Icons.16x16.HtmlElements.ImageElement.png
+Icons.16x16.HtmlElements.LabelElement = BitmapResources-data\Icons.16x16.HtmlElements.LabelElement.png
+Icons.16x16.WebSearchIcon = BitmapResources-data\Icons.16x16.WebSearchIcon.png
+Icons.16x16.FormsDesigner.AlignToGrid = BitmapResources-data\Icons.16x16.FormsDesigner.AlignToGrid.png
+Icons.16x16.HtmlElements.InputResetElement = BitmapResources-data\Icons.16x16.HtmlElements.InputResetElement.png
+Icons.16x16.CommentRegion = BitmapResources-data\Icons.16x16.CommentRegion.png
+Icons.16x16.PreView = BitmapResources-data\Icons.16x16.PreView.png
+Icons.16x16.FormsDesigner.AlignRights = BitmapResources-data\Icons.16x16.FormsDesigner.AlignRights.png
+Icons.FileScoutIcon = BitmapResources-data\Icons.FileScoutIcon.png
+Icons.ProjectScoutIcon = BitmapResources-data\Icons.ProjectScoutIcon.png
+Icons.16x16.HtmlElements.PanelElement = BitmapResources-data\Icons.16x16.HtmlElements.PanelElement.png
+Icons.16x16.AdjustColor = BitmapResources-data\Icons.16x16.AdjustColor.png
+Icons.16x16.SideBarDocument = BitmapResources-data\Icons.16x16.SideBarDocument.png
+Icons.16x16.Information = BitmapResources-data\Icons.16x16.Information.png
+Icons.16x16.CopyLeftIcon = BitmapResources-data\Icons.16x16.CopyLeftIcon.png
+Icons.16x16.FormsDesigner.AlignLefts = BitmapResources-data\Icons.16x16.FormsDesigner.AlignLefts.png
+Icons.16x16.FormsDesigner.MakeSameHeight = BitmapResources-data\Icons.16x16.FormsDesigner.MakeSameHeight.png
+Icons.16x16.BrowserCancel = BitmapResources-data\Icons.16x16.BrowserCancel.png
+Icons.16x16.HtmlElements.DivElement = BitmapResources-data\Icons.16x16.HtmlElements.DivElement.png
+Icons.16x16.BuildCurrentSelectedProject = BitmapResources-data\Icons.16x16.BuildCurrentSelectedProject.png
+Icons.16x16.HelpTopic = BitmapResources-data\Icons.16x16.HelpTopic.png
+Icons.16x16.PrevWindowIcon = BitmapResources-data\Icons.16x16.PrevWindowIcon.png
+Icons.16x16.HtmlElements.SelectElement = BitmapResources-data\Icons.16x16.HtmlElements.SelectElement.png
+Icons.16x16.OpenAssembly = BitmapResources-data\Icons.16x16.OpenAssembly.png
+Icons.16x16.HtmlElements.InputSubmitElement = BitmapResources-data\Icons.16x16.HtmlElements.InputSubmitElement.png
+Icons.16x16.CancelIcon = BitmapResources-data\Icons.16x16.CancelIcon.png
+Icons.16x16.ItalicText = BitmapResources-data\Icons.16x16.ItalicText.png
+Icons.16x16.BrowserBefore = BitmapResources-data\Icons.16x16.BrowserBefore.png
+Icons.16x16.HtmlElements.InputTextElement = BitmapResources-data\Icons.16x16.HtmlElements.InputTextElement.png
+Icons.16x16.HelpClosedFolder = BitmapResources-data\Icons.16x16.HelpClosedFolder.png
+Icons.16x16.CutIcon = BitmapResources-data\Icons.16x16.CutIcon.png
+Icons.16x16.BoldText = BitmapResources-data\Icons.16x16.BoldText.png
+GeneralWizardBackground = BitmapResources-data\GeneralWizardBackground.png
+Icons.16x16.HtmlElements.TextAreaElement = BitmapResources-data\Icons.16x16.HtmlElements.TextAreaElement.png
+Icons.16x16.SaveAllIcon = BitmapResources-data\Icons.16x16.SaveAllIcon.png
+Icons.16x16.Left = BitmapResources-data\Icons.16x16.Left.png
+Icons.16x16.FormsDesigner.SizeToGrid = BitmapResources-data\Icons.16x16.FormsDesigner.SizeToGrid.png
+Icons.16x16.HtmlElements.FormElement = BitmapResources-data\Icons.16x16.HtmlElements.FormElement.png
+Icons.16x16.HtmlElements.InputFileElement = BitmapResources-data\Icons.16x16.HtmlElements.InputFileElement.png
+Icons.16x16.NewDocumentIcon = BitmapResources-data\Icons.16x16.NewDocumentIcon.png
+Icons.16x16.SelectionArrow = BitmapResources-data\Icons.16x16.SelectionArrow.png
+Icons.16x16.Question = BitmapResources-data\Icons.16x16.Question.png
+Icons.16x16.PasteIcon = BitmapResources-data\Icons.16x16.PasteIcon.png
+Icons.32x32.Warning = BitmapResources-data\Icons.32x32.Warning.png
+Icons.16x16.FormsDesigner.MakeSameSize = BitmapResources-data\Icons.16x16.FormsDesigner.MakeSameSize.png
+Icons.16x16.Error = BitmapResources-data\Icons.16x16.Error.png
+Icons.16x16.HtmlElements.InputButtonElement = BitmapResources-data\Icons.16x16.HtmlElements.InputButtonElement.png
+Icons.16x16.NETWORK = BitmapResources-data\Icons.16x16.NETWORK.png
+Icons.16x16.Library = BitmapResources-data\Icons.16x16.Library.png
+Icons.16x16.AboutIcon = BitmapResources-data\Icons.16x16.AboutIcon.png
+Icons.16x16.LowerToUpperCase = BitmapResources-data\Icons.16x16.LowerToUpperCase.png
+Icons.16x16.UndoIcon = BitmapResources-data\Icons.16x16.UndoIcon.png
+Icons.16x16.FormsDesigner.AlignMiddles = BitmapResources-data\Icons.16x16.FormsDesigner.AlignMiddles.png
+Icons.16x16.ReplaceIcon = BitmapResources-data\Icons.16x16.ReplaceIcon.png
+Icons.16x16.FormsDesigner.MakeSameWidth = BitmapResources-data\Icons.16x16.FormsDesigner.MakeSameWidth.png
+Icons.16x16.OpenProjectIcon = BitmapResources-data\Icons.16x16.OpenProjectIcon.png
+Icons.16x16.HtmlElements.InputHiddenElement = BitmapResources-data\Icons.16x16.HtmlElements.InputHiddenElement.png
+Icons.16x16.SuperTypes = BitmapResources-data\Icons.16x16.SuperTypes.png
+Icons.16x16.BuildCombine = BitmapResources-data\Icons.16x16.BuildCombine.png
+Icons.16x16.HelpIcon = BitmapResources-data\Icons.16x16.HelpIcon.png
+Icons.16x16.ReplaceInFiles = BitmapResources-data\Icons.16x16.ReplaceInFiles.png
+Icons.16x16.FLOPPY = BitmapResources-data\Icons.16x16.FLOPPY.png
+Icons.AboutImage = BitmapResources-data\Icons.AboutImage.png
+Icons.16x16.HtmlElements.HorizontalRuleElement = BitmapResources-data\Icons.16x16.HtmlElements.HorizontalRuleElement.png
+Icons.16x16.FormsDesigner.ShowTabOrder = BitmapResources-data\Icons.16x16.FormsDesigner.ShowTabOrder.png
+Icons.16x16.FindInFiles = BitmapResources-data\Icons.16x16.FindInFiles.png
+Icons.16x16.ResourceEditor.cursor = BitmapResources-data\Icons.16x16.ResourceEditor.cursor.ico
+Icons.16x16.FormsDesigner.PointerIcon = BitmapResources-data\Icons.16x16.FormsDesigner.PointerIcon.png
+Icons.16x16.CopyIcon = BitmapResources-data\Icons.16x16.CopyIcon.png
+Icons.16x16.PropertiesIcon = BitmapResources-data\Icons.16x16.PropertiesIcon.png
+Icons.16x16.OutDent = BitmapResources-data\Icons.16x16.OutDent.png
+Icons.16x16.DeleteIcon = BitmapResources-data\Icons.16x16.DeleteIcon.png
+Icons.16x16.FormsDesigner.IncreaseVerticalSpace = BitmapResources-data\Icons.16x16.FormsDesigner.IncreaseVerticalSpace.png
+Icons.16x16.UpperToLowerCase = BitmapResources-data\Icons.16x16.UpperToLowerCase.png
+Icons.16x16.FindNextIcon = BitmapResources-data\Icons.16x16.FindNextIcon.png
+Icons.32x32.Information = BitmapResources-data\Icons.32x32.Information.png
+Icons.16x16.FormsDesigner.BringToFront = BitmapResources-data\Icons.16x16.FormsDesigner.BringToFront.png
+Icons.16x16.BrowserRefresh = BitmapResources-data\Icons.16x16.BrowserRefresh.png
+Icons.16x16.HtmlElements.ListBoxElement = BitmapResources-data\Icons.16x16.HtmlElements.ListBoxElement.png
+Icons.16x16.FormsDesigner.DecreaseHorizontalSpace = BitmapResources-data\Icons.16x16.FormsDesigner.DecreaseHorizontalSpace.png
+Icons.16x16.ResourceEditor.bmp = BitmapResources-data\Icons.16x16.ResourceEditor.bmp.ico
+Icons.16x16.SubTypes = BitmapResources-data\Icons.16x16.SubTypes.png
+Icons.16x16.DRIVE = BitmapResources-data\Icons.16x16.DRIVE.png
+Icons.16x16.HtmlElements.ButtonElement = BitmapResources-data\Icons.16x16.HtmlElements.ButtonElement.png
+Icons.16x16.Print = BitmapResources-data\Icons.16x16.Print.png
+Icons.32x32.Question = BitmapResources-data\Icons.32x32.Question.png
+Icons.16x16.FormsDesigner.ViewCode = BitmapResources-data\Icons.16x16.FormsDesigner.ViewCode.png
+Icons.16x16.FormsDesigner.AlignTops = BitmapResources-data\Icons.16x16.FormsDesigner.AlignTops.png
+Icons.16x16.Warning = BitmapResources-data\Icons.16x16.Warning.png
+Icons.16x16.HtmlElements.SpanElement = BitmapResources-data\Icons.16x16.HtmlElements.SpanElement.png
+Icons.16x16.FormsDesigner.RemoveHorizontalSpace = BitmapResources-data\Icons.16x16.FormsDesigner.RemoveHorizontalSpace.png
+Icons.16x16.HtmlElements.IFrameElement = BitmapResources-data\Icons.16x16.HtmlElements.IFrameElement.png
+Icons.16x16.FormsDesigner.EqualizeVerticalSpace = BitmapResources-data\Icons.16x16.FormsDesigner.EqualizeVerticalSpace.png
+Icons.16x16.FindIcon = BitmapResources-data\Icons.16x16.FindIcon.png
+Icons.16x16.HtmlElements.Element = BitmapResources-data\Icons.16x16.HtmlElements.Element.png
+Icons.16x16.SaveIcon = BitmapResources-data\Icons.16x16.SaveIcon.png
+Icons.16x16.ILDasm = BitmapResources-data\Icons.16x16.ILDasm.png
+Icons.16x16.CloseFileIcon = BitmapResources-data\Icons.16x16.CloseFileIcon.png
+Icons.16x16.OpenFileIcon = BitmapResources-data\Icons.16x16.OpenFileIcon.png
+Icons.16x16.HtmlElements.FieldSetElement = BitmapResources-data\Icons.16x16.HtmlElements.FieldSetElement.png
+Icons.16x16.SplitWindow = BitmapResources-data\Icons.16x16.SplitWindow.png
+
+#pad icons
+PadIcons.ErrorList = PadIcons\ErrorList.png
+PadIcons.TaskList = PadIcons\TaskList.png
+PadIcons.Output = PadIcons\Output.png
+PadIcons.Toolbar = PadIcons\Toolbar.png
+PadIcons.NUnitTest = PadIcons\NUnit.png
+PadIcons.MbUnitTest = PadIcons\MbUnit.png
+PadIcons.FindResults = PadIcons\FindResults.png
+PadIcons.FileBrowser = PadIcons\FileBrowser.png
+PadIcons.ClassBrowser = PadIcons\ClassBrowser.png
+PadIcons.ProjectBrowser = PadIcons\ProjectBrowser.png
+PadIcons.Bookmarks = PadIcons\Bookmarks.png
+PadIcons.DefinitionView = PadIcons\DefinitionView.png
+PadIcons.BreakPoints = PadIcons\Breakpoints.png
+PadIcons.CallStack = PadIcons\CallStack.png
+PadIcons.LoadedModules = PadIcons\LoadedModules.png
+PadIcons.LocalVariables = PadIcons\LocalVariables.png
+PadIcons.Threads = PadIcons\Threads.png
+PadIcons.Exceptions = PadIcons\Exceptions.png
+
+#SharpQuery icons
+Icons.16x16.SharpQuery.DataBaseRoot = SharpQueryIcons\Icons.16x16.SharpQuery.Database.png
Icons.16x16.SharpQuery.DatabaseConnectionClose = SharpQueryIcons\Icons.16x16.SharpQuery.DatabaseConnectionClose.png
Icons.16x16.SharpQuery.DatabaseConnection = SharpQueryIcons\Icons.16x16.SharpQuery.DatabaseConnection.png
Icons.16x16.SharpQuery.TablesRoot = SharpQueryIcons\Icons.16x16.SharpQuery.TablesRoot.png
@@ -260,236 +260,239 @@ Icons.16x16.SharpQuery.Column = SharpQueryIcons\Icons.16x16.Sh
Icons.16x16.SharpQuery.NodeError = SharpQueryIcons\Icons.16x16.SharpQuery.NodeError.png
Icons.16x16.SharpQuery.Refresh = SharpQueryIcons\Icons.16x16.SharpQuery.Refresh.png
Icons.16x16.SharpQuery.AddConnection = SharpQueryIcons\Icons.16x16.SharpQuery.AddConnection.png
-Icons.16x16.SharpQuery.Remove = SharpQueryIcons\Icons.16x16.SharpQuery.Remove.png
-
-#classbrowser icons
-Icons.16x16.NameSpace = ClassBrowserIcons\Icons.16x16.NameSpace.png
-Icons.16x16.Literal = ClassBrowserIcons\Icons.16x16.Literal.png
-Icons.16x16.Reference = ClassBrowserIcons\Icons.16x16.Reference.png
-
-
-Icons.16x16.Class = ClassBrowserIcons\Icons.16x16.Class.png
-Icons.16x16.Struct = ClassBrowserIcons\Icons.16x16.Struct.png
-Icons.16x16.Enum = ClassBrowserIcons\Icons.16x16.Enum.png
-Icons.16x16.Interface = ClassBrowserIcons\Icons.16x16.Interface.png
-Icons.16x16.Delegate = ClassBrowserIcons\Icons.16x16.Delegate.png
-Icons.16x16.Method = ClassBrowserIcons\Icons.16x16.Method.png
-Icons.16x16.Property = ClassBrowserIcons\Icons.16x16.Property.png
-Icons.16x16.Indexer = ClassBrowserIcons\Icons.16x16.Indexer.png
-Icons.16x16.Field = ClassBrowserIcons\Icons.16x16.Field.png
-Icons.16x16.Event = ClassBrowserIcons\Icons.16x16.Event.png
-
-Icons.16x16.Local = ClassBrowserIcons\Icons.16x16.Local.png
-Icons.16x16.Parameter = ClassBrowserIcons\Icons.16x16.Parameter.png
-
-Icons.16x16.PrivateClass = ClassBrowserIcons\Icons.16x16.PrivateClass.png
-Icons.16x16.PrivateStruct = ClassBrowserIcons\Icons.16x16.PrivateStruct.png
-Icons.16x16.PrivateEnum = ClassBrowserIcons\Icons.16x16.PrivateEnum.png
-Icons.16x16.PrivateInterface = ClassBrowserIcons\Icons.16x16.PrivateInterface.png
-Icons.16x16.PrivateDelegate = ClassBrowserIcons\Icons.16x16.PrivateDelegate.png
-Icons.16x16.PrivateMethod = ClassBrowserIcons\Icons.16x16.PrivateMethod.png
-Icons.16x16.PrivateProperty = ClassBrowserIcons\Icons.16x16.PrivateProperty.png
-Icons.16x16.PrivateIndexer = ClassBrowserIcons\Icons.16x16.PrivateIndexer.png
-Icons.16x16.PrivateField = ClassBrowserIcons\Icons.16x16.PrivateField.png
-Icons.16x16.PrivateEvent = ClassBrowserIcons\Icons.16x16.PrivateEvent.png
-
-Icons.16x16.ProtectedClass = ClassBrowserIcons\Icons.16x16.ProtectedClass.png
-Icons.16x16.ProtectedStruct = ClassBrowserIcons\Icons.16x16.ProtectedStruct.png
-Icons.16x16.ProtectedEnum = ClassBrowserIcons\Icons.16x16.ProtectedEnum.png
-Icons.16x16.ProtectedInterface = ClassBrowserIcons\Icons.16x16.ProtectedInterface.png
-Icons.16x16.ProtectedDelegate = ClassBrowserIcons\Icons.16x16.ProtectedDelegate.png
-Icons.16x16.ProtectedMethod = ClassBrowserIcons\Icons.16x16.ProtectedMethod.png
-Icons.16x16.ProtectedProperty = ClassBrowserIcons\Icons.16x16.ProtectedProperty.png
-Icons.16x16.ProtectedIndexer = ClassBrowserIcons\Icons.16x16.ProtectedIndexer.png
-Icons.16x16.ProtectedField = ClassBrowserIcons\Icons.16x16.ProtectedField.png
-Icons.16x16.ProtectedEvent = ClassBrowserIcons\Icons.16x16.ProtectedEvent.png
-
-Icons.16x16.InternalClass = ClassBrowserIcons\Icons.16x16.InternalClass.png
-Icons.16x16.InternalStruct = ClassBrowserIcons\Icons.16x16.InternalStruct.png
-Icons.16x16.InternalEnum = ClassBrowserIcons\Icons.16x16.InternalEnum.png
-Icons.16x16.InternalInterface = ClassBrowserIcons\Icons.16x16.InternalInterface.png
-Icons.16x16.InternalDelegate = ClassBrowserIcons\Icons.16x16.InternalDelegate.png
-Icons.16x16.InternalMethod = ClassBrowserIcons\Icons.16x16.InternalMethod.png
-Icons.16x16.InternalProperty = ClassBrowserIcons\Icons.16x16.InternalProperty.png
-Icons.16x16.InternalIndexer = ClassBrowserIcons\Icons.16x16.InternalIndexer.png
-Icons.16x16.InternalField = ClassBrowserIcons\Icons.16x16.InternalField.png
-Icons.16x16.InternalEvent = ClassBrowserIcons\Icons.16x16.InternalEvent.png
-
-#bookmark icons
-Bookmarks.ClearAll = Bookmarks\ClearAll.png
-Bookmarks.GotoNext = Bookmarks\GotoNext.png
-Bookmarks.GotoNextInFile = Bookmarks\GotoNextInFile.png
-Bookmarks.GotoNextInFolder = Bookmarks\GotoNextInFolder.png
-Bookmarks.GotoPrev = Bookmarks\GotoPrev.png
-Bookmarks.GotoPrevInFile = Bookmarks\GotoPrevInFile.png
-Bookmarks.GotoPrevInFolder = Bookmarks\GotoPrevInFolder.png
-Bookmarks.ToggleMark = Bookmarks\ToggleMark.png
-Bookmarks.DeleteMark = Bookmarks\DeleteMark.png
-Bookmarks.EnableDisableAll = Bookmarks\EnableDisableAll.png
-Bookmarks.EnableDisableMark = Bookmarks\EnableDisableMark.png
-
-#backend icons
-C#.ProjectIcon = backendicons\CSharp\SmallProject.png
-C#.FileIcon = backendicons\CSharp\SmallFile.png
-
-C#.File.EmptyFile = backendicons\CSharp\file\EmptyFile.png
-C#.File.Form = backendicons\CSharp\file\Form.png
-C#.File.FullFile = backendicons\CSharp\file\FullFile.png
-C#.File.NewClass = backendicons\CSharp\file\NewClass.png
-C#.File.WebFile = backendicons\CSharp\file\WebFile.png
-C#.Project.EmptyProject = backendicons\CSharp\project\EmptyProject.png
-C#.Project.DOSProject = backendicons\CSharp\project\DOSProject.png
-C#.Project.Form = backendicons\CSharp\project\Form.png
-C#.Project.FullProject = backendicons\CSharp\project\FullProject.png
-C#.Project.ServiceProject = backendicons\CSharp\project\ServiceProject.png
-C#.Project.UserControl = backendicons\CSharp\project\UserControl.png
-C#.Project.WebProject = backendicons\CSharp\project\WebProject.png
-C#.Project.Library = backendicons\CSharp\project\Library.png
-C#.Project.ControlLibrary = backendicons\CSharp\project\ControlLibrary.png
-
-VBNet.ProjectIcon = backendicons\VBNet\SmallProject.png
-VBNet.FileIcon = backendicons\VBNet\SmallFile.png
-
-VBNet.File.EmptyFile = backendicons\VBNet\file\EmptyFile.png
-VBNet.File.Form = backendicons\VBNet\file\Form.png
-VBNet.File.FullFile = backendicons\VBNet\file\FullFile.png
-VBNet.File.NewClass = backendicons\VBNet\file\NewClass.png
-VBNet.File.WebFile = backendicons\VBNet\file\WebFile.png
-VBNet.Project.EmptyProject = backendicons\VBNet\project\EmptyProject.png
-VBNet.Project.DOSProject = backendicons\VBNet\project\DOSProject.png
-VBNet.Project.Form = backendicons\VBNet\project\Form.png
-VBNet.Project.FullProject = backendicons\VBNet\project\FullProject.png
-VBNet.Project.ServiceProject = backendicons\VBNet\project\ServiceProject.png
-VBNet.Project.UserControl = backendicons\VBNet\project\UserControl.png
-VBNet.Project.WebProject = backendicons\VBNet\project\WebProject.png
-VBNet.Project.Library = backendicons\VBNet\project\Library.png
-VBNet.Project.ControlLibrary = backendicons\VBNet\project\ControlLibrary.png
-
-Java.ProjectIcon = backendicons\Java\SmallProject.png
-Java.FileIcon = backendicons\Java\SmallFile.png
-
-Java.File.EmptyFile = backendicons\Java\file\EmptyFile.png
-Java.File.Form = backendicons\Java\file\Form.png
-Java.File.FullFile = backendicons\Java\file\FullFile.png
-Java.File.NewClass = backendicons\Java\file\NewClass.png
-Java.File.WebFile = backendicons\Java\file\WebFile.png
-Java.Project.EmptyProject = backendicons\Java\project\EmptyProject.png
-Java.Project.DOSProject = backendicons\Java\project\DOSProject.png
-Java.Project.Form = backendicons\Java\project\Form.png
-Java.Project.FullProject = backendicons\Java\project\FullProject.png
-Java.Project.ServiceProject = backendicons\Java\project\ServiceProject.png
-Java.Project.UserControl = backendicons\Java\project\UserControl.png
-Java.Project.WebProject = backendicons\Java\project\WebProject.png
-Java.Project.Library = backendicons\Java\project\Library.png
-Java.Project.ControlLibrary = backendicons\Java\project\ControlLibrary.png
-
-
-JScript.ProjectIcon = backendicons\JScript\SmallProject.png
-JScript.FileIcon = backendicons\JScript\SmallFile.png
-
-JScript.File.EmptyFile = backendicons\JScript\file\EmptyFile.png
-JScript.File.Form = backendicons\JScript\file\Form.png
-JScript.File.FullFile = backendicons\JScript\file\FullFile.png
-JScript.File.NewClass = backendicons\JScript\file\NewClass.png
-JScript.File.WebFile = backendicons\JScript\file\WebFile.png
-JScript.Project.EmptyProject = backendicons\JScript\project\EmptyProject.png
-JScript.Project.DOSProject = backendicons\JScript\project\DOSProject.png
-JScript.Project.Form = backendicons\JScript\project\Form.png
-JScript.Project.FullProject = backendicons\JScript\project\FullProject.png
-JScript.Project.ServiceProject = backendicons\JScript\project\ServiceProject.png
-JScript.Project.UserControl = backendicons\JScript\project\UserControl.png
-JScript.Project.WebProject = backendicons\JScript\project\WebProject.png
-JScript.Project.Library = backendicons\JScript\project\Library.png
-JScript.Project.ControlLibrary = backendicons\JScript\project\ControlLibrary.png
-
-C++.ProjectIcon = backendicons\cpp\SmallProject.png
-C++.FileIcon = backendicons\cpp\SmallFile.png
-
-C++.File.EmptyFile = backendicons\cpp\file\EmptyFile.png
-C++.File.Form = backendicons\cpp\file\Form.png
-C++.File.FullFile = backendicons\cpp\file\FullFile.png
-C++.File.NewClass = backendicons\cpp\file\NewClass.png
-C++.File.WebFile = backendicons\cpp\file\WebFile.png
-C++.Project.EmptyProject = backendicons\cpp\project\EmptyProject.png
-C++.Project.DOSProject = backendicons\cpp\project\DOSProject.png
-C++.Project.Form = backendicons\cpp\project\Form.png
-C++.Project.FullProject = backendicons\cpp\project\FullProject.png
-C++.Project.ServiceProject = backendicons\cpp\project\ServiceProject.png
-C++.Project.UserControl = backendicons\cpp\project\UserControl.png
-C++.Project.WebProject = backendicons\cpp\project\WebProject.png
-C++.Project.Library = backendicons\cpp\project\Library.png
-C++.Project.ControlLibrary = backendicons\cpp\project\ControlLibrary.png
-
-Boo.FileIcon = backendicons\boo\Boo.FileIcon.png
-Boo.File.EmptyFile = backendicons\boo\Boo.File.EmptyFile.png
-Boo.File.Form = backendicons\boo\Boo.File.Form.png
-Boo.Project.EmptyProject = backendicons\boo\Boo.Project.EmptyProject.png
-Boo.Project.Form = backendicons\boo\Boo.Project.Form.png
-Boo.ProjectIcon = backendicons\boo\Boo.ProjectIcon.png
-
-# misc backend icons
-FileIcons.XmlIcon = backendicons\miscFiles\Icons.16x16.XMLFileIcon.png
-Icons.16x16.ResourceFileIcon = backendicons\miscFiles\Icons.16x16.ResourceFileIcon.png
-Icons.16x16.HTMLIcon = backendicons\miscFiles\Icons.16x16.HTMLIcon.png
-Icons.16x16.XMLFileIcon = backendicons\miscFiles\Icons.16x16.XMLFileIcon.png
-Icons.16x16.TextFileIcon = backendicons\miscFiles\Icons.16x16.TextFileIcon.png
-Icons.16x16.CombineIcon = backendicons\miscFiles\Icons.16x16.CombineIcon.png
-Icons.16x16.MiscFiles = backendicons\miscFiles\Icons.16x16.MiscFiles.png
-Icons.16x16.SolutionIcon = backendicons\miscFiles\Icons.16x16.SolutionIcon.png
-
-Icons.32x32.EmptyFileIcon = backendicons\miscFiles\Icons.32x32.EmptyFileIcon.png
-Icons.32x32.HTMLFileIcon = backendicons\miscFiles\Icons.32x32.HTMLFileIcon.png
-Icons.32x32.XMLFileIcon = backendicons\miscFiles\Icons.32x32.XMLFileIcon.png
-Icons.32x32.TextFileIcon = backendicons\miscFiles\Icons.32x32.TextFileIcon.png
-Icons.32x32.EmptyProjectIcon = backendicons\miscFiles\Icons.32x32.EmptyProjectIcon.png
-Icons.32x32.CombineIcon = backendicons\miscFiles\Icons.32x32.CombineIcon.png
-Icons.32x32.ResourceFileIcon = backendicons\miscFiles\Icons.32x32.ResourceFileIcon.png
-Icons.32x32.NAntBuildFileIcon = backendicons\miscFiles\Icons.32x32.NAntBuildFileIcon.png
-
-Icons.16x16.AddInIcon = backendicons\miscFiles\AddIn16.png
-Icons.32x32.AddInIcon = backendicons\miscFiles\AddIn32.png
-
-Icons.16x16.CSSIcon = backendicons\miscFiles\CSS_16.png
-Icons.32x32.CSSIcon = backendicons\miscFiles\CSS_32.png
-Icons.16x16.DTDIcon = backendicons\miscFiles\DTD_16.png
-Icons.32x32.DTDIcon = backendicons\miscFiles\DTD_32.png
-Icons.16x16.XSDIcon = backendicons\miscFiles\XSD_16.png
-Icons.32x32.XSDIcon = backendicons\miscFiles\XSD_32.png
-Icons.16x16.XSLIcon = backendicons\miscFiles\XSL_16.png
-Icons.32x32.XSLIcon = backendicons\miscFiles\XSL_32.png
-Icons.16x16.ASPFileIcon = backendicons\miscFiles\ASP_16.png
-Icons.32x32.ASPFileIcon = backendicons\miscFiles\ASP_32.png
-
-HtmlHelp2.16x16.DynamicHelp = PadIcons\HtmlHelp2.16x16.DynamicHelp.png
-HtmlHelp2.16x16.Favorites = PadIcons\HtmlHelp2.16x16.Favorites.png
-HtmlHelp2.16x16.Index = PadIcons\HtmlHelp2.16x16.Index.png
-HtmlHelp2.16x16.IndexResults = PadIcons\HtmlHelp2.16x16.IndexResults.png
-HtmlHelp2.16x16.Search = PadIcons\HtmlHelp2.16x16.Search.png
-HtmlHelp2.16x16.SearchResults = PadIcons\HtmlHelp2.16x16.SearchResults.png
-HtmlHelp2.16x16.Toc = PadIcons\HtmlHelp2.16x16.Toc.png
-
-NAntAddIn.Icons.16x16.BuildFile = NAntIcons\NAntAddIn.Icons.16x16.BuildFile.png
-NAntAddIn.Icons.16x16.BuildFileError = NAntIcons\NAntAddIn.Icons.16x16.BuildFileError.png
-NAntAddIn.Icons.16x16.BuildTarget = NAntIcons\NAntAddIn.Icons.16x16.BuildTarget.png
-NAntAddIn.Icons.16x16.BuildTargetError = NAntIcons\NAntAddIn.Icons.16x16.BuildTargetError.png
-NAntAddIn.Icons.16x16.DefaultBuildTarget = NAntIcons\NAntAddIn.Icons.16x16.DefaultBuildTarget.png
-NAntAddIn.Icons.16x16.NAntPad = NAntIcons\NAntAddIn.Icons.16x16.NAntPad.png
-NAntAddIn.Icons.16x16.NewBuildFile = NAntIcons\NAntAddIn.Icons.16x16.NewBuildFile.png
-NAntAddIn.Icons.16x16.RunNAnt = NAntIcons\NAntAddIn.Icons.16x16.RunNAnt.png
-NAntAddIn.Icons.16x16.RunNAntClean = NAntIcons\NAntAddIn.Icons.16x16.RunNAntClean.png
-NAntAddIn.Icons.16x16.StopNAnt = NAntIcons\NAntAddIn.Icons.16x16.StopNAnt.png
-
-CodeCoverage.Icons.16x16.Pad = CodeCoverageIcons\CodeCoverage.Icons.16x16.Pad.png
-CodeCoverage.Icons.16x16.File = CodeCoverageIcons\CodeCoverage.Icons.16x16.File.png
-CodeCoverage.Icons.16x16.Run = CodeCoverageIcons\CodeCoverage.Icons.16x16.Run.png
-
-#SharpReport icons
-Icons.16x16.SharpReport.Ascending = SharpReportIcons\Icons.16x16.SharpReport.Ascending.png
-Icons.16x16.SharpReport.Descending = SharpReportIcons\Icons.16x16.SharpReport.Descending.png
-Icons.16x16.SharpReport.Function = SharpReportIcons\Icons.16x16.SharpReport.Function.ico
-Icons.16.16.SharpReport.Textbox = SharpReportIcons\Icons.16.16.SharpReport.Textbox.ico
-Icons.16.16.SharpReport.Line = SharpReportIcons\Icons.16.16.SharpReport.Line.ico
-
-
-
-
+Icons.16x16.SharpQuery.Remove = SharpQueryIcons\Icons.16x16.SharpQuery.Remove.png
+
+#classbrowser icons
+Icons.16x16.NameSpace = ClassBrowserIcons\Icons.16x16.NameSpace.png
+Icons.16x16.Literal = ClassBrowserIcons\Icons.16x16.Literal.png
+Icons.16x16.Reference = ClassBrowserIcons\Icons.16x16.Reference.png
+
+
+Icons.16x16.Class = ClassBrowserIcons\Icons.16x16.Class.png
+Icons.16x16.Struct = ClassBrowserIcons\Icons.16x16.Struct.png
+Icons.16x16.Enum = ClassBrowserIcons\Icons.16x16.Enum.png
+Icons.16x16.Interface = ClassBrowserIcons\Icons.16x16.Interface.png
+Icons.16x16.Delegate = ClassBrowserIcons\Icons.16x16.Delegate.png
+Icons.16x16.Method = ClassBrowserIcons\Icons.16x16.Method.png
+Icons.16x16.Property = ClassBrowserIcons\Icons.16x16.Property.png
+Icons.16x16.Indexer = ClassBrowserIcons\Icons.16x16.Indexer.png
+Icons.16x16.Field = ClassBrowserIcons\Icons.16x16.Field.png
+Icons.16x16.Event = ClassBrowserIcons\Icons.16x16.Event.png
+
+Icons.16x16.Local = ClassBrowserIcons\Icons.16x16.Local.png
+Icons.16x16.Parameter = ClassBrowserIcons\Icons.16x16.Parameter.png
+
+Icons.16x16.PrivateClass = ClassBrowserIcons\Icons.16x16.PrivateClass.png
+Icons.16x16.PrivateStruct = ClassBrowserIcons\Icons.16x16.PrivateStruct.png
+Icons.16x16.PrivateEnum = ClassBrowserIcons\Icons.16x16.PrivateEnum.png
+Icons.16x16.PrivateInterface = ClassBrowserIcons\Icons.16x16.PrivateInterface.png
+Icons.16x16.PrivateDelegate = ClassBrowserIcons\Icons.16x16.PrivateDelegate.png
+Icons.16x16.PrivateMethod = ClassBrowserIcons\Icons.16x16.PrivateMethod.png
+Icons.16x16.PrivateProperty = ClassBrowserIcons\Icons.16x16.PrivateProperty.png
+Icons.16x16.PrivateIndexer = ClassBrowserIcons\Icons.16x16.PrivateIndexer.png
+Icons.16x16.PrivateField = ClassBrowserIcons\Icons.16x16.PrivateField.png
+Icons.16x16.PrivateEvent = ClassBrowserIcons\Icons.16x16.PrivateEvent.png
+
+Icons.16x16.ProtectedClass = ClassBrowserIcons\Icons.16x16.ProtectedClass.png
+Icons.16x16.ProtectedStruct = ClassBrowserIcons\Icons.16x16.ProtectedStruct.png
+Icons.16x16.ProtectedEnum = ClassBrowserIcons\Icons.16x16.ProtectedEnum.png
+Icons.16x16.ProtectedInterface = ClassBrowserIcons\Icons.16x16.ProtectedInterface.png
+Icons.16x16.ProtectedDelegate = ClassBrowserIcons\Icons.16x16.ProtectedDelegate.png
+Icons.16x16.ProtectedMethod = ClassBrowserIcons\Icons.16x16.ProtectedMethod.png
+Icons.16x16.ProtectedProperty = ClassBrowserIcons\Icons.16x16.ProtectedProperty.png
+Icons.16x16.ProtectedIndexer = ClassBrowserIcons\Icons.16x16.ProtectedIndexer.png
+Icons.16x16.ProtectedField = ClassBrowserIcons\Icons.16x16.ProtectedField.png
+Icons.16x16.ProtectedEvent = ClassBrowserIcons\Icons.16x16.ProtectedEvent.png
+
+Icons.16x16.InternalClass = ClassBrowserIcons\Icons.16x16.InternalClass.png
+Icons.16x16.InternalStruct = ClassBrowserIcons\Icons.16x16.InternalStruct.png
+Icons.16x16.InternalEnum = ClassBrowserIcons\Icons.16x16.InternalEnum.png
+Icons.16x16.InternalInterface = ClassBrowserIcons\Icons.16x16.InternalInterface.png
+Icons.16x16.InternalDelegate = ClassBrowserIcons\Icons.16x16.InternalDelegate.png
+Icons.16x16.InternalMethod = ClassBrowserIcons\Icons.16x16.InternalMethod.png
+Icons.16x16.InternalProperty = ClassBrowserIcons\Icons.16x16.InternalProperty.png
+Icons.16x16.InternalIndexer = ClassBrowserIcons\Icons.16x16.InternalIndexer.png
+Icons.16x16.InternalField = ClassBrowserIcons\Icons.16x16.InternalField.png
+Icons.16x16.InternalEvent = ClassBrowserIcons\Icons.16x16.InternalEvent.png
+
+#bookmark icons
+Bookmarks.ClearAll = Bookmarks\ClearAll.png
+Bookmarks.GotoNext = Bookmarks\GotoNext.png
+Bookmarks.GotoNextInFile = Bookmarks\GotoNextInFile.png
+Bookmarks.GotoNextInFolder = Bookmarks\GotoNextInFolder.png
+Bookmarks.GotoPrev = Bookmarks\GotoPrev.png
+Bookmarks.GotoPrevInFile = Bookmarks\GotoPrevInFile.png
+Bookmarks.GotoPrevInFolder = Bookmarks\GotoPrevInFolder.png
+Bookmarks.ToggleMark = Bookmarks\ToggleMark.png
+Bookmarks.DeleteMark = Bookmarks\DeleteMark.png
+Bookmarks.EnableDisableAll = Bookmarks\EnableDisableAll.png
+Bookmarks.EnableDisableMark = Bookmarks\EnableDisableMark.png
+
+#backend icons
+C#.ProjectIcon = backendicons\CSharp\SmallProject.png
+C#.FileIcon = backendicons\CSharp\SmallFile.png
+
+C#.File.EmptyFile = backendicons\CSharp\file\EmptyFile.png
+C#.File.Form = backendicons\CSharp\file\Form.png
+C#.File.FullFile = backendicons\CSharp\file\FullFile.png
+C#.File.NewClass = backendicons\CSharp\file\NewClass.png
+C#.File.WebFile = backendicons\CSharp\file\WebFile.png
+C#.Project.EmptyProject = backendicons\CSharp\project\EmptyProject.png
+C#.Project.DOSProject = backendicons\CSharp\project\DOSProject.png
+C#.Project.Form = backendicons\CSharp\project\Form.png
+C#.Project.FullProject = backendicons\CSharp\project\FullProject.png
+C#.Project.ServiceProject = backendicons\CSharp\project\ServiceProject.png
+C#.Project.UserControl = backendicons\CSharp\project\UserControl.png
+C#.Project.WebProject = backendicons\CSharp\project\WebProject.png
+C#.Project.Library = backendicons\CSharp\project\Library.png
+C#.Project.ControlLibrary = backendicons\CSharp\project\ControlLibrary.png
+
+VBNet.ProjectIcon = backendicons\VBNet\SmallProject.png
+VBNet.FileIcon = backendicons\VBNet\SmallFile.png
+
+VBNet.File.EmptyFile = backendicons\VBNet\file\EmptyFile.png
+VBNet.File.Form = backendicons\VBNet\file\Form.png
+VBNet.File.FullFile = backendicons\VBNet\file\FullFile.png
+VBNet.File.NewClass = backendicons\VBNet\file\NewClass.png
+VBNet.File.WebFile = backendicons\VBNet\file\WebFile.png
+VBNet.Project.EmptyProject = backendicons\VBNet\project\EmptyProject.png
+VBNet.Project.DOSProject = backendicons\VBNet\project\DOSProject.png
+VBNet.Project.Form = backendicons\VBNet\project\Form.png
+VBNet.Project.FullProject = backendicons\VBNet\project\FullProject.png
+VBNet.Project.ServiceProject = backendicons\VBNet\project\ServiceProject.png
+VBNet.Project.UserControl = backendicons\VBNet\project\UserControl.png
+VBNet.Project.WebProject = backendicons\VBNet\project\WebProject.png
+VBNet.Project.Library = backendicons\VBNet\project\Library.png
+VBNet.Project.ControlLibrary = backendicons\VBNet\project\ControlLibrary.png
+
+Java.ProjectIcon = backendicons\Java\SmallProject.png
+Java.FileIcon = backendicons\Java\SmallFile.png
+
+Java.File.EmptyFile = backendicons\Java\file\EmptyFile.png
+Java.File.Form = backendicons\Java\file\Form.png
+Java.File.FullFile = backendicons\Java\file\FullFile.png
+Java.File.NewClass = backendicons\Java\file\NewClass.png
+Java.File.WebFile = backendicons\Java\file\WebFile.png
+Java.Project.EmptyProject = backendicons\Java\project\EmptyProject.png
+Java.Project.DOSProject = backendicons\Java\project\DOSProject.png
+Java.Project.Form = backendicons\Java\project\Form.png
+Java.Project.FullProject = backendicons\Java\project\FullProject.png
+Java.Project.ServiceProject = backendicons\Java\project\ServiceProject.png
+Java.Project.UserControl = backendicons\Java\project\UserControl.png
+Java.Project.WebProject = backendicons\Java\project\WebProject.png
+Java.Project.Library = backendicons\Java\project\Library.png
+Java.Project.ControlLibrary = backendicons\Java\project\ControlLibrary.png
+
+
+JScript.ProjectIcon = backendicons\JScript\SmallProject.png
+JScript.FileIcon = backendicons\JScript\SmallFile.png
+
+JScript.File.EmptyFile = backendicons\JScript\file\EmptyFile.png
+JScript.File.Form = backendicons\JScript\file\Form.png
+JScript.File.FullFile = backendicons\JScript\file\FullFile.png
+JScript.File.NewClass = backendicons\JScript\file\NewClass.png
+JScript.File.WebFile = backendicons\JScript\file\WebFile.png
+JScript.Project.EmptyProject = backendicons\JScript\project\EmptyProject.png
+JScript.Project.DOSProject = backendicons\JScript\project\DOSProject.png
+JScript.Project.Form = backendicons\JScript\project\Form.png
+JScript.Project.FullProject = backendicons\JScript\project\FullProject.png
+JScript.Project.ServiceProject = backendicons\JScript\project\ServiceProject.png
+JScript.Project.UserControl = backendicons\JScript\project\UserControl.png
+JScript.Project.WebProject = backendicons\JScript\project\WebProject.png
+JScript.Project.Library = backendicons\JScript\project\Library.png
+JScript.Project.ControlLibrary = backendicons\JScript\project\ControlLibrary.png
+
+C++.ProjectIcon = backendicons\cpp\SmallProject.png
+C++.FileIcon = backendicons\cpp\SmallFile.png
+
+C++.File.EmptyFile = backendicons\cpp\file\EmptyFile.png
+C++.File.Form = backendicons\cpp\file\Form.png
+C++.File.FullFile = backendicons\cpp\file\FullFile.png
+C++.File.NewClass = backendicons\cpp\file\NewClass.png
+C++.File.WebFile = backendicons\cpp\file\WebFile.png
+C++.Project.EmptyProject = backendicons\cpp\project\EmptyProject.png
+C++.Project.DOSProject = backendicons\cpp\project\DOSProject.png
+C++.Project.Form = backendicons\cpp\project\Form.png
+C++.Project.FullProject = backendicons\cpp\project\FullProject.png
+C++.Project.ServiceProject = backendicons\cpp\project\ServiceProject.png
+C++.Project.UserControl = backendicons\cpp\project\UserControl.png
+C++.Project.WebProject = backendicons\cpp\project\WebProject.png
+C++.Project.Library = backendicons\cpp\project\Library.png
+C++.Project.ControlLibrary = backendicons\cpp\project\ControlLibrary.png
+
+Boo.FileIcon = backendicons\boo\Boo.FileIcon.png
+Boo.File.EmptyFile = backendicons\boo\Boo.File.EmptyFile.png
+Boo.File.Form = backendicons\boo\Boo.File.Form.png
+Boo.Project.EmptyProject = backendicons\boo\Boo.Project.EmptyProject.png
+Boo.Project.Form = backendicons\boo\Boo.Project.Form.png
+Boo.ProjectIcon = backendicons\boo\Boo.ProjectIcon.png
+
+# misc backend icons
+FileIcons.XmlIcon = backendicons\miscFiles\Icons.16x16.XMLFileIcon.png
+Icons.16x16.ResourceFileIcon = backendicons\miscFiles\Icons.16x16.ResourceFileIcon.png
+Icons.16x16.HTMLIcon = backendicons\miscFiles\Icons.16x16.HTMLIcon.png
+Icons.16x16.XMLFileIcon = backendicons\miscFiles\Icons.16x16.XMLFileIcon.png
+Icons.16x16.TextFileIcon = backendicons\miscFiles\Icons.16x16.TextFileIcon.png
+Icons.16x16.CombineIcon = backendicons\miscFiles\Icons.16x16.CombineIcon.png
+Icons.16x16.MiscFiles = backendicons\miscFiles\Icons.16x16.MiscFiles.png
+Icons.16x16.SolutionIcon = backendicons\miscFiles\Icons.16x16.SolutionIcon.png
+
+Icons.32x32.EmptyFileIcon = backendicons\miscFiles\Icons.32x32.EmptyFileIcon.png
+Icons.32x32.HTMLFileIcon = backendicons\miscFiles\Icons.32x32.HTMLFileIcon.png
+Icons.32x32.XMLFileIcon = backendicons\miscFiles\Icons.32x32.XMLFileIcon.png
+Icons.32x32.TextFileIcon = backendicons\miscFiles\Icons.32x32.TextFileIcon.png
+Icons.32x32.EmptyProjectIcon = backendicons\miscFiles\Icons.32x32.EmptyProjectIcon.png
+Icons.32x32.CombineIcon = backendicons\miscFiles\Icons.32x32.CombineIcon.png
+Icons.32x32.ResourceFileIcon = backendicons\miscFiles\Icons.32x32.ResourceFileIcon.png
+Icons.32x32.NAntBuildFileIcon = backendicons\miscFiles\Icons.32x32.NAntBuildFileIcon.png
+
+Icons.16x16.AddInIcon = backendicons\miscFiles\AddIn16.png
+Icons.32x32.AddInIcon = backendicons\miscFiles\AddIn32.png
+
+Icons.16x16.CSSIcon = backendicons\miscFiles\CSS_16.png
+Icons.32x32.CSSIcon = backendicons\miscFiles\CSS_32.png
+Icons.16x16.DTDIcon = backendicons\miscFiles\DTD_16.png
+Icons.32x32.DTDIcon = backendicons\miscFiles\DTD_32.png
+Icons.16x16.XSDIcon = backendicons\miscFiles\XSD_16.png
+Icons.32x32.XSDIcon = backendicons\miscFiles\XSD_32.png
+Icons.16x16.XSLIcon = backendicons\miscFiles\XSL_16.png
+Icons.32x32.XSLIcon = backendicons\miscFiles\XSL_32.png
+Icons.16x16.ASPFileIcon = backendicons\miscFiles\ASP_16.png
+Icons.32x32.ASPFileIcon = backendicons\miscFiles\ASP_32.png
+
+HtmlHelp2.16x16.DynamicHelp = PadIcons\HtmlHelp2.16x16.DynamicHelp.png
+HtmlHelp2.16x16.Favorites = PadIcons\HtmlHelp2.16x16.Favorites.png
+HtmlHelp2.16x16.Index = PadIcons\HtmlHelp2.16x16.Index.png
+HtmlHelp2.16x16.IndexResults = PadIcons\HtmlHelp2.16x16.IndexResults.png
+HtmlHelp2.16x16.Search = PadIcons\HtmlHelp2.16x16.Search.png
+HtmlHelp2.16x16.SearchResults = PadIcons\HtmlHelp2.16x16.SearchResults.png
+HtmlHelp2.16x16.Toc = PadIcons\HtmlHelp2.16x16.Toc.png
+
+NAntAddIn.Icons.16x16.BuildFile = NAntIcons\NAntAddIn.Icons.16x16.BuildFile.png
+NAntAddIn.Icons.16x16.BuildFileError = NAntIcons\NAntAddIn.Icons.16x16.BuildFileError.png
+NAntAddIn.Icons.16x16.BuildTarget = NAntIcons\NAntAddIn.Icons.16x16.BuildTarget.png
+NAntAddIn.Icons.16x16.BuildTargetError = NAntIcons\NAntAddIn.Icons.16x16.BuildTargetError.png
+NAntAddIn.Icons.16x16.DefaultBuildTarget = NAntIcons\NAntAddIn.Icons.16x16.DefaultBuildTarget.png
+NAntAddIn.Icons.16x16.NAntPad = NAntIcons\NAntAddIn.Icons.16x16.NAntPad.png
+NAntAddIn.Icons.16x16.NewBuildFile = NAntIcons\NAntAddIn.Icons.16x16.NewBuildFile.png
+NAntAddIn.Icons.16x16.RunNAnt = NAntIcons\NAntAddIn.Icons.16x16.RunNAnt.png
+NAntAddIn.Icons.16x16.RunNAntClean = NAntIcons\NAntAddIn.Icons.16x16.RunNAntClean.png
+NAntAddIn.Icons.16x16.StopNAnt = NAntIcons\NAntAddIn.Icons.16x16.StopNAnt.png
+
+CodeCoverage.Icons.16x16.Pad = CodeCoverageIcons\CodeCoverage.Icons.16x16.Pad.png
+CodeCoverage.Icons.16x16.File = CodeCoverageIcons\CodeCoverage.Icons.16x16.File.png
+CodeCoverage.Icons.16x16.Run = CodeCoverageIcons\CodeCoverage.Icons.16x16.Run.png
+
+#SharpReport icons
+Icons.16x16.SharpReport.Ascending = SharpReportIcons\Icons.16x16.SharpReport.Ascending.png
+Icons.16x16.SharpReport.Descending = SharpReportIcons\Icons.16x16.SharpReport.Descending.png
+Icons.16x16.SharpReport.Function = SharpReportIcons\Icons.16x16.SharpReport.Function.ico
+Icons.16.16.SharpReport.Textbox = SharpReportIcons\Icons.16.16.SharpReport.Textbox.ico
+Icons.16.16.SharpReport.Line = SharpReportIcons\Icons.16.16.SharpReport.Line.ico
+
+#ViewNavigation icons
+Icons.16x16.NavigateBack = NavigationIcons\Icons.16x16.NavigateBack.png
+Icons.16x16.NavigateBack.disabled = NavigationIcons\Icons.16x16.NavigateBack.disabled.png
+Icons.16x16.NavigateForward = NavigationIcons\Icons.16x16.NavigateForward.png
+
+
diff --git a/data/resources/image/BitmapResources/NavigationIcons/Icons.16x16.NavigateBack.disabled.png b/data/resources/image/BitmapResources/NavigationIcons/Icons.16x16.NavigateBack.disabled.png
new file mode 100644
index 0000000000..8cca0426c8
Binary files /dev/null and b/data/resources/image/BitmapResources/NavigationIcons/Icons.16x16.NavigateBack.disabled.png differ
diff --git a/data/resources/image/BitmapResources/NavigationIcons/Icons.16x16.NavigateBack.png b/data/resources/image/BitmapResources/NavigationIcons/Icons.16x16.NavigateBack.png
new file mode 100644
index 0000000000..e787075484
Binary files /dev/null and b/data/resources/image/BitmapResources/NavigationIcons/Icons.16x16.NavigateBack.png differ
diff --git a/data/resources/image/BitmapResources/NavigationIcons/Icons.16x16.NavigateForward.png b/data/resources/image/BitmapResources/NavigationIcons/Icons.16x16.NavigateForward.png
new file mode 100644
index 0000000000..11e8de1522
Binary files /dev/null and b/data/resources/image/BitmapResources/NavigationIcons/Icons.16x16.NavigateForward.png differ
diff --git a/src/AddIns/DisplayBindings/FormsDesigner/Project/FormsDesigner.csproj b/src/AddIns/DisplayBindings/FormsDesigner/Project/FormsDesigner.csproj
index bb0fb67899..054cc170ab 100644
--- a/src/AddIns/DisplayBindings/FormsDesigner/Project/FormsDesigner.csproj
+++ b/src/AddIns/DisplayBindings/FormsDesigner/Project/FormsDesigner.csproj
@@ -128,4 +128,4 @@
-
+
\ No newline at end of file
diff --git a/src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlView.cs b/src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlView.cs
index 6df6a740ae..df56f773f9 100644
--- a/src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlView.cs
+++ b/src/AddIns/DisplayBindings/XmlEditor/Project/Src/XmlView.cs
@@ -455,6 +455,18 @@ namespace ICSharpCode.XmlEditor
{
xmlEditor.ActiveTextAreaControl.JumpTo(line, column);
}
+
+ public int Line {
+ get {
+ return xmlEditor.ActiveTextAreaControl.Caret.Line;
+ }
+ }
+
+ public int Column {
+ get {
+ return xmlEditor.ActiveTextAreaControl.Caret.Column;
+ }
+ }
#endregion
diff --git a/src/AddIns/DisplayBindings/XmlEditor/Project/XmlEditor.csproj b/src/AddIns/DisplayBindings/XmlEditor/Project/XmlEditor.csproj
index 233edbaaf0..556c73cf18 100644
--- a/src/AddIns/DisplayBindings/XmlEditor/Project/XmlEditor.csproj
+++ b/src/AddIns/DisplayBindings/XmlEditor/Project/XmlEditor.csproj
@@ -126,4 +126,4 @@
-
+
\ No newline at end of file
diff --git a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Debugger.AddIn.csproj b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Debugger.AddIn.csproj
index ad5c1036a0..f4c5ce3e4c 100644
--- a/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Debugger.AddIn.csproj
+++ b/src/AddIns/Misc/Debugger/Debugger.AddIn/Project/Debugger.AddIn.csproj
@@ -104,4 +104,4 @@
-
+
\ No newline at end of file
diff --git a/src/AddIns/Misc/SharpReport/SharpReport/SharpReport.csproj b/src/AddIns/Misc/SharpReport/SharpReport/SharpReport.csproj
index 42352a1de8..678de30687 100644
--- a/src/AddIns/Misc/SharpReport/SharpReport/SharpReport.csproj
+++ b/src/AddIns/Misc/SharpReport/SharpReport/SharpReport.csproj
@@ -126,4 +126,4 @@
-
+
\ No newline at end of file
diff --git a/src/AddIns/Misc/SharpReport/SharpReportCore/SharpReportCore.csproj b/src/AddIns/Misc/SharpReport/SharpReportCore/SharpReportCore.csproj
index a7825b66b9..e23e486911 100644
--- a/src/AddIns/Misc/SharpReport/SharpReportCore/SharpReportCore.csproj
+++ b/src/AddIns/Misc/SharpReport/SharpReportCore/SharpReportCore.csproj
@@ -161,4 +161,4 @@
-
+
\ No newline at end of file
diff --git a/src/Libraries/DockPanel_Src/WinFormsUI/WinFormsUI.csproj b/src/Libraries/DockPanel_Src/WinFormsUI/WinFormsUI.csproj
index c0f95f0a8d..b5155e8efb 100644
--- a/src/Libraries/DockPanel_Src/WinFormsUI/WinFormsUI.csproj
+++ b/src/Libraries/DockPanel_Src/WinFormsUI/WinFormsUI.csproj
@@ -23,43 +23,28 @@
bin\Debug\
101187584
false
-
-
TRACE;DEBUG;FRAMEWORK_VER_2x
-
-
true
4096
false
-
-
- false
- false
+ False
+ False
false
false
4
-Microsoft.Design#CA1012;-Microsoft.Design#CA2210;-Microsoft.Design#CA1040;-Microsoft.Design#CA1005;-Microsoft.Design#CA1020;-Microsoft.Design#CA1021;-Microsoft.Design#CA1010;-Microsoft.Design#CA1011;-Microsoft.Design#CA1009;-Microsoft.Design#CA1050;-Microsoft.Design#CA1026;-Microsoft.Design#CA1019;-Microsoft.Design#CA1031;-Microsoft.Design#CA1047;-Microsoft.Design#CA1000;-Microsoft.Design#CA1048;-Microsoft.Design#CA1051;-Microsoft.Design#CA1002;-Microsoft.Design#CA1061;-Microsoft.Design#CA1006;-Microsoft.Design#CA1046;-Microsoft.Design#CA1045;-Microsoft.Design#CA1038;-Microsoft.Design#CA1008;-Microsoft.Design#CA1028;-Microsoft.Design#CA1004;-Microsoft.Design#CA1035;-Microsoft.Design#CA1063;-Microsoft.Design#CA1032;-Microsoft.Design#CA1023;-Microsoft.Design#CA1033;-Microsoft.Design#CA1039;-Microsoft.Design#CA1016;-Microsoft.Design#CA1014;-Microsoft.Design#CA1017;-Microsoft.Design#CA1018;-Microsoft.Design#CA1027;-Microsoft.Design#CA1059;-Microsoft.Design#CA1060;-Microsoft.Design#CA1034;-Microsoft.Design#CA1013;-Microsoft.Design#CA1036;-Microsoft.Design#CA1044;-Microsoft.Design#CA1041;-Microsoft.Design#CA1025;-Microsoft.Design#CA1052;-Microsoft.Design#CA1053;-Microsoft.Design#CA1057;-Microsoft.Design#CA1058;-Microsoft.Design#CA1001;-Microsoft.Design#CA1049;-Microsoft.Design#CA1054;-Microsoft.Design#CA1056;-Microsoft.Design#CA1055;-Microsoft.Design#CA1030;-Microsoft.Design#CA1003;-Microsoft.Design#CA1007;-Microsoft.Design#CA1043;-Microsoft.Design#CA1024;-Microsoft.Design#CA1062;-Microsoft.Globalization#CA1301;-Microsoft.Globalization#CA1302;-Microsoft.Globalization#CA1303;-Microsoft.Globalization#CA1306;-Microsoft.Globalization#CA1304;-Microsoft.Globalization#CA1305;-Microsoft.Globalization#CA1300;-Microsoft.Maintainability#CA1502;-Microsoft.Maintainability#CA1501;-Microsoft.Maintainability#CA1500;-Microsoft.Naming#CA1718;-Microsoft.Naming#CA1720;-Microsoft.Naming#CA1700;-Microsoft.Naming#CA1712;-Microsoft.Naming#CA1713;-Microsoft.Naming#CA1709;-Microsoft.Naming#CA1708;-Microsoft.Naming#CA1715;-Microsoft.Naming#CA1710;-Microsoft.Naming#CA1707;-Microsoft.Naming#CA1722;-Microsoft.Naming#CA1711;-Microsoft.Naming#CA1716;-Microsoft.Naming#CA1705;-Microsoft.Naming#CA1725;-Microsoft.Naming#CA1719;-Microsoft.Naming#CA1721;-Microsoft.Naming#CA1706;-Microsoft.Naming#CA1724;-Microsoft.Naming#CA1726;-Microsoft.Performance#CA1809;-Microsoft.Performance#CA1811;-Microsoft.Performance#CA1812;-Microsoft.Performance#CA1807;-Microsoft.Performance#CA1813;-Microsoft.Performance#CA1823;-Microsoft.Performance#CA1816;-Microsoft.Performance#CA1817;-Microsoft.Performance#CA1800;-Microsoft.Performance#CA1818;-Microsoft.Performance#CA1805;-Microsoft.Performance#CA1810;-Microsoft.Performance#CA1822;-Microsoft.Performance#CA1815;-Microsoft.Performance#CA1814;-Microsoft.Performance#CA1819;-Microsoft.Performance#CA1804;-Microsoft.Performance#CA1820;-Microsoft.Performance#CA1802;-Microsoft.Security#CA2116;-Microsoft.Security#CA2117;-Microsoft.Security#CA2105;-Microsoft.Security#CA2115;-Microsoft.Security#CA2104;-Microsoft.Security#CA2122;-Microsoft.Security#CA2114;-Microsoft.Security#CA2123;-Microsoft.Security#CA2111;-Microsoft.Security#CA2108;-Microsoft.Security#CA2107;-Microsoft.Security#CA2103;-Microsoft.Security#CA2100;-Microsoft.Security#CA2118;-Microsoft.Security#CA2109;-Microsoft.Security#CA2119;-Microsoft.Security#CA2106;-Microsoft.Security#CA2112;-Microsoft.Security#CA2110;-Microsoft.Security#CA2120;-Microsoft.Security#CA2101;-Microsoft.Security#CA2121;-Microsoft.Security#CA2126;-Microsoft.Security#CA2124;-Microsoft.Usage#CA2209;-Microsoft.Usage#CA2236;-Microsoft.Usage#CA2227;-Microsoft.Usage#CA2213;-Microsoft.Usage#CA2216;-Microsoft.Usage#CA2215;-Microsoft.Usage#CA2214;-Microsoft.Usage#CA2222;-Microsoft.Usage#CA2202;-Microsoft.Usage#CA1806;-Microsoft.Usage#CA2217;-Microsoft.Usage#CA2212;-Microsoft.Usage#CA2219;-Microsoft.Usage#CA2201;-Microsoft.Usage#CA2228;-Microsoft.Usage#CA2221;-Microsoft.Usage#CA2220;-Microsoft.Usage#CA2240;-Microsoft.Usage#CA2229;-Microsoft.Usage#CA2238;-Microsoft.Usage#CA2207;-Microsoft.Usage#CA2208;-Microsoft.Usage#CA2235;-Microsoft.Usage#CA2237;-Microsoft.Usage#CA2232;-Microsoft.Usage#CA2223;-Microsoft.Usage#CA2211;-Microsoft.Usage#CA2233;-Microsoft.Usage#CA2225;-Microsoft.Usage#CA2226;-Microsoft.Usage#CA2231;-Microsoft.Usage#CA2224;-Microsoft.Usage#CA2218;-Microsoft.Usage#CA2234;-Microsoft.Usage#CA2241;-Microsoft.Usage#CA2239;-Microsoft.Usage#CA2200;-Microsoft.Usage#CA1801;-Microsoft.Usage#CA2205;-Microsoft.Usage#CA2230
Full
- False
False
- False
- false
bin\Release\
false
101187584
false
-
-
TRACE;FRAMEWORK_VER_2x
-
-
false
4096
false
-
-
true
false
false
@@ -309,6 +294,8 @@
+
+
@@ -339,15 +326,7 @@
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/src/Libraries/DockPanel_Src/WinFormsUI/WinFormsUI.csproj.user b/src/Libraries/DockPanel_Src/WinFormsUI/WinFormsUI.csproj.user
index 571c847e7e..bea78fbdc4 100644
--- a/src/Libraries/DockPanel_Src/WinFormsUI/WinFormsUI.csproj.user
+++ b/src/Libraries/DockPanel_Src/WinFormsUI/WinFormsUI.csproj.user
@@ -3,12 +3,6 @@
8.0.50215
Debug
AnyCPU
-
-
-
-
-
-
0
ProjectFiles
0
@@ -19,19 +13,7 @@
false
false
false
-
-
Project
-
-
-
-
-
-
-
-
-
-
true
@@ -40,19 +22,7 @@
false
false
false
-
-
Project
-
-
-
-
-
-
-
-
-
-
false
\ No newline at end of file
diff --git a/src/Libraries/ICSharpCode.TextEditor/Project/ICSharpCode.TextEditor.csproj b/src/Libraries/ICSharpCode.TextEditor/Project/ICSharpCode.TextEditor.csproj
index 56d09e82c7..bc9d5294b5 100644
--- a/src/Libraries/ICSharpCode.TextEditor/Project/ICSharpCode.TextEditor.csproj
+++ b/src/Libraries/ICSharpCode.TextEditor/Project/ICSharpCode.TextEditor.csproj
@@ -205,4 +205,4 @@
-
+
\ No newline at end of file
diff --git a/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj b/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
index c5322fdea8..1169776c7e 100644
--- a/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
+++ b/src/Main/Base/Project/ICSharpCode.SharpDevelop.csproj
@@ -776,7 +776,13 @@
+
+
+
+
+
+
@@ -803,6 +809,7 @@
+
-
+
\ No newline at end of file
diff --git a/src/Main/Base/Project/Src/Commands/MenuItemBuilders.cs b/src/Main/Base/Project/Src/Commands/MenuItemBuilders.cs
index 05dd708b51..1c33c34e67 100644
--- a/src/Main/Base/Project/Src/Commands/MenuItemBuilders.cs
+++ b/src/Main/Base/Project/Src/Commands/MenuItemBuilders.cs
@@ -9,6 +9,7 @@ using System;
using System.Diagnostics;
using System.IO;
using System.Collections;
+using System.Collections.Generic;
using System.Windows.Forms;
using System.Text;
@@ -20,6 +21,127 @@ using ICSharpCode.SharpDevelop.Internal.ExternalTool;
namespace ICSharpCode.SharpDevelop.Commands
{
+ public class NavigationHistoryMenuBuilder : ISubmenuBuilder
+ {
+ // TODO: refactor BuildSubmenu to add a choice between flat and perfile, eventually per class/method sorting of the list
+
+ ToolStripItem[] BuildMenuFlat(List points, int additionalItems)
+ {
+ ToolStripItem[] items = new ToolStripItem[points.Count+additionalItems];
+ MenuCommand cmd = null;
+ INavigationPoint p = null;
+
+ int n = points.Count-1; // the last point
+ int i = 0;
+ while (i points, int additionalItems)
+ {
+ Dictionary> files =
+ new Dictionary>();
+ List fileNames = new List();
+
+ foreach (INavigationPoint p in points) {
+ if (p.FileName==null) {
+ throw new ApplicationException("should not get here!");
+ }
+ if (!fileNames.Contains(p.FileName)) {
+ fileNames.Add(p.FileName);
+ files.Add(p.FileName, new List());
+ }
+ if (!files[p.FileName].Contains(p)) {
+ files[p.FileName].Add(p);
+ }
+ }
+
+ fileNames.Sort();
+
+ ToolStripItem[] items =
+ new ToolStripItem[fileNames.Count + additionalItems];
+ ToolStripMenuItem containerItem = null;
+ MenuCommand cmd = null;
+ int i = 0;
+
+ foreach (string fname in fileNames) {
+
+ // create a menu bucket
+ containerItem = new ToolStripMenuItem();
+ containerItem.Text = System.IO.Path.GetFileName(fname);
+ containerItem.ToolTipText = fname;
+
+ // sort and populate the bucket's contents
+// files[fname].Sort();
+ foreach(INavigationPoint p in files[fname]) {
+ cmd = new MenuCommand(p.Description, new EventHandler(NavigateTo));
+ cmd.Tag = p;
+ containerItem.DropDownItems.Add(cmd);
+ }
+
+ // if there's only one nested item, add it
+ // to the result directly, ignoring the bucket
+// if (containerItem.DropDownItems.Count==1) {
+// items[i] = containerItem.DropDownItems[0];
+// items[i].Text = ((INavigationPoint)items[i].Tag).FullDescription;
+// i++;
+// } else {
+// // add the bucket to the result
+// items[i++] = containerItem;
+// }
+ // add the bucket to the result
+ items[i++] = containerItem;
+ }
+
+ return items;
+ }
+
+ public ToolStripItem[] BuildSubmenu(Codon codon, object owner)
+ {
+ MenuCommand cmd = null;
+ if (NavigationService.CanNavigateBack || NavigationService.CanNavigateForwards) {
+ List points = NavigationService.GetListOfPoints();
+
+ //ToolStripItem[] items = BuildMenuFlat(points, numberOfAdditionalItems);
+ ToolStripItem[] items = BuildMenuByFile(points, numberOfAdditionalItems);
+
+ int i = items.Length - numberOfAdditionalItems;
+
+ // additional item 1
+ items[i++] = new ToolStripSeparator();
+
+ // additional item 2
+ cmd = new MenuCommand("Clear Navigation History", new EventHandler(ClearHistory));
+ items[i++] = cmd;
+
+ return items;
+ }
+
+ // default is to disable the dropdown feature...
+ return null;
+ }
+
+ int numberOfAdditionalItems = 2;
+
+ public void NavigateTo(object sender, EventArgs e)
+ {
+ MenuCommand item = (MenuCommand)sender;
+ NavigationService.Go((INavigationPoint)item.Tag);
+ }
+
+ public void ClearHistory(object sender, EventArgs e)
+ {
+ NavigationService.ClearHistory();
+ }
+ }
+
public class RecentFilesMenuBuilder : ISubmenuBuilder
{
public ToolStripItem[] BuildSubmenu(Codon codon, object owner)
diff --git a/src/Main/Base/Project/Src/Commands/NavigationCommands.cs b/src/Main/Base/Project/Src/Commands/NavigationCommands.cs
new file mode 100644
index 0000000000..3603ab36d8
--- /dev/null
+++ b/src/Main/Base/Project/Src/Commands/NavigationCommands.cs
@@ -0,0 +1,83 @@
+/*
+ * Created by SharpDevelop.
+ * User: David
+ * Date: 29/06/2006
+ * Time: 12:36 PM
+ *
+ * To change this template use Tools | Options | Coding | Edit Standard Headers.
+ */
+
+using System;
+using System.Windows.Forms;
+using ICSharpCode.Core;
+
+namespace ICSharpCode.SharpDevelop.Commands
+{
+ public class NavigateBack : AbstractMenuCommand
+ {
+ ToolBarSplitButton splitButton = null;
+
+ public override bool IsEnabled {
+ get {
+ UpdateEnabledState();
+ return NavigationService.CanNavigateBack;
+ }
+ }
+
+ public override void Run()
+ {
+ //LoggingService.Debug("Jumping back...");
+ NavigationService.Go(-1);
+ }
+
+ protected override void OnOwnerChanged(EventArgs e)
+ {
+ base.OnOwnerChanged(e);
+
+ // grab the owner so we can manipulate the buttons later
+ splitButton = (ToolBarSplitButton)Owner;
+
+ // wire up our event handlers
+ NavigationService.HistoryChanged += NavHistoryChanged;
+
+ // trigger state change to match initial state
+ NavHistoryChanged(this, EventArgs.Empty);
+ }
+
+ public void NavHistoryChanged(object sender, EventArgs e)
+ {
+ INavigationPoint p = NavigationService.CurrentPosition;
+// LoggingService.DebugFormatted("NavHistoryChanged ({0}): {1}",
+// NavigationService.Count,
+// (p==null?"null":p.ToString()));
+
+ UpdateEnabledState();
+ }
+
+ public void UpdateEnabledState()
+ {
+ splitButton.ButtonEnabled = NavigationService.CanNavigateBack;
+ splitButton.DropDownEnabled = NavigationService.Count>1;
+ }
+ }
+
+ public class NavigateForward : AbstractMenuCommand
+ {
+ public override bool IsEnabled {
+ get {
+ return NavigationService.CanNavigateForwards;
+ }
+ }
+
+ public override void Run()
+ {
+ //LoggingService.Debug("Jumping forwards...");
+ NavigationService.Go(+1);
+ }
+
+ protected override void OnOwnerChanged(EventArgs e)
+ {
+ base.OnOwnerChanged(e);
+ }
+ }
+}
diff --git a/src/Main/Base/Project/Src/Gui/AbstractViewContent.cs b/src/Main/Base/Project/Src/Gui/AbstractViewContent.cs
index 8cc41cf19e..94a9a10b6b 100644
--- a/src/Main/Base/Project/Src/Gui/AbstractViewContent.cs
+++ b/src/Main/Base/Project/Src/Gui/AbstractViewContent.cs
@@ -10,6 +10,8 @@ using System.Collections.Generic;
using System.IO;
using System.Windows.Forms;
+using ICSharpCode.Core;
+
namespace ICSharpCode.SharpDevelop.Gui
{
public abstract class AbstractViewContent : AbstractBaseViewContent, IViewContent
@@ -47,7 +49,7 @@ namespace ICSharpCode.SharpDevelop.Gui
FileName = fileName;
IsDirty = false;
}
-
+
public event EventHandler FileNameChanged;
protected virtual void OnFileNameChanged(EventArgs e)
@@ -107,7 +109,7 @@ namespace ICSharpCode.SharpDevelop.Gui
isViewOnly = value;
}
}
-
+
///
/// Gets the list of secondary view contents attached to this view content.
///
@@ -134,6 +136,11 @@ namespace ICSharpCode.SharpDevelop.Gui
throw new System.NotImplementedException();
}
+ public virtual INavigationPoint BuildNavPoint()
+ {
+ return new DefaultNavigationPoint(this.FileName);
+ }
+
public event EventHandler TitleNameChanged;
public event EventHandler Saving;
public event SaveEventHandler Saved;
@@ -200,8 +207,8 @@ namespace ICSharpCode.SharpDevelop.Gui
if (DirtyChanged != null) {
DirtyChanged(this, e);
}
- }
+ }
+ #endregion
#endregion
- #endregion
}
}
diff --git a/src/Main/Base/Project/Src/Gui/BrowserDisplayBinding/HtmlViewPane.cs b/src/Main/Base/Project/Src/Gui/BrowserDisplayBinding/HtmlViewPane.cs
index f16b46e156..6ee75368cc 100644
--- a/src/Main/Base/Project/Src/Gui/BrowserDisplayBinding/HtmlViewPane.cs
+++ b/src/Main/Base/Project/Src/Gui/BrowserDisplayBinding/HtmlViewPane.cs
@@ -102,6 +102,14 @@ namespace ICSharpCode.SharpDevelop.BrowserDisplayBinding
else
TitleName = title;
}
+
+ // TODO: Navigation - implement browser navigation points?
+ public override INavigationPoint BuildNavPoint()
+ {
+ // returning null disables navigation for this IViewContent as
+ // requests to log null points are ignored.
+ return null;
+ }
}
public class HtmlViewPane : UserControl
diff --git a/src/Main/Base/Project/Src/Gui/ContentInterfaces/IPositionable.cs b/src/Main/Base/Project/Src/Gui/ContentInterfaces/IPositionable.cs
index 10db62047c..f03df074c6 100644
--- a/src/Main/Base/Project/Src/Gui/ContentInterfaces/IPositionable.cs
+++ b/src/Main/Base/Project/Src/Gui/ContentInterfaces/IPositionable.cs
@@ -10,7 +10,7 @@ namespace ICSharpCode.SharpDevelop.Gui
///
/// If a IViewContent object is from the type IPositionable it signals
/// that it's a texteditor which could set the caret to a position inside
- /// a file.
+ /// a file.
///
public interface IPositionable
{
@@ -19,5 +19,19 @@ namespace ICSharpCode.SharpDevelop.Gui
/// And pos.X is the column (starting from 0 too).
///
void JumpTo(int line, int column);
+
+ ///
+ /// gets the 'caret' position line (starting from 0)
+ ///
+ int Line {
+ get;
+ }
+
+ ///
+ /// gets the 'caret' position column (starting from 0)
+ ///
+ int Column {
+ get;
+ }
}
}
diff --git a/src/Main/Base/Project/Src/Gui/IViewContent.cs b/src/Main/Base/Project/Src/Gui/IViewContent.cs
index 6bfa870f77..9511d59d32 100644
--- a/src/Main/Base/Project/Src/Gui/IViewContent.cs
+++ b/src/Main/Base/Project/Src/Gui/IViewContent.cs
@@ -9,6 +9,8 @@ using System;
using System.Collections.Generic;
using System.Windows.Forms;
+using ICSharpCode.Core;
+
namespace ICSharpCode.SharpDevelop.Gui
{
public delegate void SaveEventHandler(object sender, SaveEventArgs e);
@@ -109,6 +111,11 @@ namespace ICSharpCode.SharpDevelop.Gui
///
void Load(string fileName);
+ ///
+ /// Builds an for the current position.
+ ///
+ INavigationPoint BuildNavPoint();
+
///
/// Is called each time the name for the content has changed.
///
diff --git a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserControl.cs b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserControl.cs
index c2a6fa7a4b..3b0e23551b 100644
--- a/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserControl.cs
+++ b/src/Main/Base/Project/Src/Gui/Pads/ProjectBrowser/ProjectBrowserControl.cs
@@ -222,7 +222,7 @@ namespace ICSharpCode.SharpDevelop.Project
TreeNode FindDeepestOpenNodeForPath(string fileName)
{
- LoggingService.DebugFormatted("Finding Deepest for '{0}'", fileName);
+ //LoggingService.DebugFormatted("Finding Deepest for '{0}'", fileName);
Solution solution = ProjectService.OpenSolution;
if (solution == null) {
return null;
@@ -230,7 +230,7 @@ namespace ICSharpCode.SharpDevelop.Project
IProject project = solution.FindProjectContainingFile(fileName);
if (project == null) {
- LoggingService.Debug("no IProject found");
+ //LoggingService.Debug("no IProject found");
return null;
}
@@ -282,18 +282,18 @@ namespace ICSharpCode.SharpDevelop.Project
if (!targetNode.IsExpanded) {
// the targetNode is not expanded so it's as deep as we can go
- LoggingService.DebugFormatted("target node '{0};{1}' is not expanded.", targetNode, targetNode.Text);
+ //LoggingService.DebugFormatted("target node '{0};{1}' is not expanded.", targetNode, targetNode.Text);
return targetNode;
}
- LoggingService.Debug("entering depth loop...");
- LoggingService.DebugFormatted(@"\- looking for '{0}'", relativePath);
- LoggingService.DebugFormatted(@"\- starting at '{0}'", targetNode != null ? targetNode.Text : "null");
+ //LoggingService.Debug("entering depth loop...");
+ //LoggingService.DebugFormatted(@"\- looking for '{0}'", relativePath);
+ //LoggingService.DebugFormatted(@"\- starting at '{0}'", targetNode != null ? targetNode.Text : "null");
string[] targets = relativePath.Trim('/','\\').Split('/', '\\');
TreeNode nextNode = null;
foreach (string target in targets) {
- LoggingService.Debug("-- looking for: "+target);
+ //LoggingService.Debug("-- looking for: "+target);
nextNode = null;
foreach (TreeNode node in targetNode.Nodes) {
if (node == null) {
@@ -347,22 +347,6 @@ namespace ICSharpCode.SharpDevelop.Project
}
return null;
}
-
- // TODO: remove this debug code
-// void LogTreeViewPaths(TreeNodeCollection nodes, int depth)
-// {
-// System.Text.StringBuilder sb = null;
-//
-// foreach (TreeNode node in nodes) {
-// sb = new System.Text.StringBuilder();
-// for(int i = 0; i
+ /// Tests the for the presence of points
+ /// to jump back to.
+ ///
+ ///
+ /// <Condition name = "CanNavigateBack" >
+ ///
+ public class CanNavigateBackConditionEvaluator : IConditionEvaluator
+ {
+ public bool IsValid(object caller, Condition condition)
+ {
+ return NavigationService.CanNavigateBack || NavigationService.CanNavigateForwards;
+ }
+ }
+
+ ///
+ /// Tests the for the presence of points
+ /// to jump forward to.
+ ///
+ ///
+ /// <Condition name = "CanNavigateForward" >
+ ///
+ public class CanNavigateForwardConditionEvaluator : IConditionEvaluator
+ {
+ public bool IsValid(object caller, Condition condition)
+ {
+ return NavigationService.CanNavigateForwards;
+ }
+ }
+}
diff --git a/src/Main/Base/Project/Src/Services/File/FileService.cs b/src/Main/Base/Project/Src/Services/File/FileService.cs
index d18e3a3902..94cbb088bf 100644
--- a/src/Main/Base/Project/Src/Services/File/FileService.cs
+++ b/src/Main/Base/Project/Src/Services/File/FileService.cs
@@ -225,9 +225,11 @@ namespace ICSharpCode.Core
}
IViewContent content = window.ViewContent;
if (content is IPositionable) {
+ // TODO: enable jumping to a particular view
window.SwitchView(0);
((IPositionable)content).JumpTo(Math.Max(0, line), Math.Max(0, column));
}
+ NavigationService.Log(content.BuildNavPoint());
return content;
}
@@ -274,6 +276,13 @@ namespace ICSharpCode.Core
}
}
+ public static void OnJumpedToFilePosition(string fileName)
+ {
+ if (JumpedToFilePosition != null) {
+ JumpedToFilePosition(null, new FileEventArgs(fileName, false));
+ }
+ }
+
public static event EventHandler FileRenaming;
public static event EventHandler FileRenamed;
@@ -282,5 +291,7 @@ namespace ICSharpCode.Core
public static event EventHandler FileReplacing;
public static event EventHandler FileReplaced;
+
+ public static event EventHandler JumpedToFilePosition;
}
}
diff --git a/src/Main/Base/Project/Src/Services/NavigationService/DefaultNavigationPoint.cs b/src/Main/Base/Project/Src/Services/NavigationService/DefaultNavigationPoint.cs
new file mode 100644
index 0000000000..f95fd17320
--- /dev/null
+++ b/src/Main/Base/Project/Src/Services/NavigationService/DefaultNavigationPoint.cs
@@ -0,0 +1,130 @@
+//
+//
+//
+//
+// $Revision: $
+//
+
+using System;
+using System.Drawing;
+
+namespace ICSharpCode.Core
+{
+ ///
+ /// Default implementation for classes that wrap Navigational
+ /// information for the .
+ ///
+ public class DefaultNavigationPoint : INavigationPoint
+ {
+ string fileName;
+ object data;
+
+ #region constructor
+ public DefaultNavigationPoint() : this(String.Empty, null) {}
+ public DefaultNavigationPoint(string fileName) : this(fileName, null) {}
+ public DefaultNavigationPoint(string fileName, object data)
+ {
+ this.fileName = fileName;
+ this.data = data;
+ }
+ #endregion
+
+ #region overrides
+ public override string ToString()
+ {
+ return String.Format("[{0}: {1}]",
+ this.GetType().Name,
+ this.Description);
+ }
+ #endregion
+
+ #region INavigationPoint implementation
+ public virtual string FileName {
+ get {
+ return fileName;
+ }
+ }
+
+ public virtual string Description {
+ get {
+ return String.Format("{0}: {1}", fileName, data);
+ }
+ }
+
+ public virtual string FullDescription {
+ get {
+ return Description;
+ }
+ }
+
+ public virtual string ToolTip {
+ get {
+ return Description;
+ }
+ }
+// public string TabName {
+// get {
+// return tabName;
+// }
+// }
+
+ public virtual int Index {
+ get {
+ return 0;
+ }
+ }
+
+ public object NavigationData {
+ get {
+ return data;
+ }
+ set {
+ data = value;
+ }
+ }
+
+ public virtual void JumpTo()
+ {
+ FileService.JumpToFilePosition(this.FileName, 0, 0);
+ }
+
+ public void FileNameChanged(string newName)
+ {
+ fileName = newName;
+ }
+
+ public virtual void ContentChanging(object sender, EventArgs e)
+ {
+ //throw new NotImplementedException();
+ }
+ #endregion
+
+ #region IComparable
+ public virtual int CompareTo(object obj)
+ {
+ if (this.GetType() != obj.GetType()) {
+ return this.GetType().Name.CompareTo(obj.GetType().Name);
+ }
+ DefaultNavigationPoint b = obj as DefaultNavigationPoint;
+ return this.FileName.CompareTo(b.FileName);
+ }
+
+ #endregion
+
+ #region Equality
+
+ public override bool Equals(object obj)
+ {
+ DefaultNavigationPoint b = obj as DefaultNavigationPoint;
+ if (b == null) return false;
+ return this.FileName == b.FileName;
+ }
+
+ public override int GetHashCode()
+ {
+ return this.FileName.GetHashCode();
+ }
+ #endregion
+ }
+}
+
diff --git a/src/Main/Base/Project/Src/Services/NavigationService/INavigationPoint.cs b/src/Main/Base/Project/Src/Services/NavigationService/INavigationPoint.cs
new file mode 100644
index 0000000000..589fb548f6
--- /dev/null
+++ b/src/Main/Base/Project/Src/Services/NavigationService/INavigationPoint.cs
@@ -0,0 +1,85 @@
+//
+//
+//
+//
+// $Revision: $
+//
+
+using System;
+
+namespace ICSharpCode.Core
+{
+ ///
+ /// Interface for classes that store Navigational information for
+ /// the .
+ ///
+ public interface INavigationPoint : IComparable
+ {
+ ///
+ /// The path to the file containing the
+ ///
+ string FileName {
+ get;
+ }
+
+ ///
+ /// Gets the text that will appear in the drop-down menu to select
+ /// this .
+ ///
+ string Description {
+ get;
+ }
+
+ ///
+ /// Gets more detailed text that cam be used to describe
+ /// this .
+ ///
+ string FullDescription {
+ get;
+ }
+
+ string ToolTip {
+ get;
+ }
+
+// ///
+// ///
+// ///
+// string TabName {
+// get;
+// }
+
+ ///
+ /// Gets the specific data, if any, needed to
+ /// navigate to this .
+ ///
+ object NavigationData {
+ get;
+ }
+
+ int Index {
+ get;
+ }
+
+ ///
+ /// Navigates to this .
+ ///
+ void JumpTo();
+
+ ///
+ /// Updates the .
+ ///
+ ///
+ void FileNameChanged(string newName);
+
+ ///
+ /// Responsible for updating the internal data of the
+ /// to synch it with
+ /// changes in the IViewContent containing the point.
+ ///
+ ///
+ ///
+ void ContentChanging(object sender, EventArgs e);
+ }
+}
+
diff --git a/src/Main/Base/Project/Src/Services/NavigationService/NavigationService.cs b/src/Main/Base/Project/Src/Services/NavigationService/NavigationService.cs
new file mode 100644
index 0000000000..4cc21ace09
--- /dev/null
+++ b/src/Main/Base/Project/Src/Services/NavigationService/NavigationService.cs
@@ -0,0 +1,317 @@
+/*
+ * Created by SharpDevelop.
+ * User: David
+ * Date: 23/06/2006
+ * Time: 12:14 AM
+ *
+ * To change this template use Tools | Options | Coding | Edit Standard Headers.
+ */
+
+using System;
+using System.Collections.Generic;
+
+using ICSharpCode.SharpDevelop.Gui;
+using ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor;
+using ICSharpCode.TextEditor;
+
+namespace ICSharpCode.Core
+{
+
+ ///
+ /// Provides the infrastructure to handle generalized code navigation.
+ ///
+ ///
+ /// This service is not limited to navigating code; rather, it
+ /// integrates with SharpDevelop's extendable
+ /// interface so that each window has the opportunity to implement a
+ /// contextually appropriate navigation scheme.
+ /// The default scheme, , is
+ /// created automatically in the
+ /// implementation. This scheme supports the basic function of logging a
+ /// filename and returning to that file's default view.
+ /// The default text editor provides a slightly more sophisticated
+ /// scheme,
+ /// TextEditorNavigationPoint, that logs filename and line number.
+ /// To implement your own navigation scheme, implement
+ /// or derive from
+ /// and override the
+ /// BuildNavigationPoint
+ /// method.
+ ///
+ /// History logic based in part on Orlando Curioso's Code Project article:
+ ///
+ /// Navigational history (go back/forward) for WinForms controls
+ ///
+ ///
+ public class NavigationService
+ {
+ #region Private members
+ static LinkedList history;
+ static LinkedListNode currentNode;
+ static bool loggingSuspended;
+ #endregion
+
+ static NavigationService()
+ {
+ history = new LinkedList();
+ currentNode = null;
+ loggingSuspended = false;
+
+ WorkbenchSingleton.WorkbenchCreated += WorkbenchCreatedHandler;
+ FileService.FileRenamed += FileService_FileRenamed;
+ }
+
+ #region Public Properties
+
+ public static bool CanNavigateBack {
+ get { return currentNode != history.First && currentNode != null;}
+ }
+ public static bool CanNavigateForwards {
+ get {return currentNode != history.Last && currentNode != null;}
+ }
+ public static int Count {
+ get { return history.Count; }
+ }
+
+ public static INavigationPoint CurrentPosition {
+ get {
+ return currentNode==null ? (INavigationPoint)null : currentNode.Value;
+ }
+ set {
+ Log(value);
+ }
+ }
+
+ public static bool IsLogging {
+ get { return !loggingSuspended;}
+ }
+ #endregion
+
+ #region Public Methods
+
+ public static void ContentChanging(object sender, EventArgs e)
+ {
+ foreach (INavigationPoint p in history)
+ {
+ p.ContentChanging(sender, e);
+ }
+ }
+
+ #region private helpers
+ static void Log(IWorkbenchWindow window)
+ {
+ if (window==null) return;
+ // TODO: Navigation - enable logging of subpanes via window.ActiveViewContent
+ Log(window.ViewContent);
+ }
+
+ static void Log(IViewContent vc)
+ {
+ if (vc==null) return;
+ Log(vc.BuildNavPoint());
+ }
+ #endregion
+
+ public static void Log(INavigationPoint p)
+ {
+ if (loggingSuspended) {
+ return;
+ }
+ LogInternal(p);
+ }
+
+ // refactoring this out of Log() allows the NavigationService
+ // to call this and ensure it will work regardless of the
+ // requested state of loggingSuspended
+ private static void LogInternal(INavigationPoint p)
+ {
+ if (p == null
+ || p.FileName==null) { // HACK: why/how do we get here?
+ return;
+ }
+ if (currentNode==null) {
+ currentNode = history.AddFirst(p);
+ } else if (p.Equals(currentNode.Value)) {
+ // replace it
+ currentNode.Value = p;
+ } else {
+ currentNode = history.AddAfter(currentNode, p);
+ }
+ OnHistoryChanged();
+ }
+
+ // untested
+ public static INavigationPoint Log()
+ {
+// IWorkbenchWindow window = WorkbenchSingleton.Workbench.ActiveWorkbenchWindow;
+// if (window == null) {
+// return null;
+// }
+//
+// IViewContent view = window.ViewContent;
+// if (view == null) {
+// return null;
+// }
+//
+// return view.BuildNavPoint();
+ return null;
+ }
+
+ public static List GetListOfPoints()
+ {
+ return new List(history);
+ }
+
+ public static void ClearHistory()
+ {
+ ClearHistory(false);
+ }
+
+ public static void ClearHistory(bool clearCurrentPosition)
+ {
+ INavigationPoint currentPosition = CurrentPosition;
+ history.Clear();
+ currentNode = null;
+ if (!clearCurrentPosition) {
+ LogInternal(currentPosition);
+ }
+ OnHistoryChanged();
+ }
+
+ public static void Go(int n)
+ {
+ if (0 == n) {
+ return;
+ } else if (0>n) {
+ // move backwards
+ while (0>n && currentNode!=history.First) {
+ currentNode = currentNode.Previous;
+ n++;
+ }
+ } else {
+ // move forwards
+ while (0 targetNode;
+ targetNode = history.Find(target);
+ if (targetNode!=null) {
+ currentNode = targetNode;
+ } else {
+ LoggingService.ErrorFormatted("Logging additional point: {0}", target);
+ LogInternal(target);
+ //currentNode = history.AddAfter(currentNode, target);
+ }
+
+ SyncViewWithModel();
+ }
+
+ private static void SyncViewWithModel()
+ {
+ //LoggingService.Info("suspend logging");
+ SuspendLogging();
+ if (CurrentPosition!=null) {
+ CurrentPosition.JumpTo();
+ }
+ //LoggingService.Info("resume logging");
+ ResumeLogging();
+ }
+
+
+
+ public static void SuspendLogging()
+ {
+ loggingSuspended = true;
+ }
+ public static void ResumeLogging()
+ {
+ // ENH: possible enhancement: use int instead of bool so resume statements are incremental rather than definitive.
+ loggingSuspended = false;
+ }
+
+ #endregion
+
+ // the following code is not covered by Unit tests as i wasn't sure
+ // how to test code triggered by the user interacting with the workbench
+ #region event trapping
+
+ #region ViewContent events
+ public static void WorkbenchCreatedHandler(object sender, EventArgs e)
+ {
+ WorkbenchSingleton.Workbench.ViewOpened +=
+ new ViewContentEventHandler(ViewContentOpened);
+ WorkbenchSingleton.Workbench.ViewClosed +=
+ new ViewContentEventHandler(ViewContentClosed);
+ }
+
+ static void ViewContentOpened(object sender, ViewContentEventArgs e)
+ {
+ //Log(e.Content);
+ e.Content.WorkbenchWindow.WindowSelected += WorkBenchWindowSelected;
+ }
+
+ static void ViewContentClosed(object sender, ViewContentEventArgs e)
+ {
+ e.Content.WorkbenchWindow.WindowSelected -= WorkBenchWindowSelected;
+ }
+
+ static IWorkbenchWindow lastSelectedWindow = null;
+ static void WorkBenchWindowSelected(object sender, EventArgs e)
+ {
+ try {
+ IWorkbenchWindow window = sender as IWorkbenchWindow;
+ if (window == lastSelectedWindow) {
+ return;
+ }
+ int n = NavigationService.Count;
+ Log(window);
+ //LoggingService.DebugFormatted("WorkbenchSelected: logging {0}", window.Title);
+
+ // HACK: Navigation - for some reason, JumpToFilePosition returns _before_ this
+ // gets fired, (not the behaviour i expected) so we need to remember the
+ // previous selected window to ensure that we only log once per visit to
+ // a given window.
+ lastSelectedWindow = window;
+
+ } catch (Exception ex) {
+ LoggingService.ErrorFormatted("{0}:\n{1}",ex.Message, ex.StackTrace);
+ }
+ }
+ #endregion
+
+ static void FileService_FileRenamed(object sender, FileRenameEventArgs e)
+ {
+ foreach (INavigationPoint p in history) {
+ if (p.FileName.Equals(e.SourceFile)) {
+ p.FileNameChanged(e.TargetFile);
+ }
+ }
+ }
+
+ #endregion
+
+
+ #region Public Events
+ public static event System.EventHandler HistoryChanged;
+
+ public static void OnHistoryChanged()
+ {
+ if (HistoryChanged!=null) {
+ HistoryChanged(NavigationService.CurrentPosition, EventArgs.Empty);
+ }
+ }
+ #endregion
+ }
+}
diff --git a/src/Main/Base/Project/Src/TextEditor/Gui/Editor/TextEditorDisplayBinding.cs b/src/Main/Base/Project/Src/TextEditor/Gui/Editor/TextEditorDisplayBinding.cs
index 3f24f2edec..7073384acb 100644
--- a/src/Main/Base/Project/Src/TextEditor/Gui/Editor/TextEditorDisplayBinding.cs
+++ b/src/Main/Base/Project/Src/TextEditor/Gui/Editor/TextEditorDisplayBinding.cs
@@ -188,6 +188,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
textAreaControl.Document.DocumentChanged += new DocumentEventHandler(TextAreaChangedEvent);
textAreaControl.ActiveTextAreaControl.Caret.CaretModeChanged += new EventHandler(CaretModeChanged);
textAreaControl.ActiveTextAreaControl.Enter += new EventHandler(CaretUpdate);
+ textAreaControl.ActiveTextAreaControl.Caret.PositionChanged += CaretUpdate;
// KSL Start, New lines
// textAreaControl.FileNameChanged += new EventHandler(FileNameChangedEvent);
@@ -281,6 +282,7 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
void TextAreaChangedEvent(object sender, DocumentEventArgs e)
{
IsDirty = true;
+ NavigationService.ContentChanging(this.textAreaControl, e);
}
public override void RedrawContent()
@@ -391,6 +393,19 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
// textAreaControl.Refresh();
}
+ Point GetTextAreaPosition()
+ {
+ return textAreaControl.Document.OffsetToPosition(textAreaControl.ActiveTextAreaControl.Caret.Offset);
+ }
+
+ public override INavigationPoint BuildNavPoint()
+ {
+ int lineNumber = this.Line;
+ LineSegment lineSegment = textAreaControl.Document.GetLineSegment(lineNumber);
+ string txt = textAreaControl.Document.GetText(lineSegment);
+ return new TextNavigationPoint(this.FileName, lineNumber, this.Column, txt);
+ }
+
void CaretUpdate(object sender, EventArgs e)
{
CaretChanged(null, null);
@@ -399,15 +414,15 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
void CaretChanged(object sender, EventArgs e)
{
- Point pos = textAreaControl.Document.OffsetToPosition(textAreaControl.ActiveTextAreaControl.Caret.Offset);
+ Point pos = GetTextAreaPosition();
LineSegment line = textAreaControl.Document.GetLineSegment(pos.Y);
StatusBarService.SetCaretPosition(pos.X + 1, pos.Y + 1, textAreaControl.ActiveTextAreaControl.Caret.Offset - line.Offset + 1);
+ NavigationService.Log(this.BuildNavPoint());
}
void CaretModeChanged(object sender, EventArgs e)
{
-
StatusBarService.SetInsertMode(textAreaControl.ActiveTextAreaControl.Caret.CaretMode == CaretMode.InsertMode);
}
@@ -423,11 +438,27 @@ namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
base.TitleName = Path.GetFileName(value);
}
}
+
+ #region IPositionable implementation
public void JumpTo(int line, int column)
{
textAreaControl.ActiveTextAreaControl.JumpTo(line, column);
}
+ public int Line {
+ get {
+ return textAreaControl.ActiveTextAreaControl.Caret.Line;
+ }
+ }
+
+ public int Column {
+ get {
+ return textAreaControl.ActiveTextAreaControl.Caret.Column;
+ }
+ }
+
+ #endregion
+
public void ForceFoldingUpdate()
{
if (textAreaControl.TextEditorProperties.EnableFolding) {
diff --git a/src/Main/Base/Project/Src/TextEditor/Gui/Editor/TextEditorNavigationPoint.cs b/src/Main/Base/Project/Src/TextEditor/Gui/Editor/TextEditorNavigationPoint.cs
new file mode 100644
index 0000000000..7ac9f22d5d
--- /dev/null
+++ b/src/Main/Base/Project/Src/TextEditor/Gui/Editor/TextEditorNavigationPoint.cs
@@ -0,0 +1,62 @@
+/*
+ * Created by SharpDevelop.
+ * User: David
+ * Date: 23/04/2006
+ * Time: 11:47 AM
+ *
+ * To change this template use Tools | Options | Coding | Edit Standard Headers.
+ */
+
+using System;
+using System.Drawing;
+
+using ICSharpCode.Core;
+
+namespace ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor
+{
+ ///
+ /// Description of TextEditorNavigationPoint.
+ ///
+ public class TextEditorNavigationPoint : DefaultNavigationPoint
+ {
+ public TextEditorNavigationPoint(string fileName, int line, int col) :
+ base(fileName, new Point(col, line)) {}
+
+ public int Line {
+ get {
+ return ((Point)base.NavigationData).Y;
+ }
+
+ }
+
+ public override string Description {
+ get {
+ return String.Format("{0}: {1}", this.FileName, this.Line);
+ }
+ }
+
+ public override int Index {
+ get {
+ return this.Line;
+ }
+ }
+
+ public override bool Equals(object obj)
+ {
+ TextEditorNavigationPoint b = obj as TextEditorNavigationPoint;
+ if (b == null) return false;
+ return b.FileName == this.FileName && b.Line == this.Line;
+ }
+
+ public override int GetHashCode()
+ {
+ return base.GetHashCode() ^ this.Line;
+ }
+
+ public override void JumpTo()
+ {
+ Point p = (Point)this.NavigationData;
+ FileService.JumpToFilePosition(this.FileName, p.Y, p.X);
+ }
+ }
+}
diff --git a/src/Main/Base/Project/Src/TextEditor/Gui/Editor/TextNavigationPoint.cs b/src/Main/Base/Project/Src/TextEditor/Gui/Editor/TextNavigationPoint.cs
new file mode 100644
index 0000000000..04fa9720c2
--- /dev/null
+++ b/src/Main/Base/Project/Src/TextEditor/Gui/Editor/TextNavigationPoint.cs
@@ -0,0 +1,116 @@
+/*
+ * Created by SharpDevelop.
+ * User: David
+ * Date: 06/07/2006
+ * Time: 12:40 PM
+ *
+ * To change this template use Tools | Options | Coding | Edit Standard Headers.
+ */
+
+using System;
+using System.Drawing;
+using System.IO;
+
+using ICSharpCode.Core;
+
+namespace ICSharpCode.TextEditor.Document
+{
+ ///
+ /// Description of TextNavigationPoint.
+ ///
+ public class TextNavigationPoint : DefaultNavigationPoint
+ {
+ const int THREASHOLD = 5;
+
+ #region constructor
+ public TextNavigationPoint() : this(String.Empty, 0, 0) {}
+ public TextNavigationPoint(string fileName) : this(fileName, 0, 0) {}
+ public TextNavigationPoint(string fileName, int lineNumber, int column) : this(fileName, lineNumber, column, String.Empty) {}
+ public TextNavigationPoint(string fileName, int lineNumber, int column, string content) : base(fileName, new Point(column, lineNumber))
+ {
+ this.content = content;
+ }
+ #endregion
+
+ // TODO: Navigation - eventually, we'll store a reference to the document
+ // itself so we can track filename changes, inserts (that affect
+ // line numbers), and dynamically retrieve the text at this.lineNumber
+ //
+ // what happens to the doc reference when the document is closed?
+ //
+ string content;
+
+ public int LineNumber {
+ get {return ((Point)this.NavigationData).Y;}
+ }
+
+ public int Column {
+ get {return ((Point)this.NavigationData).X;}
+ }
+
+ public override void JumpTo()
+ {
+ FileService.JumpToFilePosition(this.FileName,
+ this.LineNumber,
+ this.Column);
+ }
+
+ public override void ContentChanging(object sender, EventArgs e)
+ {
+ // TODO: Navigation - finish ContentChanging
+// if (e is DocumentEventArgs) {
+// DocumentEventArgs de = (DocumentEventArgs)e;
+// if (this.LineNumber >=
+// }
+ }
+
+ #region IComparable
+ public override int CompareTo(object obj)
+ {
+ int result = base.CompareTo(obj);
+ if (0!=result) {
+ return result;
+ }
+ TextNavigationPoint b = obj as TextNavigationPoint;
+ if (this.LineNumber==b.LineNumber) {
+ return 0;
+ } else if (this.LineNumber>b.LineNumber) {
+ return 1;
+ } else {
+ return -1;
+ }
+ }
+ #endregion
+
+ #region Equality
+ public override bool Equals(object obj)
+ {
+ TextNavigationPoint b = obj as TextNavigationPoint;
+ if (b==null) return false;
+ return this.FileName.Equals(b.FileName)
+ && (Math.Abs(this.LineNumber - b.LineNumber)<=THREASHOLD);
+ }
+
+ public override int GetHashCode()
+ {
+ return this.FileName.GetHashCode() ^ this.LineNumber.GetHashCode();
+ }
+ #endregion
+
+ public override string Description {
+ get {
+ return String.Format("{0}: {1}",
+ this.LineNumber,
+ this.content);
+ }
+ }
+
+ public override string FullDescription {
+ get {
+ return String.Format("{0} - {1}",
+ Path.GetFileName(this.FileName),
+ this.Description);
+ }
+ }
+ }
+}
diff --git a/src/Main/Base/Test/ICSharpCode.SharpDevelop.Tests.csproj b/src/Main/Base/Test/ICSharpCode.SharpDevelop.Tests.csproj
index 53ac39d952..1de7300d16 100644
--- a/src/Main/Base/Test/ICSharpCode.SharpDevelop.Tests.csproj
+++ b/src/Main/Base/Test/ICSharpCode.SharpDevelop.Tests.csproj
@@ -84,6 +84,9 @@
+
+
+
@@ -120,6 +123,7 @@
+
\ No newline at end of file
diff --git a/src/Main/Base/Test/Services_Navigation/INavigationPointTextFixture.cs b/src/Main/Base/Test/Services_Navigation/INavigationPointTextFixture.cs
new file mode 100644
index 0000000000..704853f59e
--- /dev/null
+++ b/src/Main/Base/Test/Services_Navigation/INavigationPointTextFixture.cs
@@ -0,0 +1,114 @@
+/*
+ * Created by SharpDevelop.
+ * User: David
+ * Date: 04/03/2006
+ * Time: 5:28 PM
+ *
+ * To change this template use Tools | Options | Coding | Edit Standard Headers.
+ */
+
+using System;
+using NUnit.Framework;
+
+using ICSharpCode.Core;
+
+namespace NavigationServiceTests
+{
+ [TestFixture]
+ public class INavigationPointTextFixture
+ {
+ INavigationPoint p1;
+ INavigationPoint p2;
+
+ [TestFixtureSetUp]
+ public void Init()
+ {
+ int line = 3;
+
+ p1 = new TestNavigationPoint("test1.cs", line);
+ p2 = new TestNavigationPoint("test2.cs", line+2);
+ }
+
+ [Test]
+ ///
+ /// A navigation point must store the filename of the file containing
+ /// them so that they can switch to the correct file, reopening it
+ /// if needed.
+ ///
+ public void FileNameTest()
+ {
+ Assert.AreNotEqual("test1.css", p1.FileName, "FileName differs: expected test1.cs, received "+p1.FileName);
+ Assert.AreEqual("test1.cs", p1.FileName);
+ }
+
+ [Test]
+ ///
+ /// A navigation point must remember whatever additional data is needed
+ /// to navigation to the appropriate view-position within that file.
+ ///
+ public void DataTagTest()
+ {
+ Assert.AreEqual(3, (int)p1.NavigationData);
+ }
+
+ [Test]
+ ///
+ /// A navigation point must provide a description of itself for the
+ /// menu subsystem (ie. for menu text).
+ ///
+ public void DescriptionTest()
+ {
+ Assert.AreNotEqual(String.Empty, p1.Description);
+ }
+
+ [Test]
+ ///
+ /// A navigation point must provide an index for sorting purposes.
+ ///
+ public void IndexTest()
+ {
+ Assert.AreNotEqual(null, p1.Description);
+ }
+
+ [Test]
+ ///
+ /// A navigation point must provide a tooltip for the menu system.
+ ///
+ public void ToolTipText()
+ {
+ Assert.AreNotEqual(String.Empty, p1.ToolTip);
+ }
+
+ [Test]
+ ///
+ /// A navigation point must take responsibility for restoring the
+ /// cursor to whatever state is "held" (i.e. "described by") it's data.
+ ///
+ public void JumpToTest()
+ {
+ TestNavigationPoint.CurrentTestPosition = null;
+ Assert.AreEqual(TestNavigationPoint.CurrentTestPosition, null);
+
+ p1.JumpTo();
+ Assert.AreEqual("test1.cs", TestNavigationPoint.CurrentTestPosition.FileName);
+ Assert.AreEqual(3, (int)TestNavigationPoint.CurrentTestPosition.NavigationData);
+
+ p2.JumpTo();
+ Assert.AreEqual("test2.cs", TestNavigationPoint.CurrentTestPosition.FileName);
+
+ }
+
+ [Test]
+ ///
+ /// A navigation point must take responsibility for evaluating equality tests.
+ ///
+ public void EqualityTest()
+ {
+ Assert.IsTrue(p1.Equals(p1));
+ Assert.IsFalse(p1.Equals(p2));
+ Assert.IsFalse(p1.Equals("not an INavigationPoint..."));
+
+ Assert.AreNotEqual(p1.GetHashCode(), p2.GetHashCode());
+ }
+ }
+}
diff --git a/src/Main/Base/Test/Services_Navigation/NavigationServiceTestFixture.cs b/src/Main/Base/Test/Services_Navigation/NavigationServiceTestFixture.cs
new file mode 100644
index 0000000000..c59e1674f4
--- /dev/null
+++ b/src/Main/Base/Test/Services_Navigation/NavigationServiceTestFixture.cs
@@ -0,0 +1,616 @@
+/*
+ * Created by SharpDevelop.
+ * User: David
+ * Date: 22/06/2006
+ * Time: 11:45 PM
+ *
+ * To change this template use Tools | Options | Coding | Edit Standard Headers.
+ */
+using System;
+using System.Collections.Generic;
+using NUnit.Framework;
+
+using ICSharpCode.Core;
+
+namespace NavigationServiceTests
+{
+ ///
+ /// Provides unit tests for the .
+ ///
+ ///
+ /// Code Navigation Requirements:
+ ///
+ /// #develop wiki:
+ ///
+ ///
+ /// - backwards & forwards through visited positions in the editor windows
+ ///
+ ///
+ /// Daniel Grunwald [sharpdevelop-contributors@lists.sourceforge.net]:
+ ///
+ ///
+ /// - includes back/forward command to reset the cursor position/active file
+ /// - saves class+method+line info of the cursor
+ /// - "undo" cursor position changes
+ /// - when adding a cursor position to the history, all other
+ /// cursor positions in the same method are removed
+ /// - the "navigate back" command would be a SplitButton in the toolbar
+ /// - the dropdown would show class+method names
+ ///
+ ///
+ ///
+ /// The Count and list of
+ /// points returned by
+ /// GetListOfPoints() are both assumed to contain the
+ /// CurrentPosition.
+ ///
+ /// As the current position is also exposed a property, clients can
+ /// then make the choice to include or exclude it when iterating over the
+ /// list of points.
+ ///
+ [TestFixture]
+ public class NavigationServiceTestFixture
+ {
+ #region private members
+ INavigationPoint p;
+ INavigationPoint p_5;
+ INavigationPoint p_6;
+ INavigationPoint p_37;
+ INavigationPoint q;
+ INavigationPoint r;
+ INavigationPoint s;
+ INavigationPoint t;
+ #endregion
+
+ #region the tests
+
+ // TODO: build "CreateNUnitTest" command
+
+ [Test]
+ ///
+ /// The must
+ /// expose an
+ /// reference for the current "position" in the
+ /// editor windows, and return
+ /// when the history is empty.
+ ///
+ public void CurrentPositionTest()
+ {
+ Assert.IsNull(NavigationService.CurrentPosition);
+
+ NavigationService.CurrentPosition = p;
+ Assert.IsInstanceOfType(typeof(INavigationPoint),
+ NavigationService.CurrentPosition);
+ }
+
+ [Test]
+ ///
+ /// The must
+ /// be able to log and remember changes to the
+ ///
+ /// CurrentPosition.
+ ///
+ public void LogTest()
+ {
+ NavigationService.CurrentPosition = p;
+ Assert.AreEqual(p, NavigationService.CurrentPosition);
+
+ NavigationService.CurrentPosition = q;
+ Assert.AreEqual(q, NavigationService.CurrentPosition);
+
+ NavigationService.CurrentPosition = r;
+ Assert.AreEqual(r, NavigationService.CurrentPosition);
+ }
+
+ [Test]
+ ///
+ /// The must
+ /// expose a list of points in it's history.
+ /// of type
+ /// .
+ ///
+ /// necessary for testing and for menu building
+ public void GetListOfPointsTest()
+ {
+ Assert.IsInstanceOfType(typeof(List),
+ NavigationService.GetListOfPoints());
+ }
+
+ [Test]
+ ///
+ /// The must
+ /// expose a method to empty the points in its
+ /// history.
+ ///
+ public void ClearHistoryTest()
+ {
+ NavigationService.ClearHistory(true);
+
+ List history = NavigationService.GetListOfPoints();
+ Assert.AreEqual(0, history.Count);
+ }
+
+ [Test]
+ ///
+ /// The must
+ /// expose a property of type
+ /// indicating how many points are currently
+ /// stored in it's history.
+ ///
+ public void CountTest()
+ {
+ Assert.IsInstanceOfType(typeof(int),
+ NavigationService.Count);
+ }
+
+ [Test]
+ ///
+ /// The must
+ /// expose a property of type
+ /// indicating how many points are currently
+ /// stored in it's history.
+ ///
+ public void CountingTest()
+ {
+ Assert.AreEqual(0, NavigationService.Count);
+
+ NavigationService.CurrentPosition = p;
+ Assert.AreEqual(1, NavigationService.Count);
+
+ NavigationService.CurrentPosition = q;
+ Assert.AreEqual(2, NavigationService.Count);
+
+ NavigationService.CurrentPosition = r;
+ Assert.AreEqual(3, NavigationService.Count);
+
+ NavigationService.ClearHistory(true);
+ Assert.AreEqual(0, NavigationService.Count);
+
+ }
+
+ [Test]
+ ///
+ /// The must
+ /// ignore requests to log a null reference.
+ ///
+ public void LogNullTest()
+ {
+ Assert.AreEqual(0, NavigationService.Count);
+ NavigationService.CurrentPosition = null;
+ Assert.AreEqual(0, NavigationService.Count);
+
+ NavigationService.CurrentPosition = p;
+ NavigationService.CurrentPosition = null;
+ Assert.AreEqual(p, NavigationService.CurrentPosition);
+ }
+
+ [Test]
+ ///
+ /// The must
+ /// expose methods that allow clients to
+ /// suspend and resume logging of positions.
+ ///
+ public void SuspendLoggingTest()
+ {
+ Assert.AreEqual(0, NavigationService.Count);
+
+ NavigationService.SuspendLogging();
+ NavigationService.CurrentPosition = p;
+ Assert.AreEqual(0, NavigationService.Count);
+
+ NavigationService.ResumeLogging();
+ NavigationService.CurrentPosition = q;
+ Assert.AreEqual(q, NavigationService.CurrentPosition);
+ }
+
+ [Test]
+ ///
+ /// The must
+ /// expose a Property to access the state of
+ /// logging.
+ ///
+ public void IsLoggingTest()
+ {
+ Assert.IsTrue(NavigationService.IsLogging);
+
+ NavigationService.SuspendLogging();
+ Assert.IsFalse(NavigationService.IsLogging);
+
+ NavigationService.ResumeLogging();
+ Assert.IsTrue(NavigationService.IsLogging);
+ }
+
+ [Test]
+ ///
+ /// The must
+ ///
+ ///
+ ///
+ public void GoTest()
+ {
+ Assert.AreEqual(0, NavigationService.Count);
+ Assert.IsNull(NavigationService.CurrentPosition);
+
+ TestNavigationPoint.CurrentTestPosition = null;
+ Assert.IsNull(TestNavigationPoint.CurrentTestPosition);
+
+ NavigationService.CurrentPosition = p;
+ NavigationService.CurrentPosition = q;
+ NavigationService.CurrentPosition = TestNavigationPoint.CurrentTestPosition = r;
+ Assert.AreEqual(3, NavigationService.Count);
+ Assert.AreEqual(r, NavigationService.CurrentPosition);
+ Assert.AreEqual(r, TestNavigationPoint.CurrentTestPosition);
+
+ NavigationService.Go(0);
+ Assert.AreEqual(3, NavigationService.Count);
+ Assert.AreEqual(r, NavigationService.CurrentPosition);
+ Assert.AreEqual(r, TestNavigationPoint.CurrentTestPosition);
+
+ NavigationService.Go(-1);
+ Assert.AreEqual(3, NavigationService.Count);
+ Assert.AreEqual(q, NavigationService.CurrentPosition);
+ Assert.AreEqual(q, TestNavigationPoint.CurrentTestPosition);
+
+ NavigationService.Go(1);
+ Assert.AreEqual(3, NavigationService.Count);
+ Assert.AreEqual(r, NavigationService.CurrentPosition);
+ Assert.AreEqual(r, TestNavigationPoint.CurrentTestPosition);
+
+ NavigationService.Go(-2);
+ Assert.AreEqual(p, NavigationService.CurrentPosition);
+ Assert.AreEqual(p, TestNavigationPoint.CurrentTestPosition);
+
+ NavigationService.Go(1);
+ Assert.AreEqual(q, NavigationService.CurrentPosition);
+ Assert.AreEqual(q, TestNavigationPoint.CurrentTestPosition);
+
+ NavigationService.Go(1);
+ Assert.AreEqual(r, NavigationService.CurrentPosition);
+ Assert.AreEqual(r, TestNavigationPoint.CurrentTestPosition);
+
+ // now attempt to go beyond the bounds of the list;
+ // we should meet this request as best as possible
+ // and generate no errors.
+ NavigationService.Go(-5);
+ Assert.AreEqual(p, NavigationService.CurrentPosition);
+ Assert.AreEqual(p, TestNavigationPoint.CurrentTestPosition);
+
+ NavigationService.Go(7);
+ Assert.AreEqual(r, NavigationService.CurrentPosition);
+ Assert.AreEqual(r, TestNavigationPoint.CurrentTestPosition);
+ }
+
+ [Test]
+ ///
+ /// The must
+ /// support navigating directly to a specific
+ /// point.
+ ///
+ ///
+ ///
+ /// When the target point is not in the history,
+ /// the must
+ /// add it such that advancing back restores the
+ /// position that was current before this request
+ /// and advancing forwards returns the same results
+ /// had this request never been made.
+ ///
+ ///
+ public void GoDirectTest()
+ {
+ Assert.AreEqual(0, NavigationService.Count);
+
+ NavigationService.Log(p);
+ NavigationService.Log(q);
+ NavigationService.Log(r);
+ TestNavigationPoint.CurrentTestPosition = r;
+
+ Assert.AreEqual(3, NavigationService.Count);
+ Assert.AreEqual(r, NavigationService.CurrentPosition);
+ Assert.AreEqual(r, TestNavigationPoint.CurrentTestPosition);
+ Assert.IsTrue(NavigationService.CanNavigateBack);
+ Assert.IsFalse(NavigationService.CanNavigateForwards);
+
+ NavigationService.Go(p);
+
+ Assert.AreEqual(3, NavigationService.Count);
+ Assert.AreEqual(p, NavigationService.CurrentPosition);
+ Assert.AreEqual(p, TestNavigationPoint.CurrentTestPosition);
+ Assert.IsFalse(NavigationService.CanNavigateBack);
+ Assert.IsTrue(NavigationService.CanNavigateForwards);
+
+ NavigationService.Go(s);
+
+ Assert.AreEqual(4, NavigationService.Count);
+ Assert.AreEqual(s, NavigationService.CurrentPosition);
+ Assert.AreEqual(s, TestNavigationPoint.CurrentTestPosition);
+ Assert.IsTrue(NavigationService.CanNavigateBack);
+ Assert.IsTrue(NavigationService.CanNavigateForwards);
+
+ NavigationService.Go(-1);
+ Assert.AreEqual(p, NavigationService.CurrentPosition);
+ Assert.AreEqual(p, TestNavigationPoint.CurrentTestPosition);
+
+ NavigationService.Go(2);
+ Assert.AreEqual(q, NavigationService.CurrentPosition);
+ Assert.AreEqual(q, TestNavigationPoint.CurrentTestPosition);
+ }
+
+ [Test]
+ ///
+ /// The must
+ /// expose boolean properties indicating whether
+ /// or not it is possible to navigate forwards
+ /// or backwards within the history.
+ ///
+ public void CanNavigateTest()
+ {
+ Assert.AreEqual(0, NavigationService.Count);
+ Assert.IsFalse(NavigationService.CanNavigateBack);
+ Assert.IsFalse(NavigationService.CanNavigateForwards);
+
+ NavigationService.Log(p);
+ Assert.IsFalse(NavigationService.CanNavigateBack);
+ Assert.IsFalse(NavigationService.CanNavigateForwards);
+
+ NavigationService.Log(q);
+ Assert.IsTrue(NavigationService.CanNavigateBack);
+ Assert.IsFalse(NavigationService.CanNavigateForwards);
+
+ NavigationService.Go(-1);
+ Assert.IsFalse(NavigationService.CanNavigateBack);
+ Assert.IsTrue(NavigationService.CanNavigateForwards);
+ }
+
+ [Test]
+ ///
+ /// The must
+ /// ignore multiple successive requests to
+ /// log identical points.
+ ///
+ public void LogMultipleIdenticalSuccessiveTest()
+ {
+ Assert.AreEqual(0, NavigationService.Count);
+
+ NavigationService.Log(p);
+ NavigationService.Log(p);
+ Assert.AreEqual(1, NavigationService.Count);
+ Assert.AreEqual(p, NavigationService.CurrentPosition);
+
+ NavigationService.Log(q);
+ NavigationService.Log(r);
+ NavigationService.Log(r);
+ Assert.AreEqual(3, NavigationService.Count);
+ Assert.AreEqual(r, NavigationService.CurrentPosition);
+ }
+
+ [Test]
+ ///
+ /// The must
+ /// support multiple successive requests to
+ /// log equivalent points, where equivalency
+ /// is measured by INavigationPoint.Equals(),
+ /// in which case the new point replaces the
+ /// current point.
+ ///
+ public void LogMultipleEquivalentSuccessiveTest()
+ {
+ Assert.AreEqual(0, NavigationService.Count);
+ Assert.IsTrue(p_5.Equals(p_6));
+
+ NavigationService.Log(p_5);
+ NavigationService.Log(p_5);
+ Assert.AreEqual(1, NavigationService.Count);
+ Assert.AreEqual(p_5, NavigationService.CurrentPosition);
+
+ NavigationService.Log(p_6);
+ Assert.AreEqual(1, NavigationService.Count);
+ Assert.AreEqual(p_6, NavigationService.CurrentPosition);
+ }
+
+ [Test]
+ ///
+ /// The must
+ /// allow requests to log multiple instances of
+ /// the same position (where sameness is tested
+ /// by INavigationPoint.
+ /// Equals()), provided they are not logged
+ /// successively.
+ ///
+ public void LogMultipleEquivalentDisjointTest()
+ {
+ Assert.AreEqual(0, NavigationService.Count);
+ Assert.IsTrue(p_5.Equals(p_6));
+
+ NavigationService.Log(p_5);
+ NavigationService.Log(p_5);
+ Assert.AreEqual(1, NavigationService.Count);
+ Assert.AreEqual(p_5, NavigationService.CurrentPosition);
+
+ NavigationService.Log(q);
+
+ NavigationService.Log(p_6);
+ Assert.AreEqual(3, NavigationService.Count);
+ Assert.AreEqual(p_6, NavigationService.CurrentPosition);
+ }
+
+ [Test]
+ ///
+ /// The must
+ /// expose an event that fires when the
+ /// navigation list has changed
+ ///
+ public void HistoryChangedTest()
+ {
+ navigationChangedCount = 0;
+ NavigationService.HistoryChanged += NavigationHistoryChanged;
+
+ Assert.AreEqual(0, NavigationService.Count);
+ Assert.AreEqual(0, navigationChangedCount);
+
+ NavigationService.Log(p);
+ Assert.AreEqual(1, NavigationService.Count);
+ Assert.AreEqual(1, navigationChangedCount);
+
+ NavigationService.Log(p_5);
+ Assert.AreEqual(1, NavigationService.Count);
+ Assert.AreEqual(2, navigationChangedCount);
+
+ NavigationService.Log(q);
+ Assert.AreEqual(2, NavigationService.Count);
+ Assert.AreEqual(3, navigationChangedCount);
+
+ NavigationService.ClearHistory(true);
+ Assert.AreEqual(0, NavigationService.Count);
+ Assert.AreEqual(4, navigationChangedCount);
+
+ NavigationService.HistoryChanged -= NavigationHistoryChanged;
+ }
+
+ int navigationChangedCount;
+
+ public void NavigationHistoryChanged(object sender, EventArgs e)
+ {
+ navigationChangedCount++;
+ }
+
+ [Test]
+ [Ignore("System.NullReferenceException: Object reference not set to an instance of an object.")]
+ ///
+ /// The must
+ /// expose a method to generate an
+ /// from a
+ /// given window.
+ ///
+ public void GenerateCurrentPositionTest()
+ {
+ INavigationPoint p = NavigationService.Log();
+ }
+ #endregion
+
+ [Test]
+ ///
+ /// The must
+ /// expose a method to empty the points in its
+ /// history without forgetting the current
+ /// position
+ ///
+ public void ClearHistoryRetainCurrentTest()
+ {
+ Assert.AreEqual(0, NavigationService.Count);
+
+ NavigationService.Log(p);
+ NavigationService.Log(q);
+
+ Assert.AreEqual(2, NavigationService.Count);
+ Assert.AreEqual(q, NavigationService.CurrentPosition);
+ NavigationService.ClearHistory();
+
+ Assert.AreEqual(1, NavigationService.Count);
+ Assert.AreEqual(q, NavigationService.CurrentPosition);
+ }
+
+ [Test]
+ ///
+ /// The must
+ /// ignore requests to go directly to a null
+ /// position.
+ ///
+ public void GoDirectToNullTest()
+ {
+ Assert.AreEqual(0, NavigationService.Count);
+
+ NavigationService.Log(p);
+ NavigationService.Log(q);
+ NavigationService.Log(r);
+
+ Assert.AreEqual(3, NavigationService.Count);
+ Assert.AreEqual(r, NavigationService.CurrentPosition);
+
+ NavigationService.Go(null);
+
+ Assert.AreEqual(3, NavigationService.Count);
+ Assert.AreEqual(r, NavigationService.CurrentPosition);
+ }
+
+ [Test]
+ ///
+ /// The must
+ /// ignore requests to log a point equivalent
+ /// to the next position either forwards or back.
+ ///
+ public void LogDuplicateNextTest()
+ {
+ Assert.AreEqual(0, NavigationService.Count);
+
+ NavigationService.Log(p);
+ NavigationService.Log(q);
+ NavigationService.Log(r);
+
+ NavigationService.Go(-1);
+
+ Assert.AreEqual(3, NavigationService.Count);
+ Assert.AreEqual(q, NavigationService.CurrentPosition);
+ Assert.IsTrue(NavigationService.CanNavigateBack);
+ Assert.IsTrue(NavigationService.CanNavigateForwards);
+
+ NavigationService.Log(p);
+
+ Assert.AreEqual(3, NavigationService.Count);
+ Assert.AreEqual(q, NavigationService.CurrentPosition);
+ Assert.IsTrue(NavigationService.CanNavigateBack);
+ Assert.IsTrue(NavigationService.CanNavigateForwards);
+
+ NavigationService.Log(r);
+
+ Assert.AreEqual(3, NavigationService.Count);
+ Assert.AreEqual(q, NavigationService.CurrentPosition);
+ Assert.IsTrue(NavigationService.CanNavigateBack);
+ Assert.IsTrue(NavigationService.CanNavigateForwards);
+ }
+
+ #region setup / tear down
+
+ [SetUp]
+ public void BeforeEachTest()
+ {
+ NavigationService.ClearHistory(true);
+ NavigationService.ResumeLogging();
+ }
+
+ [TearDown]
+ public void AfterEachTest()
+ {
+ NavigationService.ClearHistory(true);
+ NavigationService.ResumeLogging();
+ }
+
+ ///
+ /// Create several s
+ /// for use during tests.
+ ///
+ [TestFixtureSetUp]
+ public void Init()
+ {
+ p = new TestNavigationPoint("p.cs");
+ p_5 = new TestNavigationPoint("p.cs", 5);
+ p_6 = new TestNavigationPoint("p.cs", 6);
+ p_37 = new TestNavigationPoint("p.cs", 37);
+ q = new TestNavigationPoint("q.cs");
+ r = new TestNavigationPoint("r.cs");
+ s = new TestNavigationPoint("s.cs");
+ t = new TestNavigationPoint("t.cs");
+ }
+
+ [TestFixtureTearDown]
+ public void Dispose()
+ {
+ // TODO: Add tear down code.
+ }
+
+ #endregion
+ }
+}
diff --git a/src/Main/Base/Test/Services_Navigation/TestNavigationPoint.cs b/src/Main/Base/Test/Services_Navigation/TestNavigationPoint.cs
new file mode 100644
index 0000000000..a11eebe18f
--- /dev/null
+++ b/src/Main/Base/Test/Services_Navigation/TestNavigationPoint.cs
@@ -0,0 +1,70 @@
+/*
+ * Created by SharpDevelop.
+ * User: David
+ * Date: 11/03/2006
+ * Time: 11:28 AM
+ *
+ * To change this template use Tools | Options | Coding | Edit Standard Headers.
+ */
+
+using System;
+
+using ICSharpCode.Core;
+
+namespace NavigationServiceTests
+{
+ ///
+ /// Description of TestNavigationPoint.
+ ///
+ public class TestNavigationPoint : DefaultNavigationPoint
+ {
+ public TestNavigationPoint(string filename) : this(filename, 0) {}
+ public TestNavigationPoint(string filename, int line): base(filename)
+ {
+ this.LineNumber = line;
+ }
+
+ public new int NavigationData {
+ get {
+ return (int)base.NavigationData;
+ }
+ set {
+ base.NavigationData = value;
+ }
+ }
+ public int LineNumber {
+ get {
+ return this.NavigationData;
+ }
+ set {
+ this.NavigationData = value;
+ }
+ }
+
+ #region IComparable
+ public override bool Equals(object obj)
+ {
+ TestNavigationPoint b = obj as TestNavigationPoint;
+ if (b == null) return false;
+ return this.FileName == b.FileName
+ && Math.Abs(this.LineNumber - b.LineNumber) <= 5;
+ }
+
+ public override int GetHashCode()
+ {
+ return this.FileName.GetHashCode() ^ this.LineNumber.GetHashCode();
+ }
+ #endregion
+
+ public override void JumpTo()
+ {
+ // simulate the case where jumping triggers a call to log an intermediate position
+ NavigationService.Log(new TestNavigationPoint(this.FileName, -500));
+
+ // simulate changing something outside the NavigationService's model
+ CurrentTestPosition = this;
+ }
+
+ public static INavigationPoint CurrentTestPosition = null;
+ }
+}
diff --git a/src/Main/Core/Project/ICSharpCode.Core.csproj b/src/Main/Core/Project/ICSharpCode.Core.csproj
index add5d3503f..5bba3ca6ab 100644
--- a/src/Main/Core/Project/ICSharpCode.Core.csproj
+++ b/src/Main/Core/Project/ICSharpCode.Core.csproj
@@ -162,4 +162,4 @@
-
+
\ No newline at end of file
diff --git a/src/Main/Core/Project/Src/AddInTree/AddIn/DefaultDoozers/ToolBarItem/Gui/ToolBarSplitButton.cs b/src/Main/Core/Project/Src/AddInTree/AddIn/DefaultDoozers/ToolBarItem/Gui/ToolBarSplitButton.cs
index d24abb0526..ba9a350c11 100644
--- a/src/Main/Core/Project/Src/AddInTree/AddIn/DefaultDoozers/ToolBarItem/Gui/ToolBarSplitButton.cs
+++ b/src/Main/Core/Project/Src/AddInTree/AddIn/DefaultDoozers/ToolBarItem/Gui/ToolBarSplitButton.cs
@@ -50,6 +50,8 @@ namespace ICSharpCode.Core
void CreateDropDownItems()
{
+ ToolStripItem[] itemsToAdd = null;
+
DropDownItems.Clear();
foreach (object item in subItems)
{
@@ -65,7 +67,10 @@ namespace ICSharpCode.Core
else
{
ISubmenuBuilder submenuBuilder = (ISubmenuBuilder)item;
- DropDownItems.AddRange(submenuBuilder.BuildSubmenu(codon, caller));
+ itemsToAdd = submenuBuilder.BuildSubmenu(codon, caller);
+ if (itemsToAdd!=null) {
+ DropDownItems.AddRange(itemsToAdd);
+ }
}
}
}
@@ -121,6 +126,7 @@ namespace ICSharpCode.Core
private void UpdateButtonImage()
{
+ //LoggingService.Info("UpdatingButtonImage: buttonEnabled=="+buttonEnabled.ToString());
Image = buttonEnabled ? imgButtonEnabled : imgButtonDisabled;
}
diff --git a/src/Main/StartUp/Project/Resources/BitmapResources.resources b/src/Main/StartUp/Project/Resources/BitmapResources.resources
index 3a554b5532..5cfc7da55c 100644
Binary files a/src/Main/StartUp/Project/Resources/BitmapResources.resources and b/src/Main/StartUp/Project/Resources/BitmapResources.resources differ
diff --git a/src/Main/StartUp/Project/SharpDevelopMain.cs b/src/Main/StartUp/Project/SharpDevelopMain.cs
index 54fdc1be14..273108edbe 100644
--- a/src/Main/StartUp/Project/SharpDevelopMain.cs
+++ b/src/Main/StartUp/Project/SharpDevelopMain.cs
@@ -258,6 +258,9 @@ namespace ICSharpCode.SharpDevelop
AddInTree.ConditionEvaluators.Add("TextContent", new ICSharpCode.SharpDevelop.DefaultEditor.Conditions.TextContentConditionEvaluator());
AddInTree.ConditionEvaluators.Add("BrowserLocation", new ICSharpCode.SharpDevelop.BrowserDisplayBinding.BrowserLocationConditionEvaluator());
AddInTree.ConditionEvaluators.Add("RefactoringProviderSupports", new Refactoring.RefactoringProviderSupportsConditionEvaluator());
+ // TODO: is there a way to automate ConditionEvaluator registration via reflection? or to specify it in the .addin files?
+ AddInTree.ConditionEvaluators.Add("CanNavigateBack", new CanNavigateBackConditionEvaluator());
+ AddInTree.ConditionEvaluators.Add("CanNavigateForward", new CanNavigateForwardConditionEvaluator());
AddInTree.Doozers.Add("DialogPanel", new DialogPanelDoozer());
AddInTree.Doozers.Add("DisplayBinding", new DisplayBindingDoozer());
diff --git a/src/SharpDevelop.Tests.sln b/src/SharpDevelop.Tests.sln
index 6df16f1a5f..f0af3e3db9 100644
--- a/src/SharpDevelop.Tests.sln
+++ b/src/SharpDevelop.Tests.sln
@@ -1,5 +1,5 @@
Microsoft Visual Studio Solution File, Format Version 9.00
-# SharpDevelop 2.1.0.1340
+# SharpDevelop 2.1.0.1472
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AddIns", "AddIns", "{14A277EE-7DF1-4529-B639-7D1EF334C1C5}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
@@ -224,6 +224,10 @@ Global
{7D7E92DF-ACEB-4B69-92C8-8AC7A703CD57}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{7D7E92DF-ACEB-4B69-92C8-8AC7A703CD57}.Release|Any CPU.Build.0 = Release|Any CPU
{7D7E92DF-ACEB-4B69-92C8-8AC7A703CD57}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {B3EFF50A-ADBF-4FCD-ACE3-081AF1B37F1D}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {B3EFF50A-ADBF-4FCD-ACE3-081AF1B37F1D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {B3EFF50A-ADBF-4FCD-ACE3-081AF1B37F1D}.Release|Any CPU.Build.0 = Release|Any CPU
+ {B3EFF50A-ADBF-4FCD-ACE3-081AF1B37F1D}.Release|Any CPU.ActiveCfg = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/src/SharpDevelop.sln b/src/SharpDevelop.sln
index 9ba5199f1b..2cbccb232b 100644
--- a/src/SharpDevelop.sln
+++ b/src/SharpDevelop.sln
@@ -1,5 +1,5 @@
Microsoft Visual Studio Solution File, Format Version 9.00
-# SharpDevelop 2.1.0.1298
+# SharpDevelop 2.1.0.1472
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AddIns", "AddIns", "{14A277EE-7DF1-4529-B639-7D1EF334C1C5}"
ProjectSection(SolutionItems) = postProject
EndProjectSection