Browse Source

Merge branch 'newNR' of github.com:icsharpcode/SharpDevelop into newNRILSpyDebugger

Conflicts:
	src/Main/Base/Project/Dom/ClassBrowser/WorkspaceModel.cs
	src/Main/Base/Project/Dom/IAssemblyModel.cs
newNRILSpyDebugger
Siegfried Pammer 12 years ago
parent
commit
983ee4df54
  1. 255
      data/resources/StringResources.de.resx
  2. 6
      data/resources/StringResources.es-mx.resx
  3. 6
      data/resources/StringResources.es.resx
  4. 6
      data/resources/StringResources.fr.resx
  5. 6
      data/resources/StringResources.it.resx
  6. 30
      data/resources/StringResources.nl.resx
  7. 40
      data/resources/StringResources.resx
  8. 6
      data/resources/StringResources.tr.resx
  9. 9
      samples/XamlDesigner/Document.cs
  10. 7
      samples/XamlDesigner/MainWindow.xaml
  11. 49
      samples/XamlDesigner/MyTypeFinder.cs
  12. 103
      samples/XamlDesigner/Toolbox.cs
  13. 13
      samples/XamlDesigner/ToolboxView.xaml
  14. 17
      samples/XamlDesigner/ToolboxView.xaml.cs
  15. 1
      samples/XamlDesigner/XamlDesigner.csproj
  16. 12
      src/AddIns/Analysis/CodeAnalysis/Src/AnalysisIdeOptionsPanel.xaml.cs
  17. 12
      src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanel.xaml.cs
  18. 10
      src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsTreeNodes.cs
  19. 12
      src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageOptionsPanel.xaml.cs
  20. 12
      src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageProjectOptionsPanel.xaml.cs
  21. 4
      src/AddIns/Analysis/CodeQuality/Gui/Commands/AnalyzeCodeQualityCommand.cs
  22. 5
      src/AddIns/Analysis/CodeQuality/Properties/AssemblyInfo.cs
  23. 11
      src/AddIns/Analysis/CodeQuality/Reporting/BaseReport.cs
  24. 11
      src/AddIns/Analysis/CodeQuality/Reporting/DependencyReport.cs
  25. 11
      src/AddIns/Analysis/CodeQuality/Reporting/OverviewReport.cs
  26. 11
      src/AddIns/Analysis/CodeQuality/Reporting/ReportViewModel.cs
  27. 4
      src/AddIns/Analysis/MachineSpecifications/MachineSpecifications.Tests/Properties/AssemblyInfo.cs
  28. 2
      src/AddIns/Analysis/MachineSpecifications/MachineSpecifications/src/MSpecTestFramework.cs
  29. 3
      src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/ProfilerProcessRunner.cs
  30. 12
      src/AddIns/Analysis/SourceAnalysis/Src/AnalysisIdeOptionsPanel.xaml.cs
  31. 12
      src/AddIns/Analysis/SourceAnalysis/Src/AnalysisOptionsPanel.xaml.cs
  32. 3
      src/AddIns/Analysis/UnitTesting/Interfaces/IUnitTestTaskService.cs
  33. 3
      src/AddIns/Analysis/UnitTesting/Interfaces/UnitTestTaskService.cs
  34. 3
      src/AddIns/Analysis/UnitTesting/Service/ITestService.cs
  35. 3
      src/AddIns/Analysis/UnitTesting/Service/SDTestService.cs
  36. 11
      src/AddIns/Analysis/UnitTesting/Test/Project/DoubleNestedTestClassWithBaseType.cs
  37. 6
      src/AddIns/Analysis/UnitTesting/TestRunner/TestExecutionManager.cs
  38. 2
      src/AddIns/BackendBindings/CSharpBinding/Project/Resources/CSharp-Semantic.xshd
  39. 5
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/Completion/CSharpInsightItem.cs
  40. 12
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/OptionPanels/BuildOptions.xaml.cs
  41. 4
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/Parser/CSharpSymbolSearch.cs
  42. 4
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/CreatePropertiesDialog.xaml.cs
  43. 2
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/OverrideEqualsGetHashCodeMethodsDialog.xaml.cs
  44. 12
      src/AddIns/BackendBindings/CppBinding/CppBinding/Project/LinkerOptions.xaml.cs
  45. 12
      src/AddIns/BackendBindings/CppBinding/CppBinding/Project/PreprocessorOptions.xaml.cs
  46. 5
      src/AddIns/BackendBindings/JavaScriptBinding/Project/Src/ES3/ES3Lexer.Action.cs
  47. 5
      src/AddIns/BackendBindings/JavaScriptBinding/Project/Src/ES3/ES3Parser.Action.cs
  48. 7
      src/AddIns/BackendBindings/Python/PythonBinding/Test/Parsing/PythonParserParsePropertyTests.cs
  49. 18
      src/AddIns/BackendBindings/XamlBinding/XamlBinding/NodeWrapper.cs
  50. 1
      src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlBinding.csproj
  51. 83
      src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlOutlineContentHost.xaml.cs
  52. 8
      src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlOutlineNode.cs
  53. 9
      src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlUnresolvedFile.cs
  54. 2
      src/AddIns/Debugger/Debugger.AddIn/Debugger.AddIn.addin
  55. 2
      src/AddIns/Debugger/Debugger.AddIn/Options/DebuggingOptionsPanel.xaml
  56. 142
      src/AddIns/Debugger/Debugger.AddIn/Pads/ClassBrowserSupport.cs
  57. 2
      src/AddIns/Debugger/Debugger.Core/Eval.cs
  58. 1
      src/AddIns/Debugger/Debugger.Core/ManagedCallback.cs
  59. 2
      src/AddIns/Debugger/Debugger.Core/Options.cs
  60. 12
      src/AddIns/Debugger/Debugger.Core/Process.cs
  61. 2
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.csproj
  62. 8
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/AvalonEditEditorUIService.cs
  63. 10
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditorView.cs
  64. 3
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/ContextActionsBulbViewModel.cs
  65. 14
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/ContextActionsPopup.cs
  66. 3
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/FindBaseClasses.cs
  67. 6
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/FindDerivedClassesOrOverrides.cs
  68. 1
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/GoToEntityAction.cs
  69. 12
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/DocumentPrinter.cs
  70. 5
      src/AddIns/DisplayBindings/Data/ICSharpCode.Data.Core.UI/UserControls/WizardErrorUserControl.cs
  71. 5
      src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core/EDMObjects/Designer/ChangeWatcher/EDMDesignerChangeWatcher.cs
  72. 5
      src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core/EDMObjects/Designer/ChangeWatcher/IEDMDesignerChangeWatcherObserver.cs
  73. 5
      src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core/IO/EntityModelCodeGenerator.cs
  74. 4
      src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core/ObjectModelConverters/ObjectModelConverterException.cs
  75. 12
      src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Gui/OptionPanels/GeneralOptionsPanel.xaml.cs
  76. 13
      src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Gui/OptionPanels/GridOptionsPanel.xaml.cs
  77. 13
      src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Gui/OptionPanels/LocalizationModelOptionsPanel.xaml.cs
  78. 11
      src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Services/ProjectResourcesComponentCodeDomSerializer.cs
  79. 10
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/Src/MyTypeFinder.cs
  80. 23
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/Src/SharpDevelopTranslations.cs
  81. 53
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/Src/ThumbnailViewPad.cs
  82. 2
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/Src/WpfDisplayBinding.cs
  83. 50
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/Src/WpfToolbox.cs
  84. 20
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/Src/WpfViewContent.cs
  85. 8
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/WpfDesign.AddIn.csproj
  86. 19
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/WpfDesign.addin
  87. 1
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Configuration/AssemblyInfo.cs
  88. 218
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/CanvasPositionHandle.cs
  89. 85
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/ClearableTextBox.cs
  90. 26
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/ContainerDragHandle.cs
  91. 321
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/ControlStyles.xaml
  92. 3
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/GrayOutDesignerExceptActiveArea.cs
  93. 101
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/InfoTextEnterArea.cs
  94. 7
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/MarginHandle.cs
  95. 28
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/PanelMoveAdorner.cs
  96. 227
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/QuickOperationMenu.cs
  97. 28
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/RenderTransformOriginThumb.cs
  98. 38
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/RotateThumb.cs
  99. 12
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/ZoomControl.cs
  100. 113
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Converters.cs
  101. Some files were not shown because too many files have changed in this diff Show More

255
data/resources/StringResources.de.resx

@ -229,6 +229,152 @@ Laden Sie ein AddIn aus dem Internet herunter, klicken Sie auf "AddIn installier
<data name="AddInManager.UnknownFileFormat" xml:space="preserve"> <data name="AddInManager.UnknownFileFormat" xml:space="preserve">
<value>Unbekanntes Dateiformat:</value> <value>Unbekanntes Dateiformat:</value>
</data> </data>
<data name="AddInManager2.AddInsView.InstallFromArchive" xml:space="preserve">
<value>Aus Archiv installieren...</value>
</data>
<data name="AddInManager2.AddInsView.Repository" xml:space="preserve">
<value>Repository:</value>
</data>
<data name="AddInManager2.AddInsView.Search" xml:space="preserve">
<value>Suche:</value>
</data>
<data name="AddInManager2.AddInsView.ShowPreinstalledAddIns" xml:space="preserve">
<value>Vorinstallierte AddIns anzeigen</value>
</data>
<data name="AddInManager2.AddInsView.ShowPrereleaseAddIns" xml:space="preserve">
<value>Prereleases anzeigen</value>
</data>
<data name="AddInManager2.CannotRemoveAddInManager" xml:space="preserve">
<value>Sie können den AddInManager nicht deinstallieren. Er wird für die Wiederinstallation von AddIns benötigt!</value>
</data>
<data name="AddInManager2.DefaultRepository" xml:space="preserve">
<value>SharpDevelop AddIn Repository</value>
</data>
<data name="AddInManager2.Details.CreatedBy" xml:space="preserve">
<value>Erstellt von:</value>
</data>
<data name="AddInManager2.Details.Dependencies" xml:space="preserve">
<value>Abhängigkeiten:</value>
</data>
<data name="AddInManager2.Details.DownloadCount" xml:space="preserve">
<value>Downloads:</value>
</data>
<data name="AddInManager2.Details.FileName" xml:space="preserve">
<value>Dateiname:</value>
</data>
<data name="AddInManager2.Details.InstalledVersion" xml:space="preserve">
<value>Installierte Version:</value>
</data>
<data name="AddInManager2.Details.LastUpdated" xml:space="preserve">
<value>Zuletzt aktualisiert:</value>
</data>
<data name="AddInManager2.Details.MoreInformation" xml:space="preserve">
<value>Weitere Informationen</value>
</data>
<data name="AddInManager2.Details.NewVersion" xml:space="preserve">
<value>Neue Version:</value>
</data>
<data name="AddInManager2.Details.Rating" xml:space="preserve">
<value>Bewertung:</value>
</data>
<data name="AddInManager2.Details.ReportAbuse" xml:space="preserve">
<value>Missbrauch melden</value>
</data>
<data name="AddInManager2.Details.Version" xml:space="preserve">
<value>Version:</value>
</data>
<data name="AddInManager2.Details.ViewLicenseTerms" xml:space="preserve">
<value>Lizenzvereinbarungen anzeigen</value>
</data>
<data name="AddInManager2.DisableDependentWarning" xml:space="preserve">
<value>Folgende installierte AddIns hängen von "{0}" ab:
{1}
Sie werden nicht mehr funktionieren nachdem dieses AddIn deaktiviert wurde! Sind Sie sicher, dass Sie fortfahren möchten?</value>
</data>
<data name="AddInManager2.InstallDependentMessage" xml:space="preserve">
<value>Das Paket "{0}" benötigt noch mindestens ein zusätzliches Paket:
{1}
Die Anwendung wird versuchen diese auch herunterzuladen und zu installieren. Wollen Sie fortfahren?</value>
</data>
<data name="AddInManager2.InvalidPackage" xml:space="preserve">
<value>Das gewählte Paket enthält kein gültiges SharpDevelop AddIn.</value>
</data>
<data name="AddInManager2.LicenseAcceptance.AcceptButton" xml:space="preserve">
<value>&amp;Akzeptieren</value>
</data>
<data name="AddInManager2.LicenseAcceptance.DeclineButton" xml:space="preserve">
<value>A&amp;blehnen</value>
</data>
<data name="AddInManager2.LicenseAcceptance.Explanation.Package" xml:space="preserve">
<value>Mit einem Klick auf "Akzeptieren" stimmen Sie den Lizenzbedingungen des oben angegebenen Paketes zu.
Wenn Sie den Lizenzbedingungen nicht zustimmen, klicken Sie auf "Ablehnen".</value>
</data>
<data name="AddInManager2.LicenseAcceptance.Explanation.Packages" xml:space="preserve">
<value>Mit einem Klick auf "Akzeptieren" stimmen Sie den Lizenzbedingungen der oben angegebenen Pakete zu.
Wenn Sie den Lizenzbedingungen nicht zustimmen, klicken Sie auf "Ablehnen".</value>
</data>
<data name="AddInManager2.LicenseAcceptance.Introduction.Package" xml:space="preserve">
<value>Das folgende Paket hat eine Klicken-um-zu-akzeptieren-Lizenz:</value>
</data>
<data name="AddInManager2.LicenseAcceptance.Introduction.Packages" xml:space="preserve">
<value>Die folgenden Pakete haben eine Klicken-um-zu-akzeptieren-Lizenz:</value>
</data>
<data name="AddInManager2.LicenseAcceptance.Title" xml:space="preserve">
<value>Lizenzvereinbarungen</value>
</data>
<data name="AddInManager2.OptionPanel.Add" xml:space="preserve">
<value>Hinzufügen</value>
</data>
<data name="AddInManager2.OptionPanel.MoveDown" xml:space="preserve">
<value>Nach unten</value>
</data>
<data name="AddInManager2.OptionPanel.MoveUp" xml:space="preserve">
<value>Nach oben</value>
</data>
<data name="AddInManager2.OptionPanel.Name" xml:space="preserve">
<value>Name:</value>
</data>
<data name="AddInManager2.OptionPanel.Remove" xml:space="preserve">
<value>Entfernen</value>
</data>
<data name="AddInManager2.OptionPanel.Source" xml:space="preserve">
<value>Quelle:</value>
</data>
<data name="AddInManager2.OptionPanel.Tree.AddIns" xml:space="preserve">
<value>AddIns</value>
</data>
<data name="AddInManager2.OptionPanel.Tree.Repositories" xml:space="preserve">
<value>Quellen</value>
</data>
<data name="AddInManager2.RemoveDependentWarning" xml:space="preserve">
<value>Folgende installierte AddIns hängen von "{0}" ab:
{1}
Sie werden nicht mehr funktionieren, nachdem dieses AddIn entfernt wurde! Sind Sie sicher, dass Sie fortfahren möchten?</value>
</data>
<data name="AddInManager2.SDAddInFileFilter" xml:space="preserve">
<value>SharpDevelop AddIns|*.sdaddin;*.addin|Alle Dateien|*.*</value>
</data>
<data name="AddInManager2.UpdateNotifier.BubbleText" xml:space="preserve">
<value>Klicken Sie hier um die Updates zu sehen.</value>
</data>
<data name="AddInManager2.UpdateNotifier.BubbleTitle" xml:space="preserve">
<value>Updates für SharpDevelop sind verfügbar</value>
</data>
<data name="AddInManager2.Views.Available" xml:space="preserve">
<value>Verfügbar</value>
</data>
<data name="AddInManager2.Views.Installed" xml:space="preserve">
<value>Installiert</value>
</data>
<data name="AddInManager2.Views.Updates" xml:space="preserve">
<value>Updates</value>
</data>
<data name="AddIns.AvalonEdit.InconsistentNewlines.Description" xml:space="preserve"> <data name="AddIns.AvalonEdit.InconsistentNewlines.Description" xml:space="preserve">
<value>Diese Datei enthält inkonsistente Zeilenenden.</value> <value>Diese Datei enthält inkonsistente Zeilenenden.</value>
</data> </data>
@ -1504,9 +1650,18 @@ Beispiele: "120", "MainClass", "Main.cs, 120".</value>
<data name="Dialog.HighlightingEditor.Import" xml:space="preserve"> <data name="Dialog.HighlightingEditor.Import" xml:space="preserve">
<value>Hervorhebungsfarben importieren</value> <value>Hervorhebungsfarben importieren</value>
</data> </data>
<data name="Dialog.HighlightingEditor.NotSupportedMessage" xml:space="preserve">
<value>Diese Version der Einstellungen wird nicht unterstützt!</value>
</data>
<data name="Dialog.HighlightingEditor.OverwriteCustomizationsMessage" xml:space="preserve">
<value>Hiermit werden alle benutzerdefinierten Farben zurückgesetzt und die gewählten Einstellungen importiert. Wollen Sie fortfahren?</value>
</data>
<data name="Dialog.HighlightingEditor.Properties.Value" xml:space="preserve"> <data name="Dialog.HighlightingEditor.Properties.Value" xml:space="preserve">
<value>Wert</value> <value>Wert</value>
</data> </data>
<data name="Dialog.HighlightingEditor.ResetAll" xml:space="preserve">
<value>Alle auf Standard zurücksetzen</value>
</data>
<data name="Dialog.HighlightingEditor.SampleText" xml:space="preserve"> <data name="Dialog.HighlightingEditor.SampleText" xml:space="preserve">
<value>Beispieltext</value> <value>Beispieltext</value>
</data> </data>
@ -1800,7 +1955,7 @@ Wollen Sie die neue Datei zum Projekt ${CurrentProjectName} hinzufügen?</value>
<value>Code-Completion Detail-Einstellungen</value> <value>Code-Completion Detail-Einstellungen</value>
</data> </data>
<data name="Dialog.Options.IDEOptions.CodeCompletion.LanguageDependend" xml:space="preserve"> <data name="Dialog.Options.IDEOptions.CodeCompletion.LanguageDependend" xml:space="preserve">
<value>Die folgenden Einstellungen sind sprach-abhängig; einige sind nicht in allen Programmiersprachen verfügbar.</value> <value>Die folgenden Einstellungen sind sprachabhängig; einige sind nicht in allen Programmiersprachen verfügbar.</value>
</data> </data>
<data name="Dialog.Options.IDEOptions.CodeCompletion.MainOption" xml:space="preserve"> <data name="Dialog.Options.IDEOptions.CodeCompletion.MainOption" xml:space="preserve">
<value>Mit der folgenden Einstellung kann Code Completion komplett deaktiviert werden:</value> <value>Mit der folgenden Einstellung kann Code Completion komplett deaktiviert werden:</value>
@ -1862,6 +2017,12 @@ Wollen Sie die neue Datei zum Projekt ${CurrentProjectName} hinzufügen?</value>
<data name="Dialog.Options.IDEOptions.Debugging" xml:space="preserve"> <data name="Dialog.Options.IDEOptions.Debugging" xml:space="preserve">
<value>Debugger</value> <value>Debugger</value>
</data> </data>
<data name="Dialog.Options.IDEOptions.Debugging.EnableDecompiler" xml:space="preserve">
<value>Decompiler aktivieren</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.EnableEditAndContinue" xml:space="preserve">
<value>Bearbeiten und Fortfahren (EnC) aktivieren</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.Exceptions" xml:space="preserve"> <data name="Dialog.Options.IDEOptions.Debugging.Exceptions" xml:space="preserve">
<value>Ausnahmen</value> <value>Ausnahmen</value>
</data> </data>
@ -1892,6 +2053,12 @@ Wollen Sie die neue Datei zum Projekt ${CurrentProjectName} hinzufügen?</value>
<data name="Dialog.Options.IDEOptions.Debugging.Stepping.StepOverSingleLineProperties" xml:space="preserve"> <data name="Dialog.Options.IDEOptions.Debugging.Stepping.StepOverSingleLineProperties" xml:space="preserve">
<value>Über einzeilige Properties springen</value> <value>Über einzeilige Properties springen</value>
</data> </data>
<data name="Dialog.Options.IDEOptions.Debugging.SuppressJITOptimization" xml:space="preserve">
<value>JIT-Optimierung unterdrücken</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.SuppressNGENOptimization" xml:space="preserve">
<value>NGEN-Optimierung unterdrücken</value>
</data>
<data name="Dialog.Options.IDEOptions.Debugging.Symbols" xml:space="preserve"> <data name="Dialog.Options.IDEOptions.Debugging.Symbols" xml:space="preserve">
<value>Symbole</value> <value>Symbole</value>
</data> </data>
@ -2351,6 +2518,12 @@ Wollen Sie die neue Datei zum Projekt ${CurrentProjectName} hinzufügen?</value>
<data name="Dialog.ProjectOptions.Build.TargetCPU.Any" xml:space="preserve"> <data name="Dialog.ProjectOptions.Build.TargetCPU.Any" xml:space="preserve">
<value>Jeder Prozessor</value> <value>Jeder Prozessor</value>
</data> </data>
<data name="Dialog.ProjectOptions.Build.TargetCPU.Any32" xml:space="preserve">
<value>Beliebige CPU (32-bit bevorzugt)</value>
</data>
<data name="Dialog.ProjectOptions.Build.TargetCPU.Any64" xml:space="preserve">
<value>Beliebige CPU (64-bit bevorzugt)</value>
</data>
<data name="Dialog.ProjectOptions.Build.TargetCPU.Itanium" xml:space="preserve"> <data name="Dialog.ProjectOptions.Build.TargetCPU.Itanium" xml:space="preserve">
<value>Intel 64-bit Itanium Prozessor</value> <value>Intel 64-bit Itanium Prozessor</value>
</data> </data>
@ -2496,7 +2669,7 @@ Wollen Sie die neue Datei zum Projekt ${CurrentProjectName} hinzufügen?</value>
<value>Referenzpfade</value> <value>Referenzpfade</value>
</data> </data>
<data name="Dialog.ProjectOptions.ReferencePaths.AddPath" xml:space="preserve"> <data name="Dialog.ProjectOptions.ReferencePaths.AddPath" xml:space="preserve">
<value>Pfad hinzufügem</value> <value>Pfad hinzufügen</value>
</data> </data>
<data name="Dialog.ProjectOptions.RunPostBuildEvent.Always" xml:space="preserve"> <data name="Dialog.ProjectOptions.RunPostBuildEvent.Always" xml:space="preserve">
<value>Immer</value> <value>Immer</value>
@ -2711,6 +2884,9 @@ Sie können die Einstellungen auch in einer .user-Datei anstelle der Projektdate
<data name="Global.AddButtonText" xml:space="preserve"> <data name="Global.AddButtonText" xml:space="preserve">
<value>Hin&amp;zufügen</value> <value>Hin&amp;zufügen</value>
</data> </data>
<data name="Global.Advanced" xml:space="preserve">
<value>Fortgeschritten</value>
</data>
<data name="Global.BackButtonText" xml:space="preserve"> <data name="Global.BackButtonText" xml:space="preserve">
<value>&lt; Zurück</value> <value>&lt; Zurück</value>
</data> </data>
@ -3571,6 +3747,12 @@ wurde außerhalb der Applikation geändert. Wollen Sie die Datei neu laden?</val
<data name="ICSharpCode.SharpDevelop.DefaultEditor.IncrementalSearch.ReverseSearchStatusBarMessage" xml:space="preserve"> <data name="ICSharpCode.SharpDevelop.DefaultEditor.IncrementalSearch.ReverseSearchStatusBarMessage" xml:space="preserve">
<value>Inkrementelle Suche (rückwärts):</value> <value>Inkrementelle Suche (rückwärts):</value>
</data> </data>
<data name="ICSharpCode.SharpDevelop.Dom.AssemblyInvalid" xml:space="preserve">
<value>{0} ist keine gültige .NET Assembly.</value>
</data>
<data name="ICSharpCode.SharpDevelop.Dom.AssemblyNotAccessible" xml:space="preserve">
<value>Auf {0} kann nicht zugegriffen werden oder es existiert nicht mehr.</value>
</data>
<data name="ICSharpCode.SharpDevelop.ErrorLoadingCodeCompletionInformation" xml:space="preserve"> <data name="ICSharpCode.SharpDevelop.ErrorLoadingCodeCompletionInformation" xml:space="preserve">
<value>Fehler beim Laden der Code-Completion-Informationen für ${Assembly} aus ${Filename}:</value> <value>Fehler beim Laden der Code-Completion-Informationen für ${Assembly} aus ${Filename}:</value>
</data> </data>
@ -4448,6 +4630,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="ICSharpCode.WixBinding.WixNetFxExtensionTitle" xml:space="preserve"> <data name="ICSharpCode.WixBinding.WixNetFxExtensionTitle" xml:space="preserve">
<value>.NET Framework-Erweiterung</value> <value>.NET Framework-Erweiterung</value>
</data> </data>
<data name="ICSharpCode.WixBinding.WixNotInstalled" xml:space="preserve">
<value>WiX ist nicht installiert. Bitte laden Sie WiX von http://wixtoolset.org/ herunter.</value>
</data>
<data name="ICSharpCode.WixBinding.WixPackageFilesDiffControl.NoDiffFound" xml:space="preserve"> <data name="ICSharpCode.WixBinding.WixPackageFilesDiffControl.NoDiffFound" xml:space="preserve">
<value>Keine Unterschiede gefunden.</value> <value>Keine Unterschiede gefunden.</value>
</data> </data>
@ -4469,6 +4654,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="ICSharpCode.WixBinding.WixVisualStudioExtensionTitle" xml:space="preserve"> <data name="ICSharpCode.WixBinding.WixVisualStudioExtensionTitle" xml:space="preserve">
<value>Visual Studio-Erweiterung</value> <value>Visual Studio-Erweiterung</value>
</data> </data>
<data name="ICSharpCode.WpfDesign.AddIn.ThumbnailViewPad" xml:space="preserve">
<value>WPF Designer Miniaturansicht</value>
</data>
<data name="ICSharpCode.WPFDesigner.ContextMenu.Copy" xml:space="preserve"> <data name="ICSharpCode.WPFDesigner.ContextMenu.Copy" xml:space="preserve">
<value>Kopieren</value> <value>Kopieren</value>
</data> </data>
@ -4769,6 +4957,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.BookmarksLabel" xml:space="preserve"> <data name="MainWindow.Windows.BookmarksLabel" xml:space="preserve">
<value>Lesezeichen</value> <value>Lesezeichen</value>
</data> </data>
<data name="MainWindow.Windows.ClassBrowser.AddToWorkspace" xml:space="preserve">
<value>Zum Arbeitsbereich hinzufügen</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.BackButton.ToolTip" xml:space="preserve"> <data name="MainWindow.Windows.ClassBrowser.BackButton.ToolTip" xml:space="preserve">
<value>Zurück</value> <value>Zurück</value>
</data> </data>
@ -4808,9 +4999,21 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.ClassBrowser.NoResultsFound" xml:space="preserve"> <data name="MainWindow.Windows.ClassBrowser.NoResultsFound" xml:space="preserve">
<value>Keine Suchergebnisse gefunden.</value> <value>Keine Suchergebnisse gefunden.</value>
</data> </data>
<data name="MainWindow.Windows.ClassBrowser.OpenAssemblyButton.ToolTip" xml:space="preserve">
<value>Assembly öffnen</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.OpenAssemblyFromFile" xml:space="preserve">
<value>Assembly aus Datei öffnen...</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.OpenAssemblyFromGAC" xml:space="preserve">
<value>Assembly aus GAC öffnen...</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.SearchButton.ToolTip" xml:space="preserve"> <data name="MainWindow.Windows.ClassBrowser.SearchButton.ToolTip" xml:space="preserve">
<value>Suche nach Klassenname</value> <value>Suche nach Klassenname</value>
</data> </data>
<data name="MainWindow.Windows.ClassBrowser.Workspace" xml:space="preserve">
<value>Arbeitsbereich {0}</value>
</data>
<data name="MainWindow.Windows.ClassScoutLabel" xml:space="preserve"> <data name="MainWindow.Windows.ClassScoutLabel" xml:space="preserve">
<value>Klassen</value> <value>Klassen</value>
</data> </data>
@ -4895,6 +5098,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.Debug.Conditional.Breakpoints.DisableBreakpoint" xml:space="preserve"> <data name="MainWindow.Windows.Debug.Conditional.Breakpoints.DisableBreakpoint" xml:space="preserve">
<value>Haltepunkt deaktivieren</value> <value>Haltepunkt deaktivieren</value>
</data> </data>
<data name="MainWindow.Windows.Debug.Conditional.Breakpoints.EditCondition" xml:space="preserve">
<value>Bedingung bearbeiten...</value>
</data>
<data name="MainWindow.Windows.Debug.Conditional.Breakpoints.EnableBreakpoint" xml:space="preserve"> <data name="MainWindow.Windows.Debug.Conditional.Breakpoints.EnableBreakpoint" xml:space="preserve">
<value>Haltepunkt aktivieren</value> <value>Haltepunkt aktivieren</value>
</data> </data>
@ -5273,6 +5479,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.SearchResultPanel.In" xml:space="preserve"> <data name="MainWindow.Windows.SearchResultPanel.In" xml:space="preserve">
<value>in</value> <value>in</value>
</data> </data>
<data name="MainWindow.Windows.SearchResultPanel.NoProject" xml:space="preserve">
<value>&lt;Kein Projekt&gt;</value>
</data>
<data name="MainWindow.Windows.SearchResultPanel.OccurrencesCount" xml:space="preserve"> <data name="MainWindow.Windows.SearchResultPanel.OccurrencesCount" xml:space="preserve">
<value>${Count} Ergebnisse</value> <value>${Count} Ergebnisse</value>
</data> </data>
@ -5288,6 +5497,12 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="MainWindow.Windows.SearchResultPanel.PerFile" xml:space="preserve"> <data name="MainWindow.Windows.SearchResultPanel.PerFile" xml:space="preserve">
<value>Pro Datei</value> <value>Pro Datei</value>
</data> </data>
<data name="MainWindow.Windows.SearchResultPanel.PerProject" xml:space="preserve">
<value>Pro Projekt</value>
</data>
<data name="MainWindow.Windows.SearchResultPanel.PerProjectAndFile" xml:space="preserve">
<value>Pro Projekt und Datei</value>
</data>
<data name="MainWindow.Windows.SearchResultPanel.SelectViewMode.ToolTip" xml:space="preserve"> <data name="MainWindow.Windows.SearchResultPanel.SelectViewMode.ToolTip" xml:space="preserve">
<value>Wähle Darstellungsmodus</value> <value>Wähle Darstellungsmodus</value>
</data> </data>
@ -5408,6 +5623,21 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="PortableLibrary.CouldNotFindTools" xml:space="preserve"> <data name="PortableLibrary.CouldNotFindTools" xml:space="preserve">
<value>Konnte die Portable Class Library Tools nicht finden.</value> <value>Konnte die Portable Class Library Tools nicht finden.</value>
</data> </data>
<data name="PortableLibrary.PortableSubset" xml:space="preserve">
<value>.NET Portable Teilmenge</value>
</data>
<data name="PortableLibrary.SelectAtLeastTwoFrameworks" xml:space="preserve">
<value>Zwei oder mehr Frameworks müssen gewählt werden.</value>
</data>
<data name="PortableLibrary.SelectedProfile" xml:space="preserve">
<value>Ausgewähltes Profil:</value>
</data>
<data name="PortableLibrary.SelectProfileDialog.Title" xml:space="preserve">
<value>Profil für portable Bibliothek auswählen</value>
</data>
<data name="PortableLibrary.ToolsInstallationHelp" xml:space="preserve">
<value>Um die Portable Class Library Tools ohne Visual Studio zu installieren, laden Sie die Datei (PortableLibraryTools.exe) auf Ihren Computer herunter und führen das Installationsprogramm von der Kommandozeile aus. Geben Sie zusätzlich den /buildmachine Schalter auf der Kommandozeile an.</value>
</data>
<data name="ProjectBrowser.Toolbar.CollapseAll" xml:space="preserve"> <data name="ProjectBrowser.Toolbar.CollapseAll" xml:space="preserve">
<value>Alle Knoten einklappen</value> <value>Alle Knoten einklappen</value>
</data> </data>
@ -5708,6 +5938,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="ResourceEditor.ResourceCodeGeneratorTool.CouldNotGenerateResourceProperty" xml:space="preserve"> <data name="ResourceEditor.ResourceCodeGeneratorTool.CouldNotGenerateResourceProperty" xml:space="preserve">
<value>Ressourcen-Codegenerator: Es konnte keine Ressourcen-Eigenschaft für die Ressource '{0}' erzeugt werden.</value> <value>Ressourcen-Codegenerator: Es konnte keine Ressourcen-Eigenschaft für die Ressource '{0}' erzeugt werden.</value>
</data> </data>
<data name="ResourceEditor.ResourceEdit.CommentColumn" xml:space="preserve">
<value>Kommentar</value>
</data>
<data name="ResourceEditor.ResourceEdit.ContentColumn" xml:space="preserve"> <data name="ResourceEditor.ResourceEdit.ContentColumn" xml:space="preserve">
<value>Inhalt</value> <value>Inhalt</value>
</data> </data>
@ -5720,6 +5953,12 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="ResourceEditor.ResourceEdit.ContextMenu.CopyResourceName" xml:space="preserve"> <data name="ResourceEditor.ResourceEdit.ContextMenu.CopyResourceName" xml:space="preserve">
<value>Kopiere Resourcenname</value> <value>Kopiere Resourcenname</value>
</data> </data>
<data name="ResourceEditor.ResourceEdit.ContextMenu.EditComment" xml:space="preserve">
<value>Kommentar bearbeiten</value>
</data>
<data name="ResourceEditor.ResourceEdit.ContextMenu.EditCommentText" xml:space="preserve">
<value>Einen neuen Text für den Ressourcen-Kommentar eingeben:</value>
</data>
<data name="ResourceEditor.ResourceEdit.ContextMenu.Rename" xml:space="preserve"> <data name="ResourceEditor.ResourceEdit.ContextMenu.Rename" xml:space="preserve">
<value>&amp;Umbenennen</value> <value>&amp;Umbenennen</value>
</data> </data>
@ -5736,6 +5975,9 @@ Bitte einen anderen verwenden.</value>
<data name="SharpDevelop.FileFilter.AllFiles" xml:space="preserve"> <data name="SharpDevelop.FileFilter.AllFiles" xml:space="preserve">
<value>Alle Dateien (*.*)</value> <value>Alle Dateien (*.*)</value>
</data> </data>
<data name="SharpDevelop.FileFilter.AllKnownFiles" xml:space="preserve">
<value>Alle bekannten Dateierweiterungen</value>
</data>
<data name="SharpDevelop.FileFilter.AssemblyFiles" xml:space="preserve"> <data name="SharpDevelop.FileFilter.AssemblyFiles" xml:space="preserve">
<value>Assemblydateien (*.exe;*.dll)</value> <value>Assemblydateien (*.exe;*.dll)</value>
</data> </data>
@ -5919,6 +6161,9 @@ Bitte einen anderen verwenden.</value>
<data name="SharpDevelop.Refactoring.OverridesOf" xml:space="preserve"> <data name="SharpDevelop.Refactoring.OverridesOf" xml:space="preserve">
<value>Überschreibunden von ${Name}</value> <value>Überschreibunden von ${Name}</value>
</data> </data>
<data name="SharpDevelop.Refactoring.PartsOfClass" xml:space="preserve">
<value>Teile von ${Name}</value>
</data>
<data name="SharpDevelop.Refactoring.ReferencesTo" xml:space="preserve"> <data name="SharpDevelop.Refactoring.ReferencesTo" xml:space="preserve">
<value>Referenzen auf ${Name}</value> <value>Referenzen auf ${Name}</value>
</data> </data>
@ -6684,6 +6929,12 @@ SharpDevelop 2 kompiliert Ressourcendateien anders: der Ressourcenname ist nicht
<data name="Templates.Project.GtkSharpProject.Name" xml:space="preserve"> <data name="Templates.Project.GtkSharpProject.Name" xml:space="preserve">
<value>Gtk#-Anwendung</value> <value>Gtk#-Anwendung</value>
</data> </data>
<data name="Templates.Project.PortableLibrary.Description" xml:space="preserve">
<value>Bibliothek, die auf Windows, Silverlight, Windows Phone und Xbox verwendet werden kann.</value>
</data>
<data name="Templates.Project.PortableLibrary.Name" xml:space="preserve">
<value>Portable Klassenbibliothek</value>
</data>
<data name="Templates.Project.PRISMApplicationSmallUnity.Description" xml:space="preserve"> <data name="Templates.Project.PRISMApplicationSmallUnity.Description" xml:space="preserve">
<value>Erstellt eine einfache PRISM-Anwendung mit Bootstrapper und Infrastruktur.</value> <value>Erstellt eine einfache PRISM-Anwendung mit Bootstrapper und Infrastruktur.</value>
</data> </data>

6
data/resources/StringResources.es-mx.resx

@ -2733,15 +2733,15 @@ También puede elegir guardar la opción en el archivo .user en lugar de en el a
<data name="FormsDesigner.DesignTabPages.SourceTabPage" xml:space="preserve"> <data name="FormsDesigner.DesignTabPages.SourceTabPage" xml:space="preserve">
<value>Código</value> <value>Código</value>
</data> </data>
<data name="Gloabl.Advanced" xml:space="preserve">
<value>Avanzado</value>
</data>
<data name="Global.AbortButtonText" xml:space="preserve"> <data name="Global.AbortButtonText" xml:space="preserve">
<value>Abortar</value> <value>Abortar</value>
</data> </data>
<data name="Global.AddButtonText" xml:space="preserve"> <data name="Global.AddButtonText" xml:space="preserve">
<value>&amp;Agregar</value> <value>&amp;Agregar</value>
</data> </data>
<data name="Global.Advanced" xml:space="preserve">
<value>Avanzado</value>
</data>
<data name="Global.BackButtonText" xml:space="preserve"> <data name="Global.BackButtonText" xml:space="preserve">
<value>&lt; Atrás</value> <value>&lt; Atrás</value>
</data> </data>

6
data/resources/StringResources.es.resx

@ -2783,15 +2783,15 @@ También puede escoger almacenar el parámetro de configuración en el archivo .
<data name="FormsDesigner.DesignTabPages.SourceTabPage" xml:space="preserve"> <data name="FormsDesigner.DesignTabPages.SourceTabPage" xml:space="preserve">
<value>Fuente</value> <value>Fuente</value>
</data> </data>
<data name="Gloabl.Advanced" xml:space="preserve">
<value>Avanzado</value>
</data>
<data name="Global.AbortButtonText" xml:space="preserve"> <data name="Global.AbortButtonText" xml:space="preserve">
<value>Abortar</value> <value>Abortar</value>
</data> </data>
<data name="Global.AddButtonText" xml:space="preserve"> <data name="Global.AddButtonText" xml:space="preserve">
<value>&amp;Agregar</value> <value>&amp;Agregar</value>
</data> </data>
<data name="Global.Advanced" xml:space="preserve">
<value>Avanzado</value>
</data>
<data name="Global.BackButtonText" xml:space="preserve"> <data name="Global.BackButtonText" xml:space="preserve">
<value>&lt; Atrás</value> <value>&lt; Atrás</value>
</data> </data>

6
data/resources/StringResources.fr.resx

@ -2870,15 +2870,15 @@ Vous pouvez aussi choisir de stocker la configuration dans le fichier .user-file
<data name="FormsDesigner.DesignTabPages.SourceTabPage" xml:space="preserve"> <data name="FormsDesigner.DesignTabPages.SourceTabPage" xml:space="preserve">
<value>Source</value> <value>Source</value>
</data> </data>
<data name="Gloabl.Advanced" xml:space="preserve">
<value>Avancé</value>
</data>
<data name="Global.AbortButtonText" xml:space="preserve"> <data name="Global.AbortButtonText" xml:space="preserve">
<value>Stopper</value> <value>Stopper</value>
</data> </data>
<data name="Global.AddButtonText" xml:space="preserve"> <data name="Global.AddButtonText" xml:space="preserve">
<value>&amp;Ajouter</value> <value>&amp;Ajouter</value>
</data> </data>
<data name="Global.Advanced" xml:space="preserve">
<value>Avancé</value>
</data>
<data name="Global.BackButtonText" xml:space="preserve"> <data name="Global.BackButtonText" xml:space="preserve">
<value>&lt; Retour</value> <value>&lt; Retour</value>
</data> </data>

6
data/resources/StringResources.it.resx

@ -2791,15 +2791,15 @@ Puoi anche scegliere di memorizzare le impostazioni in un file .user invece che
<data name="FormsDesigner.DesignTabPages.SourceTabPage" xml:space="preserve"> <data name="FormsDesigner.DesignTabPages.SourceTabPage" xml:space="preserve">
<value>Sorgente</value> <value>Sorgente</value>
</data> </data>
<data name="Gloabl.Advanced" xml:space="preserve">
<value>Avanzate</value>
</data>
<data name="Global.AbortButtonText" xml:space="preserve"> <data name="Global.AbortButtonText" xml:space="preserve">
<value>Annulla</value> <value>Annulla</value>
</data> </data>
<data name="Global.AddButtonText" xml:space="preserve"> <data name="Global.AddButtonText" xml:space="preserve">
<value>&amp;Aggiungi</value> <value>&amp;Aggiungi</value>
</data> </data>
<data name="Global.Advanced" xml:space="preserve">
<value>Avanzate</value>
</data>
<data name="Global.BackButtonText" xml:space="preserve"> <data name="Global.BackButtonText" xml:space="preserve">
<value>&lt; Indietro</value> <value>&lt; Indietro</value>
</data> </data>

30
data/resources/StringResources.nl.resx

@ -2879,15 +2879,15 @@ Er kan worden gekozen voor opslag van de instellingen in het .user bestand inpla
<data name="FormsDesigner.DesignTabPages.SourceTabPage" xml:space="preserve"> <data name="FormsDesigner.DesignTabPages.SourceTabPage" xml:space="preserve">
<value>Bron</value> <value>Bron</value>
</data> </data>
<data name="Gloabl.Advanced" xml:space="preserve">
<value>Uitgebreid</value>
</data>
<data name="Global.AbortButtonText" xml:space="preserve"> <data name="Global.AbortButtonText" xml:space="preserve">
<value>Afbreken</value> <value>Afbreken</value>
</data> </data>
<data name="Global.AddButtonText" xml:space="preserve"> <data name="Global.AddButtonText" xml:space="preserve">
<value>&amp;Toevoegen</value> <value>&amp;Toevoegen</value>
</data> </data>
<data name="Global.Advanced" xml:space="preserve">
<value>Uitgebreid</value>
</data>
<data name="Global.BackButtonText" xml:space="preserve"> <data name="Global.BackButtonText" xml:space="preserve">
<value>&lt; Terug</value> <value>&lt; Terug</value>
</data> </data>
@ -3740,6 +3740,12 @@ Noot: Dit beïnvloed eigen aangepaste opmaak niet.</value>
<data name="ICSharpCode.SharpDevelop.DefaultEditor.IncrementalSearch.ReverseSearchStatusBarMessage" xml:space="preserve"> <data name="ICSharpCode.SharpDevelop.DefaultEditor.IncrementalSearch.ReverseSearchStatusBarMessage" xml:space="preserve">
<value>Omgekeerd aanvullend zoeken:</value> <value>Omgekeerd aanvullend zoeken:</value>
</data> </data>
<data name="ICSharpCode.SharpDevelop.Dom.AssemblyInvalid" xml:space="preserve">
<value>{0} is ongeldig als .NET assembly</value>
</data>
<data name="ICSharpCode.SharpDevelop.Dom.AssemblyNotAccessible" xml:space="preserve">
<value>{0} is niet toegankelijk of bestaat niet meer.</value>
</data>
<data name="ICSharpCode.SharpDevelop.ErrorLoadingCodeCompletionInformation" xml:space="preserve"> <data name="ICSharpCode.SharpDevelop.ErrorLoadingCodeCompletionInformation" xml:space="preserve">
<value>Fout bij laden van code-completering informatie voor ${Assembly} van ${Filename}:</value> <value>Fout bij laden van code-completering informatie voor ${Assembly} van ${Filename}:</value>
</data> </data>
@ -4638,6 +4644,9 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v
<data name="ICSharpCode.WixBinding.WixVisualStudioExtensionTitle" xml:space="preserve"> <data name="ICSharpCode.WixBinding.WixVisualStudioExtensionTitle" xml:space="preserve">
<value>Visual Studio extensie</value> <value>Visual Studio extensie</value>
</data> </data>
<data name="ICSharpCode.WpfDesign.AddIn.ThumbnailViewPad" xml:space="preserve">
<value>WPF ontwerper thumbnail overzicht</value>
</data>
<data name="ICSharpCode.WPFDesigner.ContextMenu.Copy" xml:space="preserve"> <data name="ICSharpCode.WPFDesigner.ContextMenu.Copy" xml:space="preserve">
<value>Kopieëren</value> <value>Kopieëren</value>
</data> </data>
@ -4938,6 +4947,9 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v
<data name="MainWindow.Windows.BookmarksLabel" xml:space="preserve"> <data name="MainWindow.Windows.BookmarksLabel" xml:space="preserve">
<value>Bladwijzers</value> <value>Bladwijzers</value>
</data> </data>
<data name="MainWindow.Windows.ClassBrowser.AddToWorkspace" xml:space="preserve">
<value>Toevoegen aan werkruimte</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.BackButton.ToolTip" xml:space="preserve"> <data name="MainWindow.Windows.ClassBrowser.BackButton.ToolTip" xml:space="preserve">
<value>Vorige</value> <value>Vorige</value>
</data> </data>
@ -4977,9 +4989,21 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v
<data name="MainWindow.Windows.ClassBrowser.NoResultsFound" xml:space="preserve"> <data name="MainWindow.Windows.ClassBrowser.NoResultsFound" xml:space="preserve">
<value>Géén zoekresultaten gevonden.</value> <value>Géén zoekresultaten gevonden.</value>
</data> </data>
<data name="MainWindow.Windows.ClassBrowser.OpenAssemblyButton.ToolTip" xml:space="preserve">
<value>Open assembly...</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.OpenAssemblyFromFile" xml:space="preserve">
<value>Open assembly vanuit bestand...</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.OpenAssemblyFromGAC" xml:space="preserve">
<value>Assembly openen vanuit GAK...</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.SearchButton.ToolTip" xml:space="preserve"> <data name="MainWindow.Windows.ClassBrowser.SearchButton.ToolTip" xml:space="preserve">
<value>Zoeken in Klassen Overzicht</value> <value>Zoeken in Klassen Overzicht</value>
</data> </data>
<data name="MainWindow.Windows.ClassBrowser.Workspace" xml:space="preserve">
<value>Werkruimte {0}</value>
</data>
<data name="MainWindow.Windows.ClassScoutLabel" xml:space="preserve"> <data name="MainWindow.Windows.ClassScoutLabel" xml:space="preserve">
<value>Klassen Overzicht</value> <value>Klassen Overzicht</value>
</data> </data>

40
data/resources/StringResources.resx

@ -287,7 +287,7 @@ Download an AddIn from the Internet, then click 'Install AddIn' and choose the d
<value>View License Terms</value> <value>View License Terms</value>
</data> </data>
<data name="AddInManager2.DisableDependentWarning" xml:space="preserve"> <data name="AddInManager2.DisableDependentWarning" xml:space="preserve">
<value>Following installed AddIns are dependent from "{0}": <value>Following installed AddIns are depending on "{0}":
{1} {1}
@ -351,7 +351,7 @@ If you do not agree to the license terms click "I Decline".</value>
<value>Repositories</value> <value>Repositories</value>
</data> </data>
<data name="AddInManager2.RemoveDependentWarning" xml:space="preserve"> <data name="AddInManager2.RemoveDependentWarning" xml:space="preserve">
<value>Following installed AddIns are dependent from "{0}": <value>Following installed AddIns are depending on "{0}":
{1} {1}
@ -2958,15 +2958,15 @@ You can also choose to store the setting in the .user-file instead of the projec
<data name="FormsDesigner.DesignTabPages.SourceTabPage" xml:space="preserve"> <data name="FormsDesigner.DesignTabPages.SourceTabPage" xml:space="preserve">
<value>Source</value> <value>Source</value>
</data> </data>
<data name="Gloabl.Advanced" xml:space="preserve">
<value>Advanced</value>
</data>
<data name="Global.AbortButtonText" xml:space="preserve"> <data name="Global.AbortButtonText" xml:space="preserve">
<value>Abort</value> <value>Abort</value>
</data> </data>
<data name="Global.AddButtonText" xml:space="preserve"> <data name="Global.AddButtonText" xml:space="preserve">
<value>&amp;Add</value> <value>&amp;Add</value>
</data> </data>
<data name="Global.Advanced" xml:space="preserve">
<value>Advanced</value>
</data>
<data name="Global.BackButtonText" xml:space="preserve"> <data name="Global.BackButtonText" xml:space="preserve">
<value>&lt; Back</value> <value>&lt; Back</value>
</data> </data>
@ -4891,6 +4891,9 @@ Unable to find 'WelcomeDialogId' in Dialogs.wxs</comment>
<data name="ICSharpCode.WixBinding.WixVisualStudioExtensionTitle" xml:space="preserve"> <data name="ICSharpCode.WixBinding.WixVisualStudioExtensionTitle" xml:space="preserve">
<value>Visual Studio Extension</value> <value>Visual Studio Extension</value>
</data> </data>
<data name="ICSharpCode.WpfDesign.AddIn.ThumbnailViewPad" xml:space="preserve">
<value>WPF Designer Thumbnail View</value>
</data>
<data name="ICSharpCode.WPFDesigner.ContextMenu.Copy" xml:space="preserve"> <data name="ICSharpCode.WPFDesigner.ContextMenu.Copy" xml:space="preserve">
<value>Copy</value> <value>Copy</value>
</data> </data>
@ -5222,6 +5225,9 @@ Unable to find 'WelcomeDialogId' in Dialogs.wxs</comment>
<data name="MainWindow.Windows.BookmarksLabel" xml:space="preserve"> <data name="MainWindow.Windows.BookmarksLabel" xml:space="preserve">
<value>Bookmarks</value> <value>Bookmarks</value>
</data> </data>
<data name="MainWindow.Windows.ClassBrowser.AddToWorkspace" xml:space="preserve">
<value>Add to workspace</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.BackButton.ToolTip" xml:space="preserve"> <data name="MainWindow.Windows.ClassBrowser.BackButton.ToolTip" xml:space="preserve">
<value>Back</value> <value>Back</value>
</data> </data>
@ -5261,9 +5267,21 @@ Unable to find 'WelcomeDialogId' in Dialogs.wxs</comment>
<data name="MainWindow.Windows.ClassBrowser.NoResultsFound" xml:space="preserve"> <data name="MainWindow.Windows.ClassBrowser.NoResultsFound" xml:space="preserve">
<value>No search results found.</value> <value>No search results found.</value>
</data> </data>
<data name="MainWindow.Windows.ClassBrowser.OpenAssemblyButton.ToolTip" xml:space="preserve">
<value>Open assembly</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.OpenAssemblyFromFile" xml:space="preserve">
<value>Open assembly from file...</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.OpenAssemblyFromGAC" xml:space="preserve">
<value>Open assembly from GAC...</value>
</data>
<data name="MainWindow.Windows.ClassBrowser.SearchButton.ToolTip" xml:space="preserve"> <data name="MainWindow.Windows.ClassBrowser.SearchButton.ToolTip" xml:space="preserve">
<value>Class View Search</value> <value>Class View Search</value>
</data> </data>
<data name="MainWindow.Windows.ClassBrowser.Workspace" xml:space="preserve">
<value>Workspace {0}</value>
</data>
<data name="MainWindow.Windows.ClassScoutLabel" xml:space="preserve"> <data name="MainWindow.Windows.ClassScoutLabel" xml:space="preserve">
<value>Classes</value> <value>Classes</value>
</data> </data>
@ -5760,6 +5778,9 @@ Shows the full callstack of the error.</comment>
<value>in</value> <value>in</value>
<comment>used like this: occurrences IN files</comment> <comment>used like this: occurrences IN files</comment>
</data> </data>
<data name="MainWindow.Windows.SearchResultPanel.NoProject" xml:space="preserve">
<value>&lt;no project&gt;</value>
</data>
<data name="MainWindow.Windows.SearchResultPanel.OccurrencesCount" xml:space="preserve"> <data name="MainWindow.Windows.SearchResultPanel.OccurrencesCount" xml:space="preserve">
<value>${Count} occurrences</value> <value>${Count} occurrences</value>
</data> </data>
@ -5775,6 +5796,12 @@ Shows the full callstack of the error.</comment>
<data name="MainWindow.Windows.SearchResultPanel.PerFile" xml:space="preserve"> <data name="MainWindow.Windows.SearchResultPanel.PerFile" xml:space="preserve">
<value>Per file</value> <value>Per file</value>
</data> </data>
<data name="MainWindow.Windows.SearchResultPanel.PerProject" xml:space="preserve">
<value>Per project</value>
</data>
<data name="MainWindow.Windows.SearchResultPanel.PerProjectAndFile" xml:space="preserve">
<value>Per project and file</value>
</data>
<data name="MainWindow.Windows.SearchResultPanel.SelectViewMode.ToolTip" xml:space="preserve"> <data name="MainWindow.Windows.SearchResultPanel.SelectViewMode.ToolTip" xml:space="preserve">
<value>Select search list mode</value> <value>Select search list mode</value>
</data> </data>
@ -6466,6 +6493,9 @@ Removed the end part of the original message ", reason '${Message}'" since this
<data name="SharpDevelop.Refactoring.OverridesOf" xml:space="preserve"> <data name="SharpDevelop.Refactoring.OverridesOf" xml:space="preserve">
<value>Overrides of ${Name}</value> <value>Overrides of ${Name}</value>
</data> </data>
<data name="SharpDevelop.Refactoring.PartsOfClass" xml:space="preserve">
<value>Parts of ${Name}</value>
</data>
<data name="SharpDevelop.Refactoring.ReferencesTo" xml:space="preserve"> <data name="SharpDevelop.Refactoring.ReferencesTo" xml:space="preserve">
<value>References to ${Name}</value> <value>References to ${Name}</value>
<comment>Title for search results for references</comment> <comment>Title for search results for references</comment>

6
data/resources/StringResources.tr.resx

@ -2732,15 +2732,15 @@ Ayrıca bir ayarı proje dosyası yerine kullanıcı dosyası(.user-file) içind
<data name="FormsDesigner.DesignTabPages.SourceTabPage" xml:space="preserve"> <data name="FormsDesigner.DesignTabPages.SourceTabPage" xml:space="preserve">
<value>Kaynak</value> <value>Kaynak</value>
</data> </data>
<data name="Gloabl.Advanced" xml:space="preserve">
<value>Gelişmiş</value>
</data>
<data name="Global.AbortButtonText" xml:space="preserve"> <data name="Global.AbortButtonText" xml:space="preserve">
<value>Başarısız</value> <value>Başarısız</value>
</data> </data>
<data name="Global.AddButtonText" xml:space="preserve"> <data name="Global.AddButtonText" xml:space="preserve">
<value>Ekle</value> <value>Ekle</value>
</data> </data>
<data name="Global.Advanced" xml:space="preserve">
<value>Gelişmiş</value>
</data>
<data name="Global.BackButtonText" xml:space="preserve"> <data name="Global.BackButtonText" xml:space="preserve">
<value>&lt; Geri</value> <value>&lt; Geri</value>
</data> </data>

9
samples/XamlDesigner/Document.cs

@ -206,7 +206,14 @@ namespace ICSharpCode.XamlDesigner
{ {
OutlineRoot = null; OutlineRoot = null;
using (var xmlReader = XmlReader.Create(new StringReader(Text))) { using (var xmlReader = XmlReader.Create(new StringReader(Text))) {
DesignSurface.LoadDesigner(xmlReader, null); XamlLoadSettings settings = new XamlLoadSettings();
foreach (var assNode in Toolbox.Instance.AssemblyNodes)
{
settings.DesignerAssemblies.Add(assNode.Assembly);
}
settings.TypeFinder = MyTypeFinder.Instance;
DesignSurface.LoadDesigner(xmlReader, settings);
} }
if (DesignContext.RootItem != null) { if (DesignContext.RootItem != null) {
OutlineRoot = OutlineNode.Create(DesignContext.RootItem); OutlineRoot = OutlineNode.Create(DesignContext.RootItem);

7
samples/XamlDesigner/MainWindow.xaml

@ -1,4 +1,4 @@
<Window x:Class="ICSharpCode.XamlDesigner.MainWindow" <Window x:Class="ICSharpCode.XamlDesigner.MainWindow"
x:Name="root" x:Name="root"
xmlns="http://schemas.microsoft.com/netfx/2007/xaml/presentation" xmlns="http://schemas.microsoft.com/netfx/2007/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
@ -112,6 +112,11 @@
</AvalonDock:DockableContent> </AvalonDock:DockableContent>
</AvalonDock:DockablePane> </AvalonDock:DockablePane>
<AvalonDock:DockablePane>
<AvalonDock:DockableContent x:Name="content5" Title="Thumbnail">
<sd:ThumbnailView x:Name="uxThumbnailView" DesignSurface="{Binding DataContext.CurrentDocument.DesignSurface, ElementName=root, FallbackValue={x:Null}}" />
</AvalonDock:DockableContent>
</AvalonDock:DockablePane>
</AvalonDock:ResizingPanel> </AvalonDock:ResizingPanel>
</AvalonDock:DockingManager> </AvalonDock:DockingManager>
</DockPanel> </DockPanel>

49
samples/XamlDesigner/MyTypeFinder.cs

@ -0,0 +1,49 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Reflection;
using System.Text;
using ICSharpCode.WpfDesign.XamlDom;
namespace ICSharpCode.XamlDesigner
{
public class MyTypeFinder : XamlTypeFinder
{
public override Assembly LoadAssembly(string name)
{
foreach (var assemblyNode in Toolbox.Instance.AssemblyNodes)
{
if (assemblyNode.Name == name)
return assemblyNode.Assembly;
}
return null;
}
public override XamlTypeFinder Clone()
{
return _instance;
}
private static object lockObj = new object();
private static MyTypeFinder _instance;
public static MyTypeFinder Instance
{
get
{
lock (lockObj)
{
if (_instance == null)
{
_instance = new MyTypeFinder();
_instance.ImportFrom(CreateWpfTypeFinder());
}
}
return _instance;
}
}
}
}

103
samples/XamlDesigner/Toolbox.cs

@ -14,45 +14,47 @@ namespace ICSharpCode.XamlDesigner
public class Toolbox public class Toolbox
{ {
public Toolbox() public Toolbox()
{ {
AssemblyNodes = new ObservableCollection<AssemblyNode>(); AssemblyNodes = new ObservableCollection<AssemblyNode>();
LoadSettings(); LoadSettings();
} }
public static Toolbox Instance = new Toolbox(); public static Toolbox Instance = new Toolbox();
public ObservableCollection<AssemblyNode> AssemblyNodes { get; private set; } public ObservableCollection<AssemblyNode> AssemblyNodes { get; private set; }
public void AddAssembly(string path) public void AddAssembly(string path)
{ {
AddAssembly(path, true); AddAssembly(path, true);
} }
void AddAssembly(string path, bool updateSettings) void AddAssembly(string path, bool updateSettings)
{ {
var assembly = Assembly.LoadFile(path); var assembly = Assembly.LoadFile(path);
var node = new AssemblyNode(); MyTypeFinder.Instance.RegisterAssembly(assembly);
node.Assembly = assembly;
node.Path = path; var node = new AssemblyNode();
foreach (var t in assembly.GetExportedTypes()) { node.Assembly = assembly;
if (IsControl(t) && Metadata.IsPopularControl(t)) { node.Path = path;
node.Controls.Add(new ControlNode() { Type = t }); foreach (var t in assembly.GetExportedTypes()) {
} if (IsControl(t) /* && Metadata.IsPopularControl(t) */) {
} node.Controls.Add(new ControlNode() { Type = t });
}
}
node.Controls.Sort(delegate(ControlNode c1, ControlNode c2) { node.Controls.Sort(delegate(ControlNode c1, ControlNode c2) {
return c1.Name.CompareTo(c2.Name); return c1.Name.CompareTo(c2.Name);
}); });
AssemblyNodes.Add(node); AssemblyNodes.Add(node);
if (updateSettings) { if (updateSettings) {
if (Settings.Default.AssemblyList == null) { if (Settings.Default.AssemblyList == null) {
Settings.Default.AssemblyList = new StringCollection(); Settings.Default.AssemblyList = new StringCollection();
} }
Settings.Default.AssemblyList.Add(path); Settings.Default.AssemblyList.Add(path);
} }
} }
public void Remove(AssemblyNode node) public void Remove(AssemblyNode node)
{ {
@ -61,42 +63,47 @@ namespace ICSharpCode.XamlDesigner
} }
public void LoadSettings() public void LoadSettings()
{ {
if (Settings.Default.AssemblyList != null) { if (Settings.Default.AssemblyList != null) {
foreach (var path in Settings.Default.AssemblyList) { foreach (var path in Settings.Default.AssemblyList) {
AddAssembly(Environment.ExpandEnvironmentVariables(path), false); try
{
AddAssembly(Environment.ExpandEnvironmentVariables(path), false);
}
catch (Exception ex)
{ }
} }
} }
} }
static bool IsControl(Type t) static bool IsControl(Type t)
{ {
return !t.IsAbstract && !t.IsGenericTypeDefinition && t.IsSubclassOf(typeof(FrameworkElement)); return !t.IsAbstract && !t.IsGenericTypeDefinition && t.IsSubclassOf(typeof(FrameworkElement));
} }
} }
public class AssemblyNode public class AssemblyNode
{ {
public AssemblyNode() public AssemblyNode()
{ {
Controls = new List<ControlNode>(); Controls = new List<ControlNode>();
} }
public Assembly Assembly { get; set; } public Assembly Assembly { get; set; }
public List<ControlNode> Controls { get; private set; } public List<ControlNode> Controls { get; private set; }
public string Path { get; set; } public string Path { get; set; }
public string Name { public string Name {
get { return Assembly.GetName().Name; } get { return Assembly.GetName().Name; }
} }
} }
public class ControlNode public class ControlNode
{ {
public Type Type { get; set; } public Type Type { get; set; }
public string Name { public string Name {
get { return Type.Name; } get { return Type.Name; }
} }
} }
} }

13
samples/XamlDesigner/ToolboxView.xaml

@ -3,18 +3,23 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:Outline="clr-namespace:ICSharpCode.WpfDesign.Designer.OutlineView;assembly=ICSharpCode.WpfDesign.Designer" xmlns:Outline="clr-namespace:ICSharpCode.WpfDesign.Designer.OutlineView;assembly=ICSharpCode.WpfDesign.Designer"
xmlns:Default="clr-namespace:ICSharpCode.XamlDesigner"> xmlns:Default="clr-namespace:ICSharpCode.XamlDesigner">
<UserControl.ContextMenu>
<ContextMenu>
<MenuItem Header="Browse..." Click="BrowseForAssemblies_OnClick"></MenuItem>
</ContextMenu>
</UserControl.ContextMenu>
<UserControl.Resources> <UserControl.Resources>
<HierarchicalDataTemplate DataType="{x:Type Default:AssemblyNode}" <HierarchicalDataTemplate DataType="{x:Type Default:AssemblyNode}"
ItemsSource="{Binding Controls}"> ItemsSource="{Binding Controls}">
<Outline:IconItem Icon="Images/Reference.png" <Outline:IconItem Icon="Images/Reference.png"
Text="{Binding Name}" Text="{Binding Name}"
ToolTip="{Binding Path}" /> ToolTip="{Binding Path}" />
</HierarchicalDataTemplate> </HierarchicalDataTemplate>
<DataTemplate DataType="{x:Type Default:ControlNode}"> <DataTemplate DataType="{x:Type Default:ControlNode}">
<Outline:IconItem Icon="Images/Tag.png" <Outline:IconItem Icon="Images/Tag.png"
Text="{Binding Type.Name}" /> Text="{Binding Type.Name}" />
</DataTemplate> </DataTemplate>
</UserControl.Resources> </UserControl.Resources>

17
samples/XamlDesigner/ToolboxView.xaml.cs

@ -1,3 +1,4 @@
using System.IO;
using ICSharpCode.WpfDesign.Designer.OutlineView; using ICSharpCode.WpfDesign.Designer.OutlineView;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
@ -16,6 +17,7 @@ using System.Windows.Media.Imaging;
using System.Windows.Navigation; using System.Windows.Navigation;
using System.Windows.Shapes; using System.Windows.Shapes;
using ICSharpCode.WpfDesign.Designer.Services; using ICSharpCode.WpfDesign.Designer.Services;
using Microsoft.Win32;
namespace ICSharpCode.XamlDesigner namespace ICSharpCode.XamlDesigner
{ {
@ -73,5 +75,20 @@ namespace ICSharpCode.XamlDesigner
Toolbox.Instance.Remove(node); Toolbox.Instance.Remove(node);
} }
} }
private void BrowseForAssemblies_OnClick(object sender, RoutedEventArgs e)
{
var dlg = new OpenFileDialog();
dlg.Filter = "Assemblies (*.dll)|*.dll";
dlg.Multiselect = true;
dlg.CheckFileExists = true;
if (dlg.ShowDialog().Value)
{
foreach (var fileName in dlg.FileNames)
{
Toolbox.Instance.AddAssembly(fileName);
}
}
}
} }
} }

1
samples/XamlDesigner/XamlDesigner.csproj

@ -129,6 +129,7 @@
</Compile> </Compile>
<Compile Include="ExtensionMethods.cs" /> <Compile Include="ExtensionMethods.cs" />
<Compile Include="MainWindow_Commands.cs" /> <Compile Include="MainWindow_Commands.cs" />
<Compile Include="MyTypeFinder.cs" />
<Compile Include="Shell.cs" /> <Compile Include="Shell.cs" />
<Compile Include="MainWindow.xaml.cs"> <Compile Include="MainWindow.xaml.cs">
<DependentUpon>MainWindow.xaml</DependentUpon> <DependentUpon>MainWindow.xaml</DependentUpon>

12
src/AddIns/Analysis/CodeAnalysis/Src/AnalysisIdeOptionsPanel.xaml.cs

@ -1,10 +1,6 @@
/* // Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
* Created by SharpDevelop. // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
* User: Peter Forstmeier
* Date: 19.07.2012
* Time: 21:27
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System; using System;
using System.IO; using System.IO;
using ICSharpCode.Core; using ICSharpCode.Core;
@ -53,4 +49,4 @@ namespace ICSharpCode.CodeAnalysis
set { PropertyService.Set("CodeAnalysis.FxCopPath", value); } set { PropertyService.Set("CodeAnalysis.FxCopPath", value); }
} }
} }
} }

12
src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsPanel.xaml.cs

@ -1,10 +1,6 @@
/* // Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
* Created by SharpDevelop. // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
* User: Peter Forstmeier
* Date: 06/09/2012
* Time: 18:27
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
@ -288,4 +284,4 @@ namespace ICSharpCode.CodeAnalysis
#endregion #endregion
} }
} }

10
src/AddIns/Analysis/CodeAnalysis/Src/AnalysisProjectOptionsTreeNodes.cs

@ -1,10 +1,6 @@
/* // Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
* Created by SharpDevelop. // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
* User: Peter Forstmeier
* Date: 30.06.2012
* Time: 20:55
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System; using System;
using System.Collections.ObjectModel; using System.Collections.ObjectModel;
using System.Drawing; using System.Drawing;

12
src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageOptionsPanel.xaml.cs

@ -1,10 +1,6 @@
/* // Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
* Created by SharpDevelop. // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
* User: Peter Forstmeier
* Date: 09.06.2012
* Time: 17:03
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Collections.ObjectModel; using System.Collections.ObjectModel;
@ -108,4 +104,4 @@ namespace ICSharpCode.CodeCoverage
public ObservableCollection<CodeCoverageDisplayItem> DisplayItems {get; private set;} public ObservableCollection<CodeCoverageDisplayItem> DisplayItems {get; private set;}
} }
} }

12
src/AddIns/Analysis/CodeCoverage/Project/Src/CodeCoverageProjectOptionsPanel.xaml.cs

@ -1,10 +1,6 @@
/* // Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
* Created by SharpDevelop. // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
* User: Peter Forstmeier
* Date: 09.06.2012
* Time: 15:01
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System; using System;
using System.Collections.Specialized; using System.Collections.Specialized;
using System.IO; using System.IO;
@ -86,4 +82,4 @@ namespace ICSharpCode.CodeCoverage
IsDirty = true; IsDirty = true;
} }
} }
} }

4
src/AddIns/Analysis/CodeQuality/Gui/Commands/AnalyzeCodeQualityCommand.cs

@ -3,7 +3,7 @@
using System; using System;
using ICSharpCode.Core; using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop;
namespace ICSharpCode.CodeQuality.Gui namespace ICSharpCode.CodeQuality.Gui
{ {
@ -11,7 +11,7 @@ namespace ICSharpCode.CodeQuality.Gui
{ {
public override void Run() public override void Run()
{ {
WorkbenchSingleton.Workbench.ShowView(new AnalyzeCodeQualityViewContent()); SD.Workbench.ShowView(new AnalyzeCodeQualityViewContent());
} }
} }
} }

5
src/AddIns/Analysis/CodeQuality/Properties/AssemblyInfo.cs

@ -1,4 +1,7 @@
#region Using directives // Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
#region Using directives
using System; using System;
using System.Reflection; using System.Reflection;

11
src/AddIns/Analysis/CodeQuality/Reporting/BaseReport.cs

@ -1,11 +1,6 @@
/* // Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
* Created by SharpDevelop. // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
* User: Peter Forstmeier
* Date: 25.02.2012
* Time: 21:04
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.IO; using System.IO;

11
src/AddIns/Analysis/CodeQuality/Reporting/DependencyReport.cs

@ -1,11 +1,6 @@
/* // Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
* Created by SharpDevelop. // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
* User: Peter Forstmeier
* Date: 25.02.2012
* Time: 21:17
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Collections.ObjectModel; using System.Collections.ObjectModel;

11
src/AddIns/Analysis/CodeQuality/Reporting/OverviewReport.cs

@ -1,11 +1,6 @@
/* // Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
* Created by SharpDevelop. // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
* User: Peter Forstmeier
* Date: 13.02.2012
* Time: 19:46
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Collections.ObjectModel; using System.Collections.ObjectModel;

11
src/AddIns/Analysis/CodeQuality/Reporting/ReportViewModel.cs

@ -1,11 +1,6 @@
/* // Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
* Created by SharpDevelop. // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
* User: Peter Forstmeier
* Date: 26.02.2012
* Time: 18:10
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System; using System;
using ICSharpCode.CodeQuality.Engine.Dom; using ICSharpCode.CodeQuality.Engine.Dom;

4
src/AddIns/Analysis/MachineSpecifications/MachineSpecifications.Tests/Properties/AssemblyInfo.cs

@ -1,10 +1,14 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt) // Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
#region Using directives
using System; using System;
using System.Reflection; using System.Reflection;
using System.Runtime.InteropServices; using System.Runtime.InteropServices;
#endregion
// General Information about an assembly is controlled through the following // General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information // set of attributes. Change these attribute values to modify the information
// associated with an assembly. // associated with an assembly.

2
src/AddIns/Analysis/MachineSpecifications/MachineSpecifications/src/MSpecTestFramework.cs

@ -39,4 +39,4 @@ namespace ICSharpCode.MachineSpecifications
return false; return false;
} }
} }
} }

3
src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/ProfilerProcessRunner.cs

@ -11,6 +11,7 @@ using ICSharpCode.Profiler.Controller;
using ICSharpCode.Profiler.Controller.Data; using ICSharpCode.Profiler.Controller.Data;
using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Workbench;
namespace ICSharpCode.Profiler.AddIn namespace ICSharpCode.Profiler.AddIn
{ {
@ -39,7 +40,7 @@ namespace ICSharpCode.Profiler.AddIn
wasStarted = false; wasStarted = false;
} }
public Task<int> RunInOutputPadAsync(MessageViewCategory outputCategory, string program, params string[] arguments) public Task<int> RunInOutputPadAsync(IOutputCategory outputCategory, string program, params string[] arguments)
{ {
throw new NotImplementedException(); throw new NotImplementedException();
} }

12
src/AddIns/Analysis/SourceAnalysis/Src/AnalysisIdeOptionsPanel.xaml.cs

@ -1,10 +1,6 @@
/* // Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
* Created by SharpDevelop. // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
* User: Peter Forstmeier
* Date: 23.07.2012
* Time: 20:13
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics; using System.Diagnostics;
@ -105,4 +101,4 @@ namespace ICSharpCode.SourceAnalysis
} }
} }
} }
} }

12
src/AddIns/Analysis/SourceAnalysis/Src/AnalysisOptionsPanel.xaml.cs

@ -1,10 +1,6 @@
/* // Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
* Created by SharpDevelop. // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
* User: Peter Forstmeier
* Date: 21.07.2012
* Time: 18:51
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics; using System.Diagnostics;
@ -124,4 +120,4 @@ namespace ICSharpCode.SourceAnalysis
return newSettingsFile; return newSettingsFile;
} }
} }
} }

3
src/AddIns/Analysis/UnitTesting/Interfaces/IUnitTestTaskService.cs

@ -4,12 +4,13 @@
using System; using System;
using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Workbench;
namespace ICSharpCode.UnitTesting namespace ICSharpCode.UnitTesting
{ {
public interface IUnitTestTaskService public interface IUnitTestTaskService
{ {
MessageViewCategory BuildMessageViewCategory { get; } IOutputCategory BuildMessageViewCategory { get; }
void ClearExceptCommentTasks(); void ClearExceptCommentTasks();
void Add(SDTask task); void Add(SDTask task);
bool SomethingWentWrong { get; } bool SomethingWentWrong { get; }

3
src/AddIns/Analysis/UnitTesting/Interfaces/UnitTestTaskService.cs

@ -4,6 +4,7 @@
using System; using System;
using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Workbench;
namespace ICSharpCode.UnitTesting namespace ICSharpCode.UnitTesting
{ {
@ -14,7 +15,7 @@ namespace ICSharpCode.UnitTesting
TaskService.ClearExceptCommentTasks(); TaskService.ClearExceptCommentTasks();
} }
public MessageViewCategory BuildMessageViewCategory { public IOutputCategory BuildMessageViewCategory {
get { return TaskService.BuildMessageViewCategory; } get { return TaskService.BuildMessageViewCategory; }
} }

3
src/AddIns/Analysis/UnitTesting/Service/ITestService.cs

@ -7,6 +7,7 @@ using System.Threading.Tasks;
using ICSharpCode.Core; using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Project; using ICSharpCode.SharpDevelop.Project;
using ICSharpCode.SharpDevelop.Workbench;
namespace ICSharpCode.UnitTesting namespace ICSharpCode.UnitTesting
{ {
@ -18,7 +19,7 @@ namespace ICSharpCode.UnitTesting
/// </summary> /// </summary>
ITestFramework GetTestFrameworkForProject(IProject project); ITestFramework GetTestFrameworkForProject(IProject project);
MessageViewCategory UnitTestMessageView { get; } IOutputCategory UnitTestMessageView { get; }
/// <summary> /// <summary>
/// Gets the current test solution. /// Gets the current test solution.

3
src/AddIns/Analysis/UnitTesting/Service/SDTestService.cs

@ -8,6 +8,7 @@ using System.Threading.Tasks;
using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Project; using ICSharpCode.SharpDevelop.Project;
using ICSharpCode.SharpDevelop.Workbench;
using ICSharpCode.UnitTesting.Frameworks; using ICSharpCode.UnitTesting.Frameworks;
namespace ICSharpCode.UnitTesting namespace ICSharpCode.UnitTesting
@ -34,7 +35,7 @@ namespace ICSharpCode.UnitTesting
#region UnitTestMessageView #region UnitTestMessageView
MessageViewCategory unitTestMessageView; MessageViewCategory unitTestMessageView;
public MessageViewCategory UnitTestMessageView { public IOutputCategory UnitTestMessageView {
get { get {
if (unitTestMessageView == null) { if (unitTestMessageView == null) {
MessageViewCategory.Create(ref unitTestMessageView, MessageViewCategory.Create(ref unitTestMessageView,

11
src/AddIns/Analysis/UnitTesting/Test/Project/DoubleNestedTestClassWithBaseType.cs

@ -1,11 +1,6 @@
/* // Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
* Created by SharpDevelop. // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
* User: trecio
* Date: 2011-10-23
* Time: 16:15
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System; using System;
using System.Linq; using System.Linq;
using ICSharpCode.NRefactory.TypeSystem; using ICSharpCode.NRefactory.TypeSystem;

6
src/AddIns/Analysis/UnitTesting/TestRunner/TestExecutionManager.cs

@ -115,9 +115,9 @@ namespace ICSharpCode.UnitTesting.Frameworks
void ClearTasks() void ClearTasks()
{ {
taskService.BuildMessageViewCategory.ClearText(); taskService.BuildMessageViewCategory.Clear();
taskService.ClearExceptCommentTasks(); taskService.ClearExceptCommentTasks();
testService.UnitTestMessageView.ClearText(); testService.UnitTestMessageView.Clear();
} }
void ShowUnitTestsPad() void ShowUnitTestsPad()
@ -132,7 +132,7 @@ namespace ICSharpCode.UnitTesting.Frameworks
void ShowOutputPad() void ShowOutputPad()
{ {
workbench.GetPad(typeof(CompilerMessageView)).BringPadToFront(); testService.UnitTestMessageView.Activate(true);
} }
void ResetTestResults() void ResetTestResults()

2
src/AddIns/BackendBindings/CSharpBinding/Project/Resources/CSharp-Semantic.xshd

@ -38,6 +38,8 @@
<Color name="InactiveCode" foreground="Gray" exampleText="#{#Deactivated by #if#}#"/> <Color name="InactiveCode" foreground="Gray" exampleText="#{#Deactivated by #if#}#"/>
<Color name="SemanticError" foreground="DarkRed" exampleText="o.#{#MissingMethod#}#()"/> <Color name="SemanticError" foreground="DarkRed" exampleText="o.#{#MissingMethod#}#()"/>
<Property name="DocCommentMarker" value="///" />
<RuleSet name="CommentMarkerSet"> <RuleSet name="CommentMarkerSet">
<Keywords fontWeight="bold" foreground="Red"> <Keywords fontWeight="bold" foreground="Red">
<Word>TODO</Word> <Word>TODO</Word>

5
src/AddIns/BackendBindings/CSharpBinding/Project/Src/Completion/CSharpInsightItem.cs

@ -53,10 +53,11 @@ namespace CSharpBinding.Completion
var stringBuilder = new StringBuilder(); var stringBuilder = new StringBuilder();
var formatter = new ParameterHighlightingOutputFormatter(stringBuilder, highlightedParameterIndex); var formatter = new ParameterHighlightingOutputFormatter(stringBuilder, highlightedParameterIndex);
ambience.ConvertEntity(Method, formatter, FormattingOptionsFactory.CreateSharpDevelop()); ambience.ConvertEntity(Method, formatter, FormattingOptionsFactory.CreateSharpDevelop());
var inlineBuilder = new HighlightedInlineBuilder(stringBuilder.ToString()); string code = stringBuilder.ToString();
var inlineBuilder = new RichTextModel();
inlineBuilder.SetFontWeight(formatter.parameterStartOffset, formatter.parameterLength, FontWeights.Bold); inlineBuilder.SetFontWeight(formatter.parameterStartOffset, formatter.parameterLength, FontWeights.Bold);
header.Inlines.Clear(); header.Inlines.Clear();
header.Inlines.AddRange(inlineBuilder.CreateRuns()); header.Inlines.AddRange(new RichText(code, inlineBuilder).CreateRuns());
} }
public object Content { public object Content {

12
src/AddIns/BackendBindings/CSharpBinding/Project/Src/OptionPanels/BuildOptions.xaml.cs

@ -1,10 +1,6 @@
/* // Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
* Created by SharpDevelop. // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
* User: Peter Forstmeier
* Date: 05/02/2012
* Time: 19:54
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Diagnostics; using System.Diagnostics;
@ -76,4 +72,4 @@ namespace CSharpBinding.OptionPanels
#endregion #endregion
} }
} }

4
src/AddIns/BackendBindings/CSharpBinding/Project/Src/Parser/CSharpSymbolSearch.cs

@ -239,8 +239,8 @@ namespace CSharpBinding
{ {
internal readonly string newCode; internal readonly string newCode;
public RenameResultMatch(FileName fileName, TextLocation startLocation, TextLocation endLocation, int offset, int length, string newCode, HighlightedInlineBuilder builder = null, HighlightingColor defaultTextColor = null) public RenameResultMatch(FileName fileName, TextLocation startLocation, TextLocation endLocation, int offset, int length, string newCode, RichText richText = null, HighlightingColor defaultTextColor = null)
: base(fileName, startLocation, endLocation, offset, length, builder, defaultTextColor) : base(fileName, startLocation, endLocation, offset, length, richText, defaultTextColor)
{ {
this.newCode = newCode; this.newCode = newCode;
} }

4
src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/CreatePropertiesDialog.xaml.cs

@ -99,9 +99,9 @@ namespace CSharpBinding.Refactoring
AstType interfaceTypeNode = refactoringContext.CreateShortType("System.ComponentModel", "INotifyPropertyChanged", 0); AstType interfaceTypeNode = refactoringContext.CreateShortType("System.ComponentModel", "INotifyPropertyChanged", 0);
var directBaseTypes = currentClass.DirectBaseTypes.Where(t => t.FullName != "System.Object"); var directBaseTypes = currentClass.DirectBaseTypes.Where(t => t.FullName != "System.Object");
if (currentClassDeclaration.BaseTypes.Count > 0) { if (currentClassDeclaration.BaseTypes.Count > 0) {
script.InsertText(insertion, ", " + interfaceTypeNode.GetText() + " "); script.InsertText(insertion, ", " + interfaceTypeNode + " ");
} else { } else {
script.InsertText(insertion, " : " + interfaceTypeNode.GetText() + " "); script.InsertText(insertion, " : " + interfaceTypeNode + " ");
} }
} }

2
src/AddIns/BackendBindings/CSharpBinding/Project/Src/Refactoring/OverrideEqualsGetHashCodeMethodsDialog.xaml.cs

@ -320,7 +320,7 @@ namespace CSharpBinding.Refactoring
method.Body.Add(new VariableDeclarationStatement( method.Body.Add(new VariableDeclarationStatement(
currentType.Clone(), currentType.Clone(),
"other", "other",
new CastExpression(currentType.Clone(), new IdentifierExpression("obj")))); new IdentifierExpression("obj").CastAs(currentType.Clone())));
method.Body.Add(new IfElseStatement( method.Body.Add(new IfElseStatement(
new BinaryOperatorExpression(new IdentifierExpression("other"), BinaryOperatorType.Equality, new PrimitiveExpression(null, "null")), new BinaryOperatorExpression(new IdentifierExpression("other"), BinaryOperatorType.Equality, new PrimitiveExpression(null, "null")),
new ReturnStatement(new PrimitiveExpression(false, "false")))); new ReturnStatement(new PrimitiveExpression(false, "false"))));

12
src/AddIns/BackendBindings/CppBinding/CppBinding/Project/LinkerOptions.xaml.cs

@ -1,10 +1,6 @@
/* // Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
* Created by SharpDevelop. // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
* User: Peter Forstmeier
* Date: 21.04.2012
* Time: 20:14
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System; using System;
using System.ComponentModel; using System.ComponentModel;
using System.Windows; using System.Windows;
@ -170,4 +166,4 @@ namespace ICSharpCode.CppBinding.Project
} }
} }
} }

12
src/AddIns/BackendBindings/CppBinding/CppBinding/Project/PreprocessorOptions.xaml.cs

@ -1,10 +1,6 @@
/* // Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
* Created by SharpDevelop. // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
* User: Peter Forstmeier
* Date: 14.04.2012
* Time: 17:53
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System; using System;
using System.ComponentModel; using System.ComponentModel;
using System.Windows; using System.Windows;
@ -139,4 +135,4 @@ namespace ICSharpCode.CppBinding.Project
IsDirty = true; IsDirty = true;
} }
} }
} }

5
src/AddIns/BackendBindings/JavaScriptBinding/Project/Src/ES3/ES3Lexer.Action.cs

@ -1,3 +1,6 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Globalization; using System.Globalization;
@ -163,4 +166,4 @@ namespace Xebic.Parsers.ES3
return result; return result;
} }
} }
} }

5
src/AddIns/BackendBindings/JavaScriptBinding/Project/Src/ES3/ES3Parser.Action.cs

@ -1,3 +1,6 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
@ -171,4 +174,4 @@ namespace Xebic.Parsers.ES3
} }
} }
} }
} }

7
src/AddIns/BackendBindings/Python/PythonBinding/Test/Parsing/PythonParserParsePropertyTests.cs

@ -1,4 +1,7 @@
using System; // Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using ICSharpCode.PythonBinding; using ICSharpCode.PythonBinding;
using ICSharpCode.SharpDevelop.Dom; using ICSharpCode.SharpDevelop.Dom;
using NUnit.Framework; using NUnit.Framework;
@ -116,4 +119,4 @@ namespace PythonBinding.Tests.Parsing
Assert.AreEqual(0, count); Assert.AreEqual(0, count);
} }
} }
} }

18
src/AddIns/BackendBindings/XamlBinding/XamlBinding/NodeWrapper.cs

@ -1,18 +0,0 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Collections.Generic;
namespace ICSharpCode.XamlBinding
{
public class NodeWrapper {
public string ElementName { get; set; }
public string Name { get; set; }
public int StartOffset { get; set; }
public int EndOffset { get; set; }
public IList<NodeWrapper> Children { get; set; }
}
}

1
src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlBinding.csproj

@ -91,7 +91,6 @@
</Compile> </Compile>
<Compile Include="MarkupExtensionTokenKind.cs"> <Compile Include="MarkupExtensionTokenKind.cs">
</Compile> </Compile>
<Compile Include="NodeWrapper.cs" />
<Compile Include="Options\CodeCompletion.xaml.cs"> <Compile Include="Options\CodeCompletion.xaml.cs">
<DependentUpon>CodeCompletion.xaml</DependentUpon> <DependentUpon>CodeCompletion.xaml</DependentUpon>
<SubType>Code</SubType> <SubType>Code</SubType>

83
src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlOutlineContentHost.xaml.cs

@ -2,10 +2,13 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System; using System;
using System.IO;
using System.Linq;
using System.Windows.Controls; using System.Windows.Controls;
using System.Windows.Input; using System.Windows.Input;
using ICSharpCode.Core; using ICSharpCode.Core;
using ICSharpCode.NRefactory.Xml;
using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Editor; using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.Gui;
@ -34,56 +37,64 @@ namespace ICSharpCode.XamlBinding
if (this.editor == null || !FileUtility.IsEqualFileName(this.editor.FileName, e.FileName)) if (this.editor == null || !FileUtility.IsEqualFileName(this.editor.FileName, e.FileName))
return; return;
#warning Reimplement XAML outline var parseInfo = e.NewParseInformation as XamlFullParseInformation;
// var cu = e.NewSyntaxTree as XamlSyntaxTree; if (parseInfo != null && parseInfo.Document != null)
// UpdateTree(parseInfo.Document);
// if (cu != null && cu.TreeRootNode != null)
// UpdateTree(cu.TreeRootNode);
} }
void UpdateTree(NodeWrapper root) void UpdateTree(AXmlDocument root)
{ {
if (this.treeView.Root == null) if (treeView.Root == null) {
this.treeView.Root = BuildNode(root); treeView.Root = new XamlOutlineNode {
else ElementName = "Document Root",
UpdateNode(this.treeView.Root as XamlOutlineNode, root); Name = Path.GetFileName(editor.FileName),
Editor = editor
};
}
UpdateNode(treeView.Root as XamlOutlineNode, root);
} }
void UpdateNode(XamlOutlineNode node, NodeWrapper dataNode) void UpdateNode(XamlOutlineNode node, AXmlObject dataNode)
{ {
if (dataNode != null && node != null) { if (dataNode == null || node == null)
node.Name = dataNode.Name; return;
node.ElementName = dataNode.ElementName; if (dataNode is AXmlElement) {
node.Marker = editor.Document.CreateAnchor(Utils.MinMax(dataNode.StartOffset, 0, editor.Document.TextLength)); var item = (AXmlElement)dataNode;
node.EndMarker = editor.Document.CreateAnchor(Utils.MinMax(dataNode.EndOffset, 0, editor.Document.TextLength)); node.Name = item.GetAttributeValue("Name") ?? item.GetAttributeValue(XamlConst.XamlNamespace, "Name");
node.ElementName = item.Name;
int childrenCount = node.Children.Count; }
int dataCount = dataNode.Children.Count; node.Marker = editor.Document.CreateAnchor(Utils.MinMax(dataNode.StartOffset, 0, editor.Document.TextLength));
node.EndMarker = editor.Document.CreateAnchor(Utils.MinMax(dataNode.EndOffset, 0, editor.Document.TextLength));
for (int i = 0; i < Math.Max(childrenCount, dataCount); i++) {
if (i >= childrenCount) { var dataChildren = dataNode.Children.OfType<AXmlElement>().ToList();
node.Children.Add(BuildNode(dataNode.Children[i]));
} else if (i >= dataCount) { int childrenCount = node.Children.Count;
while (node.Children.Count > dataCount) int dataCount = dataChildren.Count;
node.Children.RemoveAt(dataCount);
} else { for (int i = 0; i < Math.Max(childrenCount, dataCount); i++) {
UpdateNode(node.Children[i] as XamlOutlineNode, dataNode.Children[i]); if (i >= childrenCount) {
} node.Children.Add(BuildNode(dataChildren[i]));
} else if (i >= dataCount) {
while (node.Children.Count > dataCount)
node.Children.RemoveAt(dataCount);
} else {
UpdateNode(node.Children[i] as XamlOutlineNode, dataChildren[i]);
} }
} }
} }
XamlOutlineNode BuildNode(NodeWrapper item) XamlOutlineNode BuildNode(AXmlElement item)
{ {
XamlOutlineNode node = new XamlOutlineNode() { XamlOutlineNode node = new XamlOutlineNode {
Name = item.Name, Name = item.GetAttributeValue("Name") ?? item.GetAttributeValue(XamlConst.XamlNamespace, "Name"),
ElementName = item.ElementName, ElementName = item.Name,
Marker = editor.Document.CreateAnchor(Utils.MinMax(item.StartOffset, 0, editor.Document.TextLength - 1)), Marker = editor.Document.CreateAnchor(Utils.MinMax(item.StartOffset, 0, editor.Document.TextLength - 1)),
EndMarker = editor.Document.CreateAnchor(Utils.MinMax(item.EndOffset, 0, editor.Document.TextLength - 1)), EndMarker = editor.Document.CreateAnchor(Utils.MinMax(item.EndOffset, 0, editor.Document.TextLength - 1)),
Editor = editor Editor = editor
}; };
foreach (var child in item.Children) foreach (var child in item.Children.OfType<AXmlElement>())
node.Children.Add(BuildNode(child)); node.Children.Add(BuildNode(child));
return node; return node;
@ -96,9 +107,7 @@ namespace ICSharpCode.XamlBinding
} }
public object OutlineContent { public object OutlineContent {
get { get { return this; }
return this;
}
} }
public void Dispose() public void Dispose()

8
src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlOutlineNode.cs

@ -6,12 +6,14 @@ using System.Linq;
using System.Windows; using System.Windows;
using ICSharpCode.NRefactory.Editor; using ICSharpCode.NRefactory.Editor;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Editor; using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.TreeView; using ICSharpCode.TreeView;
namespace ICSharpCode.XamlBinding namespace ICSharpCode.XamlBinding
{ {
class XamlOutlineNode : SharpTreeNode { class XamlOutlineNode : SharpTreeNode
{
string elementName, name; string elementName, name;
public string ElementName { public string ElementName {
@ -107,5 +109,9 @@ namespace ICSharpCode.XamlBinding
public override object Text { public override object Text {
get { return (!string.IsNullOrEmpty(Name) ? ElementName + " (" + Name + ")" : ElementName); } get { return (!string.IsNullOrEmpty(Name) ? ElementName + " (" + Name + ")" : ElementName); }
} }
public override object Icon {
get { return SD.ResourceService.GetImageSource("Icons.16x16.HtmlElements.Element"); }
}
} }
} }

9
src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlUnresolvedFile.cs

@ -31,9 +31,10 @@ namespace ICSharpCode.XamlBinding
public static XamlUnresolvedFile Create(FileName fileName, ITextSource fileContent, AXmlDocument document) public static XamlUnresolvedFile Create(FileName fileName, ITextSource fileContent, AXmlDocument document)
{ {
XamlUnresolvedFile file = new XamlUnresolvedFile(fileName); XamlUnresolvedFile file = new XamlUnresolvedFile(fileName);
ReadOnlyDocument textDocument = new ReadOnlyDocument(fileContent, fileName);
file.errors.AddRange(document.SyntaxErrors.Select(err => new Error(ErrorType.Error, err.Description))); file.errors.AddRange(document.SyntaxErrors.Select(err => new Error(ErrorType.Error, err.Description, textDocument.GetLocation(err.StartOffset))));
var visitor = new XamlDocumentVisitor(file, fileContent); var visitor = new XamlDocumentVisitor(file, textDocument);
visitor.VisitDocument(document); visitor.VisitDocument(document);
if (visitor.TypeDefinition != null) if (visitor.TypeDefinition != null)
file.topLevel = new[] { visitor.TypeDefinition }; file.topLevel = new[] { visitor.TypeDefinition };
@ -130,10 +131,10 @@ namespace ICSharpCode.XamlBinding
AXmlDocument currentDocument; AXmlDocument currentDocument;
ReadOnlyDocument textDocument; ReadOnlyDocument textDocument;
public XamlDocumentVisitor(IUnresolvedFile file, ITextSource fileContent) public XamlDocumentVisitor(IUnresolvedFile file, ReadOnlyDocument textDocument)
{ {
this.file = file; this.file = file;
textDocument = new ReadOnlyDocument(fileContent, file.FileName); this.textDocument = textDocument;
} }
public override void VisitDocument(AXmlDocument document) public override void VisitDocument(AXmlDocument document)

2
src/AddIns/Debugger/Debugger.AddIn/Debugger.AddIn.addin

@ -165,7 +165,7 @@
<Path name = "/SharpDevelop/Services/DebuggerService/ModuleContextMenu"> <Path name = "/SharpDevelop/Services/DebuggerService/ModuleContextMenu">
<MenuItem id = "AddModuleToWorkspace" <MenuItem id = "AddModuleToWorkspace"
label = "Add to workspace" label = "${res:MainWindow.Windows.ClassBrowser.AddToWorkspace}"
icon = "Icons.16x16.AssemblyFromFile" icon = "Icons.16x16.AssemblyFromFile"
class = "ICSharpCode.SharpDevelop.Gui.Pads.AddModuleToWorkspaceCommand"/> class = "ICSharpCode.SharpDevelop.Gui.Pads.AddModuleToWorkspaceCommand"/>
</Path> </Path>

2
src/AddIns/Debugger/Debugger.AddIn/Options/DebuggingOptionsPanel.xaml

@ -22,7 +22,7 @@
IsChecked="{sd:OptionBinding debugger:DebuggingOptions.PauseOnHandledExceptions}" /> IsChecked="{sd:OptionBinding debugger:DebuggingOptions.PauseOnHandledExceptions}" />
</widgets:StackPanelWithSpacing> </widgets:StackPanelWithSpacing>
</GroupBox> </GroupBox>
<GroupBox Margin="5" Header="{sd:Localize Gloabl.Advanced}"> <GroupBox Margin="5" Header="{sd:Localize Global.Advanced}">
<widgets:StackPanelWithSpacing SpaceBetweenItems="5"> <widgets:StackPanelWithSpacing SpaceBetweenItems="5">
<!-- <!--
<CheckBox Content="{sd:Localize Dialog.Options.IDEOptions.Debugging.EnableEditAndContinue}" <CheckBox Content="{sd:Localize Dialog.Options.IDEOptions.Debugging.EnableEditAndContinue}"

142
src/AddIns/Debugger/Debugger.AddIn/Pads/ClassBrowserSupport.cs

@ -21,17 +21,18 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
public static void Attach(Debugger.Process process) public static void Attach(Debugger.Process process)
{ {
var classBrowser = SD.GetService<IClassBrowser>(); var classBrowser = SD.GetService<IClassBrowser>();
classBrowser.SpecialNodes.Add(new DebuggerProcessTreeNode(process)); classBrowser.AssemblyLists.Add(new DebuggerProcessAssemblyList(process));
} }
public static void Detach(Debugger.Process process) public static void Detach(Debugger.Process process)
{ {
var classBrowser = SD.GetService<IClassBrowser>(); var classBrowser = SD.GetService<IClassBrowser>();
var nodes = classBrowser.SpecialNodes var nodes = classBrowser.AssemblyLists
.Where(n => n.Model == process) .OfType<DebuggerProcessAssemblyList>()
.Where(n => n.Process == process)
.ToArray(); .ToArray();
foreach (var node in nodes) { foreach (var node in nodes) {
classBrowser.SpecialNodes.Remove(node); classBrowser.AssemblyLists.Remove(node);
} }
} }
} }
@ -40,48 +41,89 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
{ {
public Type GetSupportedType(object model) public Type GetSupportedType(object model)
{ {
if (model is Debugger.Process) if (model is DebuggerProcessAssemblyList)
return typeof(Debugger.Process); return typeof(DebuggerProcessAssemblyList);
if (model is Debugger.Module) if (model is DebuggerModuleModel)
return typeof(Debugger.Module); return typeof(DebuggerModuleModel);
return null; return null;
} }
public ICSharpCode.TreeView.SharpTreeNode CreateTreeNode(object model) public ICSharpCode.TreeView.SharpTreeNode CreateTreeNode(object model)
{ {
if (model is Debugger.Process) if (model is DebuggerProcessAssemblyList)
return new DebuggerProcessTreeNode((Debugger.Process)model); return new DebuggerProcessTreeNode((DebuggerProcessAssemblyList)model);
if (model is Debugger.Module) if (model is DebuggerModuleModel)
return new DebuggerModuleTreeNode((Debugger.Module)model); return new DebuggerModuleTreeNode((DebuggerModuleModel)model);
return null; return null;
} }
} }
class DebuggerProcessTreeNode : ModelCollectionTreeNode class DebuggerProcessAssemblyList : IAssemblyList
{ {
Debugger.Process process; Debugger.Process process;
IMutableModelCollection<Debugger.Module> modules; IMutableModelCollection<DebuggerModuleModel> moduleModels;
public DebuggerProcessTreeNode(Debugger.Process process) public DebuggerProcessAssemblyList(Debugger.Process process)
{ {
if (process == null) if (process == null)
throw new ArgumentNullException("process"); throw new ArgumentNullException("process");
this.process = process; this.process = process;
this.modules = new SimpleModelCollection<Debugger.Module>(this.process.Modules); this.moduleModels = new NullSafeSimpleModelCollection<DebuggerModuleModel>();
this.moduleModels.AddRange(this.process.Modules.Select(m => new DebuggerModuleModel(m)));
this.Assemblies = new NullSafeSimpleModelCollection<IAssemblyModel>();
this.Assemblies.AddRange(moduleModels.Select(mm => mm.AssemblyModel));
this.process.ModuleLoaded += ModuleLoaded; this.process.ModuleLoaded += ModuleLoaded;
this.process.ModuleUnloaded += ModuleUnloaded; this.process.ModuleUnloaded += ModuleUnloaded;
} }
void ModuleLoaded(object sender, ModuleEventArgs e) void ModuleLoaded(object sender, ModuleEventArgs e)
{ {
modules.Add(e.Module); DebuggerModuleModel model = new DebuggerModuleModel(e.Module);
moduleModels.Add(model);
Assemblies.Add(model.AssemblyModel);
} }
void ModuleUnloaded(object sender, ModuleEventArgs e) void ModuleUnloaded(object sender, ModuleEventArgs e)
{ {
modules.Remove(e.Module); DebuggerModuleModel deletedModel = moduleModels.FirstOrDefault(mm => mm.Module == e.Module);
if (deletedModel != null) {
moduleModels.Remove(deletedModel);
Assemblies.Remove(deletedModel.AssemblyModel);
}
} }
public string Name { get; set; }
public IMutableModelCollection<IAssemblyModel> Assemblies { get; set; }
public IMutableModelCollection<DebuggerModuleModel> ModuleModels
{
get {
return moduleModels;
}
}
public Debugger.Process Process
{
get {
return process;
}
}
}
class DebuggerProcessTreeNode : ModelCollectionTreeNode
{
Debugger.Process process;
DebuggerProcessAssemblyList assemblyList;
public DebuggerProcessTreeNode(DebuggerProcessAssemblyList assemblyList)
{
if (assemblyList == null)
throw new ArgumentNullException("assemblyList");
this.assemblyList = assemblyList;
this.process = assemblyList.Process;
}
protected override object GetModel() protected override object GetModel()
{ {
return process; return process;
@ -89,7 +131,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
protected override IModelCollection<object> ModelChildren { protected override IModelCollection<object> ModelChildren {
get { get {
return modules; return assemblyList.ModuleModels;
} }
} }
@ -112,16 +154,53 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
} }
} }
class DebuggerModuleTreeNode : AssemblyTreeNode class DebuggerModuleModel
{ {
Debugger.Module module; Module module;
IAssemblyModel assemblyModel;
public DebuggerModuleTreeNode(Module module) public DebuggerModuleModel(Module module)
: base(CreateAssemblyModel(module))
{ {
if (module == null) if (module == null)
throw new ArgumentNullException("module"); throw new ArgumentNullException("module");
this.module = module; this.module = module;
this.assemblyModel = CreateAssemblyModel(module);
}
public Module Module
{
get {
return module;
}
}
public IAssemblyModel AssemblyModel
{
get {
return assemblyModel;
}
}
static IAssemblyModel CreateAssemblyModel(Module module)
{
// references??
IEntityModelContext context = new AssemblyEntityModelContext(module.Assembly.UnresolvedAssembly);
IAssemblyModel model = SD.GetRequiredService<IModelFactory>().CreateAssemblyModel(context);
if (model is IUpdateableAssemblyModel) {
((IUpdateableAssemblyModel)model).Update(EmptyList<IUnresolvedTypeDefinition>.Instance, module.Assembly.TopLevelTypeDefinitions.SelectMany(td => td.Parts).ToList());
}
return model;
}
}
class DebuggerModuleTreeNode : AssemblyTreeNode
{
Debugger.Module module;
public DebuggerModuleTreeNode(DebuggerModuleModel model)
: base(model.AssemblyModel)
{
this.module = model.Module;
} }
public override object Icon { public override object Icon {
@ -143,21 +222,10 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
var ctx = MenuService.ShowContextMenu(null, assemblyModel, "/SharpDevelop/Services/DebuggerService/ModuleContextMenu"); var ctx = MenuService.ShowContextMenu(null, assemblyModel, "/SharpDevelop/Services/DebuggerService/ModuleContextMenu");
} }
} }
static IAssemblyModel CreateAssemblyModel(Module module)
{
// references??
IEntityModelContext context = new AssemblyEntityModelContext(module.Assembly.UnresolvedAssembly);
IAssemblyModel model = SD.GetRequiredService<IModelFactory>().CreateAssemblyModel(context);
if (model is IUpdateableAssemblyModel) {
((IUpdateableAssemblyModel)model).Update(EmptyList<IUnresolvedTypeDefinition>.Instance, module.Assembly.TopLevelTypeDefinitions.SelectMany(td => td.Parts).ToList());
}
return model;
}
} }
/// <summary> /// <summary>
/// RunAssemblyWithDebuggerCommand. /// AddModuleToWorkspaceCommand.
/// </summary> /// </summary>
class AddModuleToWorkspaceCommand : SimpleCommand class AddModuleToWorkspaceCommand : SimpleCommand
{ {
@ -177,7 +245,7 @@ namespace ICSharpCode.SharpDevelop.Gui.Pads
// Create a new copy of this assembly model // Create a new copy of this assembly model
IAssemblyModel newAssemblyModel = modelFactory.SafelyCreateAssemblyModelFromFile(assemblyModel.Context.Location); IAssemblyModel newAssemblyModel = modelFactory.SafelyCreateAssemblyModelFromFile(assemblyModel.Context.Location);
if (newAssemblyModel != null) if (newAssemblyModel != null)
classBrowser.AssemblyList.Assemblies.Add(newAssemblyModel); classBrowser.MainAssemblyList.Assemblies.Add(newAssemblyModel);
} }
} }
} }

2
src/AddIns/Debugger/Debugger.Core/Eval.cs

@ -134,7 +134,7 @@ namespace Debugger
appDomain.Process.activeEvals.Add(this); appDomain.Process.activeEvals.Add(this);
appDomain.Process.AsyncContinue(DebuggeeStateAction.Keep); appDomain.Process.AsyncContinue(DebuggeeStateAction.Keep, evalThread);
} }
/// <exception cref="DebuggerException">Evaluation can not be stopped</exception> /// <exception cref="DebuggerException">Evaluation can not be stopped</exception>

1
src/AddIns/Debugger/Debugger.Core/ManagedCallback.cs

@ -98,6 +98,7 @@ namespace Debugger
process.AsyncContinue(DebuggeeStateAction.Keep); process.AsyncContinue(DebuggeeStateAction.Keep);
} else if (process.Evaluating) { } else if (process.Evaluating) {
// Ignore events during property evaluation // Ignore events during property evaluation
pausedEventArgs = null;
process.AsyncContinue(DebuggeeStateAction.Keep); process.AsyncContinue(DebuggeeStateAction.Keep);
} else if (pauseOnNextExit) { } else if (pauseOnNextExit) {
// process.TraceMessage("Callback exit: Paused"); // process.TraceMessage("Callback exit: Paused");

2
src/AddIns/Debugger/Debugger.Core/Options.cs

@ -2,6 +2,8 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System.Collections.Generic; using System.Collections.Generic;
using System;
namespace Debugger namespace Debugger
{ {
public class Options public class Options

12
src/AddIns/Debugger/Debugger.Core/Process.cs

@ -461,12 +461,18 @@ namespace Debugger
AsyncContinue(DebuggeeStateAction.Clear); AsyncContinue(DebuggeeStateAction.Clear);
} }
/// <param name="threadsToRun"> Null to keep current setting </param> /// <param name="threadToRun"> Run this thread and freeze all other threads </param>
/// <param name="newThreadState"> What happens to created threads. Null to keep current setting </param> internal void AsyncContinue(DebuggeeStateAction action, Thread threadToRun = null)
internal void AsyncContinue(DebuggeeStateAction action)
{ {
AssertPaused(); AssertPaused();
if (threadToRun != null) {
corProcess.SetAllThreadsDebugState(CorDebugThreadState.THREAD_SUSPEND, null);
threadToRun.CorThread.SetDebugState(CorDebugThreadState.THREAD_RUN);
} else {
corProcess.SetAllThreadsDebugState(CorDebugThreadState.THREAD_RUN, null);
}
NotifyResumed(action); NotifyResumed(action);
corProcess.Continue(0); corProcess.Continue(0);
// this.TraceMessage("Continue"); // this.TraceMessage("Continue");

2
src/AddIns/DisplayBindings/AvalonEdit.AddIn/AvalonEdit.AddIn.csproj

@ -106,8 +106,6 @@
<Compile Include="Src\ContextActions\ContextActionsPopup.cs" /> <Compile Include="Src\ContextActions\ContextActionsPopup.cs" />
<Compile Include="Src\ContextActions\ContextActionsRenderer.cs" /> <Compile Include="Src\ContextActions\ContextActionsRenderer.cs" />
<Compile Include="Src\ContextActions\EditorActionsProvider.cs" /> <Compile Include="Src\ContextActions\EditorActionsProvider.cs" />
<Compile Include="Src\ContextActions\ContextActionsViewModel.cs" />
<Compile Include="Src\ContextActions\ContextActionViewModel.cs" />
<Compile Include="Src\ContextActions\FindBaseClasses.cs" /> <Compile Include="Src\ContextActions\FindBaseClasses.cs" />
<Compile Include="Src\ContextActions\FindDerivedClassesOrOverrides.cs" /> <Compile Include="Src\ContextActions\FindDerivedClassesOrOverrides.cs" />
<Compile Include="Src\ContextActions\GoToEntityAction.cs" /> <Compile Include="Src\ContextActions\GoToEntityAction.cs" />

8
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/AvalonEditEditorUIService.cs

@ -8,6 +8,8 @@ using ICSharpCode.AvalonEdit.Rendering;
using ICSharpCode.NRefactory.Editor; using ICSharpCode.NRefactory.Editor;
using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Editor; using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.SharpDevelop.Editor.ContextActions;
using ICSharpCode.AvalonEdit.AddIn.ContextActions;
namespace ICSharpCode.AvalonEdit.AddIn namespace ICSharpCode.AvalonEdit.AddIn
{ {
@ -39,5 +41,11 @@ namespace ICSharpCode.AvalonEdit.AddIn
textView.GetVisualPosition(new TextViewPosition(line, column), VisualYPosition.LineBottom) - textView.ScrollOffset); textView.GetVisualPosition(new TextViewPosition(line, column), VisualYPosition.LineBottom) - textView.ScrollOffset);
return positionInPixels.TransformFromDevice(textView); return positionInPixels.TransformFromDevice(textView);
} }
/// <inheritdoc />
public void ShowContextActionsPopup(ContextActionsPopupViewModel viewModel)
{
new ContextActionsPopup { Actions = viewModel }.OpenAtCursorAndFocus();
}
} }
} }

10
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/CodeEditorView.cs

@ -68,6 +68,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
this.MouseLeave += TextEditorMouseLeave; this.MouseLeave += TextEditorMouseLeave;
this.Unloaded += OnUnloaded; this.Unloaded += OnUnloaded;
this.TextArea.TextView.MouseDown += TextViewMouseDown; this.TextArea.TextView.MouseDown += TextViewMouseDown;
this.TextArea.TextView.MouseUp += TextViewMouseUp;
this.TextArea.Caret.PositionChanged += HighlightBrackets; this.TextArea.Caret.PositionChanged += HighlightBrackets;
this.TextArea.TextView.VisualLinesChanged += CodeEditorView_VisualLinesChanged; this.TextArea.TextView.VisualLinesChanged += CodeEditorView_VisualLinesChanged;
@ -400,10 +401,13 @@ namespace ICSharpCode.AvalonEdit.AddIn
#endregion #endregion
#region Ctrl+Click Go To Definition #region Ctrl+Click Go To Definition
bool ctrlClickExecuted = false;
void TextViewMouseDown(object sender, MouseButtonEventArgs e) void TextViewMouseDown(object sender, MouseButtonEventArgs e)
{ {
// close existing debugger popup immediately on text editor mouse down // close existing debugger popup immediately on text editor mouse down
TryCloseExistingPopup(false); TryCloseExistingPopup(false);
ctrlClickExecuted = false;
if (options.CtrlClickGoToDefinition && e.ChangedButton == MouseButton.Left && Keyboard.Modifiers == ModifierKeys.Control) { if (options.CtrlClickGoToDefinition && e.ChangedButton == MouseButton.Left && Keyboard.Modifiers == ModifierKeys.Control) {
// Ctrl+Click Go to definition // Ctrl+Click Go to definition
@ -415,8 +419,14 @@ namespace ICSharpCode.AvalonEdit.AddIn
var goToDefinitionCommand = new GoToDefinition(); var goToDefinitionCommand = new GoToDefinition();
goToDefinitionCommand.Run(resolveResult); goToDefinitionCommand.Run(resolveResult);
e.Handled = true; e.Handled = true;
ctrlClickExecuted = true;
} }
} }
void TextViewMouseUp(object sender, MouseButtonEventArgs e)
{
e.Handled = options.CtrlClickGoToDefinition && ctrlClickExecuted;
}
#endregion #endregion
public void JumpTo(int line, int column) public void JumpTo(int line, int column)

3
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/ContextActionsBulbViewModel.cs

@ -7,13 +7,14 @@ using System.ComponentModel;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using System.Windows.Input; using System.Windows.Input;
using ICSharpCode.SharpDevelop.Editor.ContextActions;
namespace ICSharpCode.AvalonEdit.AddIn.ContextActions namespace ICSharpCode.AvalonEdit.AddIn.ContextActions
{ {
/// <summary> /// <summary>
/// Description of ContextActionsHiddenViewModel. /// Description of ContextActionsHiddenViewModel.
/// </summary> /// </summary>
public class ContextActionsBulbViewModel : ContextActionsViewModel, INotifyPropertyChanged public class ContextActionsBulbViewModel : ContextActionsPopupViewModel, INotifyPropertyChanged
{ {
public EditorActionsProvider Model { get; private set; } public EditorActionsProvider Model { get; private set; }

14
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/ContextActionsPopup.cs

@ -6,10 +6,9 @@ using System.Windows.Controls.Primitives;
using System.Windows.Input; using System.Windows.Input;
using System.Windows.Media; using System.Windows.Media;
using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Editor; using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.Editor.ContextActions;
namespace ICSharpCode.AvalonEdit.AddIn.ContextActions namespace ICSharpCode.AvalonEdit.AddIn.ContextActions
{ {
@ -44,9 +43,9 @@ namespace ICSharpCode.AvalonEdit.AddIn.ContextActions
set { this.Child = value; } set { this.Child = value; }
} }
public ContextActionsViewModel Actions public ContextActionsPopupViewModel Actions
{ {
get { return (ContextActionsViewModel)ActionsControl.DataContext; } get { return (ContextActionsPopupViewModel)ActionsControl.DataContext; }
set { set {
ActionsControl.DataContext = value; ActionsControl.DataContext = value;
} }
@ -69,6 +68,13 @@ namespace ICSharpCode.AvalonEdit.AddIn.ContextActions
this.Focus(); this.Focus();
} }
public void OpenAtCursorAndFocus()
{
this.Placement = PlacementMode.MousePoint;
this.IsOpen = true;
this.Focus();
}
public static void SetPosition(Popup popup, ITextEditor editor, int line, int column, bool openAtWordStart = false) public static void SetPosition(Popup popup, ITextEditor editor, int line, int column, bool openAtWordStart = false)
{ {
var editorUIService = editor == null ? null : editor.GetService(typeof(IEditorUIService)) as IEditorUIService; var editorUIService = editor == null ? null : editor.GetService(typeof(IEditorUIService)) as IEditorUIService;

3
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/FindBaseClasses.cs

@ -12,6 +12,7 @@ using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem; using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.SharpDevelop.Editor; using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.SharpDevelop.Editor.Commands; using ICSharpCode.SharpDevelop.Editor.Commands;
using ICSharpCode.SharpDevelop.Editor.ContextActions;
namespace ICSharpCode.AvalonEdit.AddIn.ContextActions namespace ICSharpCode.AvalonEdit.AddIn.ContextActions
{ {
@ -30,7 +31,7 @@ namespace ICSharpCode.AvalonEdit.AddIn.ContextActions
static ContextActionsPopup MakePopupWithBaseClasses(ITypeDefinition @class) static ContextActionsPopup MakePopupWithBaseClasses(ITypeDefinition @class)
{ {
var baseClassList = @class.GetAllBaseTypeDefinitions().Where(baseClass => baseClass != @class).ToList(); var baseClassList = @class.GetAllBaseTypeDefinitions().Where(baseClass => baseClass != @class).ToList();
var popupViewModel = new ContextActionsViewModel(); var popupViewModel = new ContextActionsPopupViewModel();
popupViewModel.Title = MenuService.ConvertLabel(StringParser.Parse( popupViewModel.Title = MenuService.ConvertLabel(StringParser.Parse(
"${res:SharpDevelop.Refactoring.BaseClassesOf}", new StringTagPair("Name", @class.Name))); "${res:SharpDevelop.Refactoring.BaseClassesOf}", new StringTagPair("Name", @class.Name)));
popupViewModel.Actions = BuildListViewModel(baseClassList); popupViewModel.Actions = BuildListViewModel(baseClassList);

6
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/FindDerivedClassesOrOverrides.cs

@ -10,8 +10,8 @@ using ICSharpCode.Core.Presentation;
using ICSharpCode.NRefactory.Semantics; using ICSharpCode.NRefactory.Semantics;
using ICSharpCode.NRefactory.TypeSystem; using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.SharpDevelop.Editor.Commands; using ICSharpCode.SharpDevelop.Editor.Commands;
using ICSharpCode.SharpDevelop.Editor.ContextActions;
using ICSharpCode.SharpDevelop.Refactoring; using ICSharpCode.SharpDevelop.Refactoring;
namespace ICSharpCode.AvalonEdit.AddIn.ContextActions namespace ICSharpCode.AvalonEdit.AddIn.ContextActions
@ -42,7 +42,7 @@ namespace ICSharpCode.AvalonEdit.AddIn.ContextActions
static ContextActionsPopup MakePopupWithDerivedClasses(ITypeDefinition baseClass) static ContextActionsPopup MakePopupWithDerivedClasses(ITypeDefinition baseClass)
{ {
var derivedClassesTree = BuildDerivedTypesGraph(baseClass); var derivedClassesTree = BuildDerivedTypesGraph(baseClass);
var popupViewModel = new ContextActionsViewModel(); var popupViewModel = new ContextActionsPopupViewModel();
popupViewModel.Title = MenuService.ConvertLabel(StringParser.Parse( popupViewModel.Title = MenuService.ConvertLabel(StringParser.Parse(
"${res:SharpDevelop.Refactoring.ClassesDerivingFrom}", new StringTagPair("Name", baseClass.Name))); "${res:SharpDevelop.Refactoring.ClassesDerivingFrom}", new StringTagPair("Name", baseClass.Name)));
popupViewModel.Actions = BuildTreeViewModel(derivedClassesTree.Children); popupViewModel.Actions = BuildTreeViewModel(derivedClassesTree.Children);
@ -61,7 +61,7 @@ namespace ICSharpCode.AvalonEdit.AddIn.ContextActions
static ContextActionsPopup MakePopupWithOverrides(IMember member) static ContextActionsPopup MakePopupWithOverrides(IMember member)
{ {
var derivedClassesTree = BuildDerivedTypesGraph(member.DeclaringTypeDefinition); var derivedClassesTree = BuildDerivedTypesGraph(member.DeclaringTypeDefinition);
var popupViewModel = new ContextActionsViewModel { var popupViewModel = new ContextActionsPopupViewModel {
Title = MenuService.ConvertLabel(StringParser.Parse( Title = MenuService.ConvertLabel(StringParser.Parse(
"${res:SharpDevelop.Refactoring.OverridesOf}", "${res:SharpDevelop.Refactoring.OverridesOf}",
new StringTagPair("Name", member.FullName)) new StringTagPair("Name", member.FullName))

1
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActions/GoToEntityAction.cs

@ -8,6 +8,7 @@ using System.Threading.Tasks;
using ICSharpCode.AvalonEdit.CodeCompletion; using ICSharpCode.AvalonEdit.CodeCompletion;
using ICSharpCode.NRefactory.TypeSystem; using ICSharpCode.NRefactory.TypeSystem;
using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Editor.ContextActions;
using ICSharpCode.SharpDevelop.Refactoring; using ICSharpCode.SharpDevelop.Refactoring;
namespace ICSharpCode.AvalonEdit.AddIn.ContextActions namespace ICSharpCode.AvalonEdit.AddIn.ContextActions

12
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/DocumentPrinter.cs

@ -50,16 +50,14 @@ namespace ICSharpCode.AvalonEdit.AddIn
// TableRow row = new TableRow(); // TableRow row = new TableRow();
// trg.Rows.Add(row); // trg.Rows.Add(row);
// row.Cells.Add(new TableCell(new Paragraph(new Run(lineNumber.ToString()))) { TextAlignment = TextAlignment.Right }); // row.Cells.Add(new TableCell(new Paragraph(new Run(lineNumber.ToString()))) { TextAlignment = TextAlignment.Right });
HighlightedInlineBuilder inlineBuilder = new HighlightedInlineBuilder(document.GetText(line)); // Paragraph p = new Paragraph();
// row.Cells.Add(new TableCell(p));
if (highlighter != null) { if (highlighter != null) {
HighlightedLine highlightedLine = highlighter.HighlightLine(lineNumber); HighlightedLine highlightedLine = highlighter.HighlightLine(lineNumber);
int lineStartOffset = line.Offset; p.Inlines.AddRange(highlightedLine.ToRichText().CreateRuns());
foreach (HighlightedSection section in highlightedLine.Sections) } else {
inlineBuilder.SetHighlighting(section.Offset - lineStartOffset, section.Length, section.Color); p.Inlines.Add(document.GetText(line));
} }
// Paragraph p = new Paragraph();
// row.Cells.Add(new TableCell(p));
p.Inlines.AddRange(inlineBuilder.CreateRuns());
} }
return p; return p;
} }

5
src/AddIns/DisplayBindings/Data/ICSharpCode.Data.Core.UI/UserControls/WizardErrorUserControl.cs

@ -1,4 +1,7 @@
#region Usings // Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
#region Usings
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;

5
src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core/EDMObjects/Designer/ChangeWatcher/EDMDesignerChangeWatcher.cs

@ -1,4 +1,7 @@
#region Usings // Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
#region Usings
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;

5
src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core/EDMObjects/Designer/ChangeWatcher/IEDMDesignerChangeWatcherObserver.cs

@ -1,4 +1,7 @@
#region Usings // Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
#region Usings
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;

5
src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core/IO/EntityModelCodeGenerator.cs

@ -1,4 +1,7 @@
using System; // Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Data.Entity.Design; using System.Data.Entity.Design;
using System.Data.Metadata.Edm; using System.Data.Metadata.Edm;

4
src/AddIns/DisplayBindings/Data/ICSharpCode.Data.EDMDesigner.Core/ObjectModelConverters/ObjectModelConverterException.cs

@ -1,4 +1,6 @@
 // Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;

12
src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Gui/OptionPanels/GeneralOptionsPanel.xaml.cs

@ -1,10 +1,6 @@
/* // Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
* Created by SharpDevelop. // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
* User: Peter Forstmeier
* Date: 01.05.2012
* Time: 18:31
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System; using System;
using ICSharpCode.Core; using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.Gui;
@ -90,4 +86,4 @@ namespace ICSharpCode.FormsDesigner.Gui.OptionPanels
this.generateVSStyleHandlersCheckBox.IsChecked = GenerateVisualStudioStyleEventHandlers; this.generateVSStyleHandlersCheckBox.IsChecked = GenerateVisualStudioStyleEventHandlers;
} }
} }
} }

13
src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Gui/OptionPanels/GridOptionsPanel.xaml.cs

@ -1,11 +1,6 @@
/* // Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
* Created by SharpDevelop. // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
* User: Peter Forstmeier
* Date: 29.02.2012
* Time: 20:20
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System; using System;
using System.Windows; using System.Windows;
using ICSharpCode.Core; using ICSharpCode.Core;
@ -86,4 +81,4 @@ namespace ICSharpCode.FormsDesigner.Gui.OptionPanels
EnableGridOptions(false); EnableGridOptions(false);
} }
} }
} }

13
src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Gui/OptionPanels/LocalizationModelOptionsPanel.xaml.cs

@ -1,11 +1,6 @@
/* // Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
* Created by SharpDevelop. // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
* User: Peter Forstmeier
* Date: 28.02.2012
* Time: 20:08
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System; using System;
using System.ComponentModel.Design.Serialization; using System.ComponentModel.Design.Serialization;
using ICSharpCode.Core; using ICSharpCode.Core;
@ -70,4 +65,4 @@ namespace ICSharpCode.FormsDesigner.Gui.OptionPanels
} }
} }
} }

11
src/AddIns/DisplayBindings/FormsDesigner/Project/Src/Services/ProjectResourcesComponentCodeDomSerializer.cs

@ -243,12 +243,11 @@ namespace ICSharpCode.FormsDesigner.Services
static string CodeStatementToString(CodeStatement statement) static string CodeStatementToString(CodeStatement statement)
{ {
throw new NotImplementedException(); CodeDomVerboseOutputGenerator outputGenerator = new CodeDomVerboseOutputGenerator();
// CodeDomVerboseOutputGenerator outputGenerator = new CodeDomVerboseOutputGenerator(); using(StringWriter sw = new StringWriter(System.Globalization.CultureInfo.InvariantCulture)) {
// using(StringWriter sw = new StringWriter(System.Globalization.CultureInfo.InvariantCulture)) { outputGenerator.PublicGenerateCodeFromStatement(statement, sw, null);
// outputGenerator.PublicGenerateCodeFromStatement(statement, sw, null); return sw.ToString().TrimEnd();
// return sw.ToString().TrimEnd(); }
// }
} }
} }
} }

10
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/Src/MyTypeFinder.cs

@ -25,6 +25,16 @@ namespace ICSharpCode.WpfDesign.AddIn
MyTypeFinder f = new MyTypeFinder(); MyTypeFinder f = new MyTypeFinder();
f.file = file; f.file = file;
f.ImportFrom(CreateWpfTypeFinder()); f.ImportFrom(CreateWpfTypeFinder());
var compilation = SD.ParserService.GetCompilationForFile(file.FileName);
foreach (var referencedAssembly in compilation.ReferencedAssemblies) {
try {
var assembly = Assembly.LoadFrom(referencedAssembly.GetReferenceAssemblyLocation());
f.RegisterAssembly(assembly);
} catch (Exception ex) {
ICSharpCode.Core.LoggingService.Warn("Error loading Assembly : " + referencedAssembly.FullAssemblyName, ex);
}
}
return f; return f;
} }

23
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/Src/SharpDevelopTranslations.cs

@ -0,0 +1,23 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using ICSharpCode.Core;
using System;
using ICSharpCode.WpfDesign.Designer;
namespace ICSharpCode.WpfDesign.AddIn
{
/// <summary>
/// Description of SharpDevelopTranslations.
/// </summary>
public class SharpDevelopTranslations : Translations
{
public override string PressAltText {
get { return StringParser.Parse("${res:AddIns.WpfDesign.AddIn.PressAltText}"); }
}
public static void Init() {
Instance = new SharpDevelopTranslations();
}
}
}

53
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/Src/ThumbnailViewPad.cs

@ -0,0 +1,53 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Windows;
using System.Windows.Controls;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Workbench;
using ICSharpCode.WpfDesign.Designer.ThumbnailView;
namespace ICSharpCode.WpfDesign.AddIn
{
public class ThumbnailViewPad : AbstractPadContent
{
ContentPresenter contentControl = new ContentPresenter();
ThumbnailView thumbnailView = new ThumbnailView();
TextBlock notAvailableTextBlock = new TextBlock {
Text = StringParser.Parse("${res:ICSharpCode.SharpDevelop.Gui.OutlinePad.NotAvailable}"),
TextWrapping = TextWrapping.Wrap
};
public ThumbnailViewPad()
{
SD.Workbench.ActiveViewContentChanged += WorkbenchActiveViewContentChanged;
WorkbenchActiveViewContentChanged(null, null);
}
void WorkbenchActiveViewContentChanged(object sender, EventArgs e)
{
WpfViewContent wpfView = SD.Workbench.ActiveViewContent as WpfViewContent;
if (wpfView != null)
{
thumbnailView.DesignSurface = wpfView.DesignSurface;
SD.WinForms.SetContent(contentControl, thumbnailView);
} else {
SD.WinForms.SetContent(contentControl, notAvailableTextBlock);
}
}
/// <summary>
/// The <see cref="System.Windows.Forms.Control"/> representing the pad
/// </summary>
public override object Control {
get {
return contentControl;
}
}
}
}

2
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/Src/WpfDisplayBinding.cs

@ -52,7 +52,7 @@ namespace ICSharpCode.WpfDesign.AddIn
r.XmlResolver = null; r.XmlResolver = null;
r.WhitespaceHandling = WhitespaceHandling.None; r.WhitespaceHandling = WhitespaceHandling.None;
while (r.NodeType != XmlNodeType.Element && r.Read()); while (r.NodeType != XmlNodeType.Element && r.Read());
if (r.LocalName == "ResourceDictionary" || r.LocalName == "Activity") if (r.LocalName == "ResourceDictionary" || r.LocalName == "Application" || r.LocalName == "Activity")
return false; return false;
} catch (XmlException) { } catch (XmlException) {
return true; return true;

50
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/Src/WpfToolbox.cs

@ -2,12 +2,20 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt) // This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System; using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Reflection;
using System.Windows;
using System.Windows.Forms; using System.Windows.Forms;
using System.Linq;
using ICSharpCode.Core; using ICSharpCode.Core;
using ICSharpCode.SharpDevelop; using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Project;
using ICSharpCode.SharpDevelop.Widgets.SideBar; using ICSharpCode.SharpDevelop.Widgets.SideBar;
using ICSharpCode.SharpDevelop.Workbench;
using WPF = System.Windows.Controls; using WPF = System.Windows.Controls;
namespace ICSharpCode.WpfDesign.AddIn namespace ICSharpCode.WpfDesign.AddIn
@ -48,6 +56,48 @@ namespace ICSharpCode.WpfDesign.AddIn
sideBar.ActiveTab = sideTab; sideBar.ActiveTab = sideTab;
} }
static bool IsControl(Type t)
{
return !t.IsAbstract && !t.IsGenericTypeDefinition && t.IsSubclassOf(typeof(FrameworkElement));
}
static HashSet<string> addedAssemblys = new HashSet<string>();
public void AddProjectDlls(OpenedFile file)
{
var compilation = SD.ParserService.GetCompilationForFile(file.FileName);
foreach (var reference in compilation.ReferencedAssemblies) {
string f = reference.GetReferenceAssemblyLocation();
if (f != null && !addedAssemblys.Contains(f)) {
try {
var assembly = Assembly.LoadFrom(f);
SideTab sideTab = new SideTab(sideBar, assembly.FullName.Split(new[] {','})[0]);
sideTab.DisplayName = StringParser.Parse(sideTab.Name);
sideTab.CanBeDeleted = false;
sideTab.ChoosedItemChanged += OnChoosedItemChanged;
sideTab.Items.Add(new WpfSideTabItem());
foreach (var t in assembly.GetExportedTypes())
{
if (IsControl(t))
{
sideTab.Items.Add(new WpfSideTabItem(t));
}
}
if (sideTab.Items.Count > 1)
sideBar.Tabs.Add(sideTab);
addedAssemblys.Add(f);
} catch (Exception ex) {
WpfViewContent.DllLoadErrors.Add(new SDTask(new BuildError(f, ex.Message)));
}
}
}
}
void OnChoosedItemChanged(object sender, EventArgs e) void OnChoosedItemChanged(object sender, EventArgs e)
{ {
if (toolService != null) { if (toolService != null) {

20
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/Src/WpfViewContent.cs

@ -20,6 +20,7 @@ using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Editor; using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.SharpDevelop.Gui; using ICSharpCode.SharpDevelop.Gui;
using ICSharpCode.SharpDevelop.Parser; using ICSharpCode.SharpDevelop.Parser;
using ICSharpCode.SharpDevelop.Project;
using ICSharpCode.SharpDevelop.Refactoring; using ICSharpCode.SharpDevelop.Refactoring;
using ICSharpCode.SharpDevelop.Workbench; using ICSharpCode.SharpDevelop.Workbench;
using ICSharpCode.WpfDesign.Designer; using ICSharpCode.WpfDesign.Designer;
@ -37,11 +38,23 @@ namespace ICSharpCode.WpfDesign.AddIn
{ {
public WpfViewContent(OpenedFile file) : base(file) public WpfViewContent(OpenedFile file) : base(file)
{ {
SharpDevelopTranslations.Init();
BasicMetadata.Register(); BasicMetadata.Register();
WpfToolbox.Instance.AddProjectDlls(file);
ProjectService.ProjectItemAdded += ProjectService_ProjectItemAdded;
this.TabPageText = "${res:FormsDesigner.DesignTabPages.DesignTabPage}"; this.TabPageText = "${res:FormsDesigner.DesignTabPages.DesignTabPage}";
this.IsActiveViewContentChanged += OnIsActiveViewContentChanged; this.IsActiveViewContentChanged += OnIsActiveViewContentChanged;
} }
void ProjectService_ProjectItemAdded(object sender, ProjectItemEventArgs e)
{
if (e.ProjectItem is ReferenceProjectItem)
WpfToolbox.Instance.AddProjectDlls(this.Files[0]);
}
static WpfViewContent() static WpfViewContent()
{ {
@ -134,6 +147,7 @@ namespace ICSharpCode.WpfDesign.AddIn
} }
} }
public static List<SDTask> DllLoadErrors = new List<SDTask>();
void UpdateTasks(XamlErrorService xamlErrorService) void UpdateTasks(XamlErrorService xamlErrorService)
{ {
Debug.Assert(xamlErrorService != null); Debug.Assert(xamlErrorService != null);
@ -144,11 +158,13 @@ namespace ICSharpCode.WpfDesign.AddIn
tasks.Clear(); tasks.Clear();
foreach (XamlError error in xamlErrorService.Errors) { foreach (XamlError error in xamlErrorService.Errors) {
var task = new SDTask(PrimaryFile.FileName, error.Message, error.Column - 1, error.Line - 1, TaskType.Error); var task = new SDTask(PrimaryFile.FileName, error.Message, error.Column - 1, error.Line, TaskType.Error);
tasks.Add(task); tasks.Add(task);
TaskService.Add(task); TaskService.Add(task);
} }
TaskService.AddRange(DllLoadErrors);
if (xamlErrorService.Errors.Count != 0) { if (xamlErrorService.Errors.Count != 0) {
SD.Workbench.GetPad(typeof(ErrorListPad)).BringPadToFront(); SD.Workbench.GetPad(typeof(ErrorListPad)).BringPadToFront();
} }
@ -226,6 +242,8 @@ namespace ICSharpCode.WpfDesign.AddIn
public override void Dispose() public override void Dispose()
{ {
ProjectService.ProjectItemAdded -= ProjectService_ProjectItemAdded;
propertyContainer.Clear(); propertyContainer.Clear();
base.Dispose(); base.Dispose();
} }

8
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/WpfDesign.AddIn.csproj

@ -68,6 +68,8 @@
<Compile Include="Src\Commands\Remove.cs" /> <Compile Include="Src\Commands\Remove.cs" />
<Compile Include="Src\Commands\UndoRedo.cs" /> <Compile Include="Src\Commands\UndoRedo.cs" />
<Compile Include="Src\Commands\ViewXaml.cs" /> <Compile Include="Src\Commands\ViewXaml.cs" />
<Compile Include="Src\SharpDevelopTranslations.cs" />
<Compile Include="Src\ThumbnailViewPad.cs" />
<Compile Include="Src\FileUriContext.cs" /> <Compile Include="Src\FileUriContext.cs" />
<Compile Include="Src\IdeChooseClassService.cs" /> <Compile Include="Src\IdeChooseClassService.cs" />
<Compile Include="Src\ImageSourceEditor\ChooseImageDialog.xaml.cs"> <Compile Include="Src\ImageSourceEditor\ChooseImageDialog.xaml.cs">
@ -146,9 +148,5 @@
<Page Include="Src\ImageSourceEditor\ImageSourceEditor.xaml" /> <Page Include="Src\ImageSourceEditor\ImageSourceEditor.xaml" />
<Page Include="Src\ObjectEditor.xaml" /> <Page Include="Src\ObjectEditor.xaml" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup />
<Folder Include="Images" />
<Folder Include="Src\ImageSourceEditor" />
<Folder Include="Src\Commands" />
</ItemGroup>
</Project> </Project>

19
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/WpfDesign.addin

@ -1,4 +1,8 @@
<AddIn name="WPF Designer AddIn" author="Daniel Grunwald" copyright="prj:///doc/copyright.txt" description="WPF Designer" addInManagerHidden="preinstalled"> <AddIn name="WPF Designer AddIn"
author="Daniel Grunwald"
copyright="prj:///doc/copyright.txt"
description="WPF Designer"
addInManagerHidden="preinstalled">
<Manifest> <Manifest>
<Identity name="ICSharpCode.WpfDesigner" /> <Identity name="ICSharpCode.WpfDesigner" />
</Manifest> </Manifest>
@ -20,7 +24,18 @@
insertbefore = "Text" insertbefore = "Text"
fileNamePattern = "\.(xaml)$" fileNamePattern = "\.(xaml)$"
title = "WPF designer"/>--> title = "WPF designer"/>-->
<DisplayBinding id="WPFDesigner" type="Secondary" class="ICSharpCode.WpfDesign.AddIn.WpfSecondaryDisplayBinding" fileNamePattern="\.xaml$" /> <DisplayBinding id="WPFDesigner"
type="Secondary"
class="ICSharpCode.WpfDesign.AddIn.WpfSecondaryDisplayBinding"
fileNamePattern="\.xaml$" />
</Path>
<Path name = "/SharpDevelop/Workbench/Pads">
<Pad id = "ThumbnailViewPad"
category = "Main"
title = "${res:ICSharpCode.WpfDesign.AddIn.ThumbnailViewPad}"
icon = "PadIcons.Toolbar"
class = "ICSharpCode.WpfDesign.AddIn.ThumbnailViewPad"
defaultPosition = "Right, Hidden" />
</Path> </Path>
<!-- <!--
<Path name = "/SharpDevelop/Workbench/Pads"> <Path name = "/SharpDevelop/Workbench/Pads">

1
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Configuration/AssemblyInfo.cs

@ -50,3 +50,4 @@ using System.Windows.Markup;
[assembly: XmlnsDefinition("http://sharpdevelop.net", "ICSharpCode.WpfDesign.Designer.Controls")] [assembly: XmlnsDefinition("http://sharpdevelop.net", "ICSharpCode.WpfDesign.Designer.Controls")]
[assembly: XmlnsDefinition("http://sharpdevelop.net", "ICSharpCode.WpfDesign.Designer.PropertyGrid")] [assembly: XmlnsDefinition("http://sharpdevelop.net", "ICSharpCode.WpfDesign.Designer.PropertyGrid")]
[assembly: XmlnsDefinition("http://sharpdevelop.net", "ICSharpCode.WpfDesign.Designer.PropertyGrid.Editors")] [assembly: XmlnsDefinition("http://sharpdevelop.net", "ICSharpCode.WpfDesign.Designer.PropertyGrid.Editors")]
[assembly: XmlnsDefinition("http://sharpdevelop.net", "ICSharpCode.WpfDesign.Designer.ThumbnailView")]

218
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/CanvasPositionHandle.cs

@ -0,0 +1,218 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Windows.Input;
using System.Globalization;
using System.ComponentModel;
using System.Diagnostics;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Media;
using System.Windows.Media.Media3D;
using System.Windows.Shapes;
using ICSharpCode.WpfDesign.Adorners;
namespace ICSharpCode.WpfDesign.Designer.Controls
{
/// <summary>
/// Adorner that displays the margin of a control in a Grid.
/// </summary>
public class CanvasPositionHandle : MarginHandle
{
static CanvasPositionHandle()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(CanvasPositionHandle), new FrameworkPropertyMetadata(typeof(CanvasPositionHandle)));
HandleLengthOffset=2;
}
private Path line1;
private Path line2;
public override void OnApplyTemplate()
{
line1 = GetTemplateChild("line1") as Path;
line2 = GetTemplateChild("line2") as Path;
base.OnApplyTemplate();
}
readonly Canvas canvas;
readonly DesignItem adornedControlItem;
readonly AdornerPanel adornerPanel;
readonly HandleOrientation orientation;
readonly FrameworkElement adornedControl;
/// <summary> This grid contains the handle line and the endarrow.</summary>
Grid lineArrow;
private DependencyPropertyDescriptor leftDescriptor;
private DependencyPropertyDescriptor rightDescriptor;
private DependencyPropertyDescriptor topDescriptor;
private DependencyPropertyDescriptor bottomDescriptor;
private DependencyPropertyDescriptor widthDescriptor;
private DependencyPropertyDescriptor heightDescriptor;
public CanvasPositionHandle(DesignItem adornedControlItem, AdornerPanel adornerPanel, HandleOrientation orientation)
{
Debug.Assert(adornedControlItem != null);
this.adornedControlItem = adornedControlItem;
this.adornerPanel = adornerPanel;
this.orientation = orientation;
Angle = (double) orientation;
canvas = (Canvas) adornedControlItem.Parent.Component;
adornedControl = (FrameworkElement) adornedControlItem.Component;
Stub = new MarginStub(this);
ShouldBeVisible = true;
leftDescriptor = DependencyPropertyDescriptor.FromProperty(Canvas.LeftProperty,
adornedControlItem.Component.GetType());
leftDescriptor.AddValueChanged(adornedControl, OnPropertyChanged);
rightDescriptor = DependencyPropertyDescriptor.FromProperty(Canvas.RightProperty,
adornedControlItem.Component.GetType());
rightDescriptor.AddValueChanged(adornedControl, OnPropertyChanged);
topDescriptor = DependencyPropertyDescriptor.FromProperty(Canvas.TopProperty,
adornedControlItem.Component.GetType());
topDescriptor.AddValueChanged(adornedControl, OnPropertyChanged);
bottomDescriptor = DependencyPropertyDescriptor.FromProperty(Canvas.BottomProperty,
adornedControlItem.Component.GetType());
bottomDescriptor.AddValueChanged(adornedControl, OnPropertyChanged);
widthDescriptor = DependencyPropertyDescriptor.FromProperty(Control.WidthProperty,
adornedControlItem.Component.GetType());
widthDescriptor.AddValueChanged(adornedControl, OnPropertyChanged);
heightDescriptor = DependencyPropertyDescriptor.FromProperty(Control.WidthProperty,
adornedControlItem.Component.GetType());
heightDescriptor.AddValueChanged(adornedControl, OnPropertyChanged);
BindAndPlaceHandle();
}
void OnPropertyChanged(object sender, EventArgs e)
{
BindAndPlaceHandle();
}
/// <summary>
/// Gets/Sets the angle by which the Canvas display has to be rotated
/// </summary>
public override double TextTransform
{
get
{
if ((double)orientation == 90 || (double)orientation == 180)
return 180;
if ((double)orientation == 270)
return 0;
return (double)orientation;
}
set { }
}
/// <summary>
/// Binds the <see cref="HandleLength"/> to the margin and place the handles.
/// </summary>
void BindAndPlaceHandle()
{
if (!adornerPanel.Children.Contains(this))
adornerPanel.Children.Add(this);
if (!adornerPanel.Children.Contains(Stub))
adornerPanel.Children.Add(Stub);
RelativePlacement placement=new RelativePlacement();
switch (orientation)
{
case HandleOrientation.Left:
{
var wr = (double) leftDescriptor.GetValue(adornedControl);
if (double.IsNaN(wr))
{
wr = (double) rightDescriptor.GetValue(adornedControl);
wr = canvas.ActualWidth - (adornedControl.ActualWidth + wr);
}
else
{
if (line1 != null)
{
line1.StrokeDashArray.Clear();
line2.StrokeDashArray.Clear();
}
}
this.HandleLength = wr;
placement = new RelativePlacement(HorizontalAlignment.Left, VerticalAlignment.Center);
placement.XOffset = -HandleLengthOffset;
break;
}
case HandleOrientation.Top:
{
var wr = (double)topDescriptor.GetValue(adornedControl);
if (double.IsNaN(wr))
{
wr = (double)bottomDescriptor.GetValue(adornedControl);
wr = canvas.ActualHeight - (adornedControl.ActualHeight + wr);
}
else
{
if (line1 != null)
{
line1.StrokeDashArray.Clear();
line2.StrokeDashArray.Clear();
}
}
this.HandleLength = wr;
placement = new RelativePlacement(HorizontalAlignment.Center, VerticalAlignment.Top);
placement.YOffset = -HandleLengthOffset;
break;
}
case HandleOrientation.Right:
{
var wr = (double) rightDescriptor.GetValue(adornedControl);
if (double.IsNaN(wr))
{
wr = (double) leftDescriptor.GetValue(adornedControl);
wr = canvas.ActualWidth - (adornedControl.ActualWidth + wr);
}
else
{
if (line1 != null)
{
line1.StrokeDashArray.Clear();
line2.StrokeDashArray.Clear();
}
}
this.HandleLength = wr;
placement = new RelativePlacement(HorizontalAlignment.Right, VerticalAlignment.Center);
placement.XOffset = HandleLengthOffset;
break;
}
case HandleOrientation.Bottom:
{
var wr = (double)bottomDescriptor.GetValue(adornedControl);
if (double.IsNaN(wr))
{
wr = (double)topDescriptor.GetValue(adornedControl);
wr = canvas.ActualHeight - (adornedControl.ActualHeight + wr);
}
else
{
if (line1 != null)
{
line1.StrokeDashArray.Clear();
line2.StrokeDashArray.Clear();
}
}
this.HandleLength = wr;
placement = new RelativePlacement(HorizontalAlignment.Center, VerticalAlignment.Bottom);
placement.YOffset = HandleLengthOffset;
break;
}
}
AdornerPanel.SetPlacement(this, placement);
this.Visibility = Visibility.Visible;
}
}
}

85
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/ClearableTextBox.cs

@ -0,0 +1,85 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Input;
using System.Windows.Controls;
using System.Windows.Data;
namespace ICSharpCode.WpfDesign.Designer.Controls
{
public class ClearableTextBox : EnterTextBox
{
private Button textRemoverButton;
static ClearableTextBox()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof (ClearableTextBox),
new FrameworkPropertyMetadata(typeof (ClearableTextBox)));
}
public ClearableTextBox()
{
this.GotFocus += this.TextBoxGotFocus;
this.LostFocus += this.TextBoxLostFocus;
this.TextChanged += this.TextBoxTextChanged;
this.KeyUp += this.ClearableTextBox_KeyUp;
}
void ClearableTextBox_KeyUp(object sender, KeyEventArgs e)
{
if (e.Key == Key.Escape)
this.TextRemoverClick(sender, null);
}
public override void OnApplyTemplate()
{
base.OnApplyTemplate();
this.textRemoverButton = this.GetTemplateChild("TextRemover") as Button;
if (null != this.textRemoverButton)
{
this.textRemoverButton.Click += this.TextRemoverClick;
}
this.UpdateState();
}
protected void UpdateState()
{
if (string.IsNullOrEmpty(this.Text))
{
VisualStateManager.GoToState(this, "TextRemoverHidden", true);
}
else
{
VisualStateManager.GoToState(this, "TextRemoverVisible", true);
}
}
private void TextBoxTextChanged(object sender, TextChangedEventArgs e)
{
this.UpdateState();
}
private void TextRemoverClick(object sender, RoutedEventArgs e)
{
this.Text = string.Empty;
this.Focus();
}
private void TextBoxGotFocus(object sender, RoutedEventArgs e)
{
this.UpdateState();
}
private void TextBoxLostFocus(object sender, RoutedEventArgs e)
{
this.UpdateState();
}
}
}

26
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/ContainerDragHandle.cs

@ -9,6 +9,9 @@ using System.Windows.Shapes;
using System.Windows.Controls.Primitives; using System.Windows.Controls.Primitives;
using ICSharpCode.WpfDesign.Adorners; using ICSharpCode.WpfDesign.Adorners;
using ICSharpCode.WpfDesign.Extensions; using ICSharpCode.WpfDesign.Extensions;
using ICSharpCode.WpfDesign.Designer.Converters;
using System.Globalization;
using System.Windows.Data;
namespace ICSharpCode.WpfDesign.Designer.Controls namespace ICSharpCode.WpfDesign.Designer.Controls
{ {
@ -24,5 +27,28 @@ namespace ICSharpCode.WpfDesign.Designer.Controls
//This style is defined in themes\generic.xaml //This style is defined in themes\generic.xaml
DefaultStyleKeyProperty.OverrideMetadata(typeof(ContainerDragHandle), new FrameworkPropertyMetadata(typeof(ContainerDragHandle))); DefaultStyleKeyProperty.OverrideMetadata(typeof(ContainerDragHandle), new FrameworkPropertyMetadata(typeof(ContainerDragHandle)));
} }
private ScaleTransform scaleTransform;
public ContainerDragHandle()
{
scaleTransform = new ScaleTransform(1.0, 1.0);
this.LayoutTransform = scaleTransform;
}
public override void OnApplyTemplate()
{
base.OnApplyTemplate();
var surface = this.TryFindParent<DesignSurface>();
if (surface != null && surface.ZoomControl != null)
{
var bnd = new Binding("CurrentZoom") { Source = surface.ZoomControl };
bnd.Converter = InvertedZoomConverter.Instance;
BindingOperations.SetBinding(scaleTransform, ScaleTransform.ScaleXProperty, bnd);
BindingOperations.SetBinding(scaleTransform, ScaleTransform.ScaleYProperty, bnd);
}
}
} }
} }

321
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/ControlStyles.xaml

@ -1,4 +1,4 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:Controls="clr-namespace:ICSharpCode.WpfDesign.Designer.Controls" xmlns:ControlConvertors="clr-namespace:ICSharpCode.WpfDesign.Designer.Controls.Converters" xmlns:Converters="clr-namespace:ICSharpCode.WpfDesign.Designer.Converters"> <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:Controls="clr-namespace:ICSharpCode.WpfDesign.Designer.Controls" xmlns:ControlConvertors="clr-namespace:ICSharpCode.WpfDesign.Designer.Controls.Converters" xmlns:Converters="clr-namespace:ICSharpCode.WpfDesign.Designer.Converters" xmlns:Widgets="http://icsharpcode.net/sharpdevelop/widgets">
<!-- <!--
This file contains the default styles used by the Controls in ICSharpCode.WpfDesign.Designer.Controls This file contains the default styles used by the Controls in ICSharpCode.WpfDesign.Designer.Controls
--> -->
@ -16,7 +16,35 @@
</Style> </Style>
<Style TargetType="{x:Type Controls:EnumButton}" BasedOn="{StaticResource {x:Type ToggleButton}}"> <Style TargetType="{x:Type Controls:EnumButton}" BasedOn="{StaticResource {x:Type ToggleButton}}">
<Setter Property="Margin" Value="3 3 0 3" /> <Setter Property="Margin" Value="3 3 0 3" />
<Setter Property="MinWidth" Value="50" /> <Setter Property="Foreground" Value="#FF000000"/>
<Setter Property="Padding" Value="0"/>
<Setter Property="BorderThickness" Value="1"/>
<Setter Property="BorderBrush" Value="Black"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ToggleButton">
<Grid>
<Border x:Name="Background" BorderThickness="{TemplateBinding BorderThickness}" BorderBrush="{TemplateBinding BorderBrush}">
<Grid Background="{TemplateBinding Background}">
<Border Opacity="0" x:Name="BackgroundAnimation" Background="#FF448DCA" />
</Grid>
</Border>
<ContentPresenter
x:Name="contentPresenter"
Content="{TemplateBinding Content}"
ContentTemplate="{TemplateBinding ContentTemplate}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
Margin="{TemplateBinding Padding}"/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsChecked" Value="True">
<Setter Property="Background" Value="SkyBlue" />
</Trigger>
</Style.Triggers>
</Style> </Style>
<Style TargetType="{x:Type Controls:ResizeThumb}"> <Style TargetType="{x:Type Controls:ResizeThumb}">
<Setter Property="Template"> <Setter Property="Template">
@ -39,6 +67,20 @@
</Setter.Value> </Setter.Value>
</Setter> </Setter>
</Style> </Style>
<Style TargetType="{x:Type Controls:RotateThumb}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Controls:RotateThumb}">
<Grid>
<Rectangle VerticalAlignment="Top" Width="2" Height="30" Fill="Black" Margin="0,0,0,0" />
<Ellipse VerticalAlignment="Top" StrokeThickness="1" Name="thumbRectangle" SnapsToDevicePixels="True" Stroke="Black"
Width="7" Height="7" Fill="Black">
</Ellipse>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="{x:Type Controls:SelectionFrame}"> <Style TargetType="{x:Type Controls:SelectionFrame}">
<Setter Property="Template"> <Setter Property="Template">
<Setter.Value> <Setter.Value>
@ -89,7 +131,7 @@
<Label Margin="4,0,0,0" Content="{TemplateBinding Window.Title}" /> <Label Margin="4,0,0,0" Content="{TemplateBinding Window.Title}" />
</DockPanel> </DockPanel>
<Border Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"> <Border Background="{DynamicResource {x:Static SystemColors.WindowBrushKey}}">
<Border BorderBrush="{TemplateBinding Border.BorderBrush}" BorderThickness="{TemplateBinding Border.BorderThickness}" Background="{TemplateBinding Panel.Background}"> <Border ClipToBounds="True" BorderBrush="{TemplateBinding Border.BorderBrush}" BorderThickness="{TemplateBinding Border.BorderThickness}" Background="{TemplateBinding Panel.Background}">
<AdornerDecorator> <AdornerDecorator>
<ContentPresenter ContentTemplate="{TemplateBinding ContentControl.ContentTemplate}" Content="{TemplateBinding ContentControl.Content}" /> <ContentPresenter ContentTemplate="{TemplateBinding ContentControl.ContentTemplate}" Content="{TemplateBinding ContentControl.Content}" />
</AdornerDecorator> </AdornerDecorator>
@ -188,6 +230,45 @@
</Setter.Value> </Setter.Value>
</Setter> </Setter>
</Style> </Style>
<Style TargetType="{x:Type Controls:CanvasPositionHandle}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Controls:MarginHandle}">
<Grid Height="10" Width="{Binding Path=HandleLength, Converter={x:Static ControlConvertors:HandleLengthWithOffset.Instance}, RelativeSource={RelativeSource Mode=TemplatedParent}}" SnapsToDevicePixels="True">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="8" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Path Name="startArrow" Fill="{StaticResource HandleBrush}" Stretch="Fill" Stroke="{TemplateBinding Panel.Background}" StrokeThickness="0.5" Margin="0,1,0,1" Data="M0,0 L0,1 1,0.5 z" Grid.Column="0" />
<!-- Wrap the handle-line and endArrow in this grid. It's visiblity is subjected to HandleLength -->
<Grid Height="10" Grid.Column="1" Name="lineArrow">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition MaxWidth="20" MinWidth="10" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Rectangle Fill="Transparent" Height="10" Grid.Column="0" Grid.ColumnSpan="4" />
<Path Name="line1" StrokeDashArray="2,2" Stretch="Fill" Stroke="{StaticResource HandleBrush}" StrokeThickness="1.5" Margin="0 0 0 0" Data="M0,-0.75 L1,-0.75" Grid.Column="0" />
<TextBlock Grid.Column="1" Text="{Binding Path=HandleLength, Mode=OneWay, Converter={x:Static Converters:FormatDoubleConverter.Instance }, RelativeSource={RelativeSource Mode=TemplatedParent}}" FontSize="9" VerticalAlignment="Center" HorizontalAlignment="Center" Padding="1,1,1,1">
<TextBlock.LayoutTransform>
<RotateTransform Angle="{Binding Path=TextTransform, RelativeSource={RelativeSource Mode=TemplatedParent}}" CenterX="0.5" CenterY="0.5">
</RotateTransform>
</TextBlock.LayoutTransform>
</TextBlock>
<Path Name="line2" StrokeDashArray="2,2" Stretch="Fill" Stroke="{StaticResource HandleBrush}" StrokeThickness="1.5" Margin="0 0 0 0" Data="M0,-0.75 L1,-0.75" Grid.Column="2" />
<!--<Path Name="arrow2" Margin="0,1,0,1" Fill="{StaticResource HandleBrush}" Stretch="Fill" Stroke="{TemplateBinding Panel.Background}" StrokeThickness="0.5" Data="M0,0 L0,1 1,0.5 z" Grid.Column="3" />-->
<!--<Rectangle Width="1.5" Fill="{StaticResource HandleBrush}" Grid.Column="4"/>-->
</Grid>
<!-- Rotate the handle and angle of rotation being set by the Margin type. See enum HandleOrientation -->
<Grid.LayoutTransform>
<RotateTransform Angle="{Binding Path=Angle, RelativeSource={RelativeSource Mode=TemplatedParent}}">
</RotateTransform>
</Grid.LayoutTransform>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="{x:Type Controls:MarginHandle}"> <Style TargetType="{x:Type Controls:MarginHandle}">
<Setter Property="Template"> <Setter Property="Template">
<Setter.Value> <Setter.Value>
@ -285,7 +366,7 @@
<Setter Property="Template"> <Setter Property="Template">
<Setter.Value> <Setter.Value>
<ControlTemplate TargetType="{x:Type Controls:InPlaceEditor}"> <ControlTemplate TargetType="{x:Type Controls:InPlaceEditor}">
<TextBox Name="editor" SnapsToDevicePixels="True" Padding="{Binding Path=Padding}" FontSize="{Binding Path=FontSize}" FontFamily="{Binding Path=FontFamily}" FontStyle="{Binding Path=FontStyle}" FontStretch="{Binding Path=FontStretch}" FontWeight="{Binding Path=FontWight}" Text="{Binding Path=Bind, RelativeSource={RelativeSource Mode=TemplatedParent}, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" AcceptsReturn="True" /> <TextBox Name="editor" SnapsToDevicePixels="True" Padding="{Binding Path=Padding}" FontSize="{Binding Path=FontSize}" FontFamily="{Binding Path=FontFamily}" FontStyle="{Binding Path=FontStyle}" FontStretch="{Binding Path=FontStretch}" FontWeight="{Binding Path=FontWeight}" Text="{Binding Path=Bind, RelativeSource={RelativeSource Mode=TemplatedParent}, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" AcceptsReturn="True" />
</ControlTemplate> </ControlTemplate>
</Setter.Value> </Setter.Value>
</Setter> </Setter>
@ -305,4 +386,234 @@
</Setter.Value> </Setter.Value>
</Setter> </Setter>
</Style> </Style>
</ResourceDictionary> <Style TargetType="{x:Type Controls:ZoomControl}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Controls:ZoomControl}">
<Grid Background="{TemplateBinding Panel.Background}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Widgets:SelfCollapsingPanel Grid.Column="0" Grid.Row="1" CollapseOrientation="Horizontal" CanCollapse="{Binding Path=ComputedZoomButtonCollapsed, Mode=OneWay, RelativeSource={RelativeSource Mode=TemplatedParent}}">
<Widgets:ZoomButtons x:Name="zoomButtons" Value="{Binding Path=CurrentZoom, RelativeSource={RelativeSource Mode=TemplatedParent}}" Minimum="{TemplateBinding MinimumZoom}" Maximum="{TemplateBinding MaximumZoom}" />
</Widgets:SelfCollapsingPanel>
<Rectangle Grid.Column="2" Grid.Row="1" Fill="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" />
<ScrollContentPresenter Name="PART_Presenter" Grid.Column="0" Grid.ColumnSpan="3" Grid.Row="0" Margin="{TemplateBinding Control.Padding}" Content="{TemplateBinding ContentControl.Content}" ContentTemplate="{TemplateBinding ContentControl.ContentTemplate}" CanContentScroll="{TemplateBinding ScrollViewer.CanContentScroll}">
<ScrollContentPresenter.LayoutTransform>
<ScaleTransform ScaleX="{Binding Path=CurrentZoom, RelativeSource={RelativeSource Mode=TemplatedParent}}" ScaleY="{Binding Path=CurrentZoom, RelativeSource={RelativeSource Mode=TemplatedParent}}"/>
</ScrollContentPresenter.LayoutTransform>
</ScrollContentPresenter>
<ContentControl Grid.Column="1" Grid.Row="1" Content="{TemplateBinding AdditionalControls}" />
<ScrollBar Name="PART_VerticalScrollBar" Grid.Column="3" Grid.Row="0" Minimum="0" Maximum="{TemplateBinding ScrollableHeight}" ViewportSize="{TemplateBinding ViewportHeight}" Value="{TemplateBinding VerticalOffset}" Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}" />
<ScrollBar Name="PART_HorizontalScrollBar" Orientation="Horizontal" Grid.Column="2" Grid.Row="1" Minimum="0" Maximum="{TemplateBinding ScrollableWidth}" ViewportSize="{TemplateBinding ViewportWidth}" Value="{TemplateBinding HorizontalOffset}" Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="{x:Type Button}" x:Key="ClearButtonStyle">
<Setter Property="Background" Value="#FFaaaaaa" />
<Setter Property="BorderBrush" Value="#FFaaaaaa" />
<Setter Property="Foreground" Value="White" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Grid Width="14" Height="14">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="FocusStates">
<VisualState x:Name="Focused" />
<VisualState x:Name="Unfocused" />
</VisualStateGroup>
<VisualStateGroup x:Name="CommonStates">
<VisualStateGroup.Transitions>
<VisualTransition GeneratedDuration="00:00:00.2000000" />
</VisualStateGroup.Transitions>
<VisualState x:Name="Normal" />
<VisualState x:Name="MouseOver">
<Storyboard>
<DoubleAnimation Duration="0"
Storyboard.TargetName="ellipseHighlight"
Storyboard.TargetProperty="(UIElement.Opacity)"
To="1" />
</Storyboard>
</VisualState>
<VisualState x:Name="Pressed">
<Storyboard>
<DoubleAnimation Duration="0"
Storyboard.TargetName="ellipseHighlight"
Storyboard.TargetProperty="(UIElement.Opacity)"
To="1" />
<DoubleAnimation Duration="0"
Storyboard.TargetName="pathHighlight"
Storyboard.TargetProperty="(UIElement.Opacity)"
To="1" />
</Storyboard>
</VisualState>
<VisualState x:Name="Disabled" />
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Ellipse x:Name="ellipse"
Fill="{TemplateBinding Background}"
Stroke="{TemplateBinding BorderBrush}" />
<Ellipse x:Name="ellipseHighlight"
Fill="#FFBD7777"
Opacity="0"
Stroke="Red" />
<Path x:Name="path"
Margin="4.5"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Data="M0.5,0.5 L8.5,8.5 M8.5000095,0.50000072 L0.50000954,8.500001"
Stretch="Fill"
Stroke="{TemplateBinding Foreground}"
UseLayoutRounding="False" />
<Path x:Name="pathHighlight"
Margin="4.5"
HorizontalAlignment="Center"
VerticalAlignment="Center"
Data="M0.5,0.5 L8.5,8.5 M8.5000095,0.50000072 L0.50000954,8.500001"
Opacity="0"
Stretch="Fill"
Stroke="Red"
UseLayoutRounding="False" />
<ContentPresenter x:Name="contentPresenter"
HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
Visibility="Collapsed" />
<Rectangle x:Name="DisabledVisualElement"
Fill="#FFFFFFFF"
IsHitTestVisible="false"
Opacity="0"
RadiusX="3"
RadiusY="3" />
<Rectangle x:Name="FocusVisualElement"
Margin="1"
IsHitTestVisible="false"
Opacity="0"
RadiusX="2"
RadiusY="2"
Stroke="#FF6DBDD1"
StrokeThickness="1" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="{x:Type Controls:ClearableTextBox}">
<Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" />
<Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.WindowBrushKey}}" />
<Setter Property="BorderBrush" Value="#888" />
<Setter Property="BorderThickness" Value="1" />
<Setter Property="Padding" Value="1,0,0,0" />
<Setter Property="AllowDrop" Value="true" />
<Setter Property="FocusVisualStyle" Value="{x:Null}" />
<Setter Property="ScrollViewer.PanningMode" Value="VerticalFirst" />
<Setter Property="Stylus.IsFlicksEnabled" Value="False" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Controls:ClearableTextBox}">
<Grid>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="TextRemoverStates">
<VisualStateGroup.Transitions>
<VisualTransition GeneratedDuration="00:00:00.3000000" />
</VisualStateGroup.Transitions>
<VisualState x:Name="TextRemoverVisible">
<Storyboard>
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00"
Duration="00:00:00.0010000"
Storyboard.TargetName="TextRemover"
Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)">
<EasingDoubleKeyFrame KeyTime="00:00:00" Value="1" />
</DoubleAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00"
Duration="00:00:00.0010000"
Storyboard.TargetName="TextRemover"
Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)">
<EasingDoubleKeyFrame KeyTime="00:00:00" Value="1" />
</DoubleAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00"
Duration="00:00:00.0010000"
Storyboard.TargetName="TextRemover"
Storyboard.TargetProperty="(UIElement.Opacity)">
<EasingDoubleKeyFrame KeyTime="00:00:00" Value="1" />
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
<VisualState x:Name="TextRemoverHidden">
<Storyboard>
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00"
Duration="00:00:00.0010000"
Storyboard.TargetName="TextRemover"
Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)">
<EasingDoubleKeyFrame KeyTime="00:00:00" Value="0" />
</DoubleAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00"
Duration="00:00:00.0010000"
Storyboard.TargetName="TextRemover"
Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleY)">
<EasingDoubleKeyFrame KeyTime="00:00:00" Value="0" />
</DoubleAnimationUsingKeyFrames>
<DoubleAnimationUsingKeyFrames BeginTime="00:00:00"
Duration="00:00:00.0010000"
Storyboard.TargetName="TextRemover"
Storyboard.TargetProperty="(UIElement.Opacity)">
<EasingDoubleKeyFrame KeyTime="00:00:00" Value="0" />
</DoubleAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Border x:Name="Border"
Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
CornerRadius="1" />
<ScrollViewer x:Name="PART_ContentHost" VerticalAlignment="Center"
Margin="0,0,18,0"
SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
<Viewbox Stretch="Uniform" HorizontalAlignment="Right" VerticalAlignment="Stretch" Margin="0,3,3,3">
<Button x:Name="TextRemover"
Width="14"
Height="14"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
IsTabStop="False"
RenderTransformOrigin="0.5,0.5"
Style="{StaticResource ClearButtonStyle}">
<Button.RenderTransform>
<TransformGroup>
<ScaleTransform ScaleX="1" ScaleY="1" />
<SkewTransform />
<RotateTransform />
<TranslateTransform />
</TransformGroup>
</Button.RenderTransform>
</Button>
</Viewbox>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style TargetType="{x:Type Controls:RenderTransformOriginThumb}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Controls:RenderTransformOriginThumb}">
<Grid Width="10" Height="10" Margin="-5,-5,-5,-5">
<Ellipse Width="2" Height="2" Fill="Black"/>
<Ellipse Width="10" Height="10" Fill="Transparent" Stroke="Black" StrokeThickness="1" />
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>

3
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/GrayOutDesignerExceptActiveArea.cs

@ -4,6 +4,7 @@
using System; using System;
using System.Diagnostics; using System.Diagnostics;
using System.Windows; using System.Windows;
using System.Windows.Controls;
using System.Windows.Media; using System.Windows.Media;
using System.Windows.Threading; using System.Windows.Threading;
using System.Windows.Media.Animation; using System.Windows.Media.Animation;
@ -78,7 +79,7 @@ namespace ICSharpCode.WpfDesign.Designer.Controls
if (designPanel != null && grayOut == null && optionService != null && optionService.GrayOutDesignSurfaceExceptParentContainerWhenDragging) { if (designPanel != null && grayOut == null && optionService != null && optionService.GrayOutDesignSurfaceExceptParentContainerWhenDragging) {
grayOut = new GrayOutDesignerExceptActiveArea(); grayOut = new GrayOutDesignerExceptActiveArea();
grayOut.designSurfaceRectangle = new RectangleGeometry( grayOut.designSurfaceRectangle = new RectangleGeometry(
new Rect(new Point(0, 0), designPanel.RenderSize)); new Rect(0, 0, ((Border)designPanel.Child).Child.RenderSize.Width, ((Border)designPanel.Child).Child.RenderSize.Height));
grayOut.designPanel = designPanel; grayOut.designPanel = designPanel;
grayOut.adornerPanel = new AdornerPanel(); grayOut.adornerPanel = new AdornerPanel();
grayOut.adornerPanel.Order = AdornerOrder.BehindForeground; grayOut.adornerPanel.Order = AdornerOrder.BehindForeground;

101
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/InfoTextEnterArea.cs

@ -0,0 +1,101 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Media;
using System.Windows.Threading;
using System.Windows.Media.Animation;
using ICSharpCode.WpfDesign.Adorners;
using ICSharpCode.WpfDesign.Designer.Services;
namespace ICSharpCode.WpfDesign.Designer.Controls
{
/// <summary>
/// Gray out everything except a specific area.
/// </summary>
sealed class InfoTextEnterArea : FrameworkElement
{
Geometry designSurfaceRectangle;
Geometry activeAreaGeometry;
Geometry combinedGeometry;
AdornerPanel adornerPanel;
IDesignPanel designPanel;
const double MaxOpacity = 0.3;
public InfoTextEnterArea()
{
this.IsHitTestVisible = false;
}
public Geometry ActiveAreaGeometry {
get { return activeAreaGeometry; }
set {
activeAreaGeometry = value;
combinedGeometry = activeAreaGeometry;
}
}
Rect currentAnimateActiveAreaRectToTarget;
internal void AnimateActiveAreaRectTo(Rect newRect)
{
if (newRect.Equals(currentAnimateActiveAreaRectToTarget))
return;
activeAreaGeometry.BeginAnimation(
RectangleGeometry.RectProperty,
new RectAnimation(newRect, new Duration(new TimeSpan(0,0,0,0,100))),
HandoffBehavior.SnapshotAndReplace);
currentAnimateActiveAreaRectToTarget = newRect;
}
internal static void Start(ref InfoTextEnterArea grayOut, ServiceContainer services, UIElement activeContainer, string text)
{
Debug.Assert(activeContainer != null);
Start(ref grayOut, services, activeContainer, new Rect(activeContainer.RenderSize), text);
}
internal static void Start(ref InfoTextEnterArea grayOut, ServiceContainer services, UIElement activeContainer, Rect activeRectInActiveContainer, string text)
{
Debug.Assert(services != null);
Debug.Assert(activeContainer != null);
DesignPanel designPanel = services.GetService<IDesignPanel>() as DesignPanel;
OptionService optionService = services.GetService<OptionService>();
if (designPanel != null && grayOut == null && optionService != null && optionService.GrayOutDesignSurfaceExceptParentContainerWhenDragging) {
grayOut = new InfoTextEnterArea();
grayOut.designSurfaceRectangle = new RectangleGeometry(
new Rect(0, 0, ((Border)designPanel.Child).Child.RenderSize.Width, ((Border)designPanel.Child).Child.RenderSize.Height));
grayOut.designPanel = designPanel;
grayOut.adornerPanel = new AdornerPanel();
grayOut.adornerPanel.Order = AdornerOrder.Background;
grayOut.adornerPanel.SetAdornedElement(designPanel.Context.RootItem.View, null);
grayOut.ActiveAreaGeometry = new RectangleGeometry(activeRectInActiveContainer, 0, 0, (Transform)activeContainer.TransformToVisual(grayOut.adornerPanel.AdornedElement));
var tb = new TextBlock(){Text = text};
tb.FontSize = 10;
tb.ClipToBounds = true;
tb.Width = ((FrameworkElement) activeContainer).ActualWidth;
tb.Height = ((FrameworkElement) activeContainer).ActualHeight;
tb.VerticalAlignment = VerticalAlignment.Top;
tb.HorizontalAlignment = HorizontalAlignment.Left;
tb.RenderTransform = (Transform)activeContainer.TransformToVisual(grayOut.adornerPanel.AdornedElement);
grayOut.adornerPanel.Children.Add(tb);
designPanel.Adorners.Add(grayOut.adornerPanel);
}
}
static readonly TimeSpan animationTime = new TimeSpan(2000000);
internal static void Stop(ref InfoTextEnterArea grayOut)
{
if (grayOut != null) {
IDesignPanel designPanel = grayOut.designPanel;
AdornerPanel adornerPanelToRemove = grayOut.adornerPanel;
designPanel.Adorners.Remove(adornerPanelToRemove);
grayOut = null;
}
}
}
}

7
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/MarginHandle.cs

@ -60,7 +60,7 @@ namespace ICSharpCode.WpfDesign.Designer.Controls
/// <summary> /// <summary>
/// Gets the Stub for this handle /// Gets the Stub for this handle
/// </summary> /// </summary>
public MarginStub Stub {get; private set;} public MarginStub Stub {get; protected set;}
/// <summary> /// <summary>
/// Gets/Sets the angle by which handle rotates. /// Gets/Sets the angle by which handle rotates.
@ -70,7 +70,7 @@ namespace ICSharpCode.WpfDesign.Designer.Controls
/// <summary> /// <summary>
/// Gets/Sets the angle by which the Margin display has to be rotated /// Gets/Sets the angle by which the Margin display has to be rotated
/// </summary> /// </summary>
public double TextTransform{ public virtual double TextTransform{
get{ get{
if((double)orientation==90 || (double)orientation == 180) if((double)orientation==90 || (double)orientation == 180)
return 180; return 180;
@ -109,6 +109,9 @@ namespace ICSharpCode.WpfDesign.Designer.Controls
get { return orientation; } get { return orientation; }
} }
protected MarginHandle()
{ }
public MarginHandle(DesignItem adornedControlItem, AdornerPanel adornerPanel, HandleOrientation orientation) public MarginHandle(DesignItem adornedControlItem, AdornerPanel adornerPanel, HandleOrientation orientation)
{ {
Debug.Assert(adornedControlItem!=null); Debug.Assert(adornedControlItem!=null);

28
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/PanelMoveAdorner.cs

@ -9,6 +9,10 @@ using System.Windows.Controls;
using System.Windows; using System.Windows;
using System.Windows.Input; using System.Windows.Input;
using ICSharpCode.WpfDesign.Designer.Services; using ICSharpCode.WpfDesign.Designer.Services;
using System.Windows.Media;
using ICSharpCode.WpfDesign.Designer.Converters;
using System.Globalization;
using System.Windows.Data;
namespace ICSharpCode.WpfDesign.Designer.Controls namespace ICSharpCode.WpfDesign.Designer.Controls
{ {
@ -17,12 +21,17 @@ namespace ICSharpCode.WpfDesign.Designer.Controls
static PanelMoveAdorner() static PanelMoveAdorner()
{ {
DefaultStyleKeyProperty.OverrideMetadata(typeof(PanelMoveAdorner), DefaultStyleKeyProperty.OverrideMetadata(typeof(PanelMoveAdorner),
new FrameworkPropertyMetadata(typeof(PanelMoveAdorner))); new FrameworkPropertyMetadata(typeof(PanelMoveAdorner)));
} }
private ScaleTransform scaleTransform;
public PanelMoveAdorner(DesignItem item) public PanelMoveAdorner(DesignItem item)
{ {
this.item = item; this.item = item;
scaleTransform = new ScaleTransform(1.0, 1.0);
this.LayoutTransform = scaleTransform;
} }
DesignItem item; DesignItem item;
@ -30,8 +39,23 @@ namespace ICSharpCode.WpfDesign.Designer.Controls
protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e) protected override void OnMouseLeftButtonDown(MouseButtonEventArgs e)
{ {
e.Handled = true; e.Handled = true;
item.Services.Selection.SetSelectedComponents(new DesignItem [] { item }, SelectionTypes.Auto); item.Services.Selection.SetSelectedComponents(new DesignItem [] { item }, SelectionTypes.Auto);
new DragMoveMouseGesture(item, false).Start(item.Services.DesignPanel, e); new DragMoveMouseGesture(item, false).Start(item.Services.DesignPanel, e);
} }
public override void OnApplyTemplate()
{
base.OnApplyTemplate();
var surface = this.TryFindParent<DesignSurface>();
if (surface != null && surface.ZoomControl != null)
{
var bnd = new Binding("CurrentZoom") {Source = surface.ZoomControl};
bnd.Converter = InvertedZoomConverter.Instance;
BindingOperations.SetBinding(scaleTransform, ScaleTransform.ScaleXProperty, bnd);
BindingOperations.SetBinding(scaleTransform, ScaleTransform.ScaleYProperty, bnd);
}
}
} }
} }

227
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/QuickOperationMenu.cs

@ -6,6 +6,11 @@ using System.Collections.Generic;
using System.Windows; using System.Windows;
using System.Windows.Controls; using System.Windows.Controls;
using System.Windows.Input; using System.Windows.Input;
using System.Windows.Media;
using ICSharpCode.WpfDesign.Designer.Converters;
using System.Globalization;
using System.Windows.Data;
namespace ICSharpCode.WpfDesign.Designer.Controls namespace ICSharpCode.WpfDesign.Designer.Controls
{ {
@ -13,106 +18,124 @@ namespace ICSharpCode.WpfDesign.Designer.Controls
/// A Small icon which shows up a menu containing common properties /// A Small icon which shows up a menu containing common properties
/// </summary> /// </summary>
public class QuickOperationMenu : Control public class QuickOperationMenu : Control
{ {
static QuickOperationMenu() static QuickOperationMenu()
{ {
DefaultStyleKeyProperty.OverrideMetadata(typeof (QuickOperationMenu), new FrameworkPropertyMetadata(typeof (QuickOperationMenu))); DefaultStyleKeyProperty.OverrideMetadata(typeof (QuickOperationMenu), new FrameworkPropertyMetadata(typeof (QuickOperationMenu)));
} }
private MenuItem _mainHeader; public QuickOperationMenu()
{
/// <summary> scaleTransform = new ScaleTransform(1.0, 1.0);
/// Contains Default values in the Sub menu for example "HorizontalAlignment" has "HorizontalAlignment.Stretch" as it's value. this.LayoutTransform = scaleTransform;
/// </summary> }
private readonly Dictionary<MenuItem, MenuItem> _defaults = new Dictionary<MenuItem, MenuItem>();
private ScaleTransform scaleTransform;
/// <summary>
/// Is the main header menu which brings up all the menus. private MenuItem _mainHeader;
/// </summary>
public MenuItem MainHeader { /// <summary>
get { return _mainHeader; } /// Contains Default values in the Sub menu for example "HorizontalAlignment" has "HorizontalAlignment.Stretch" as it's value.
} /// </summary>
private readonly Dictionary<MenuItem, MenuItem> _defaults = new Dictionary<MenuItem, MenuItem>();
/// <summary>
/// Add a submenu with checkable values. /// <summary>
/// </summary> /// Is the main header menu which brings up all the menus.
/// <param name="parent">The parent menu under which to add.</param> /// </summary>
/// <param name="enumValues">All the values of an enum to be showed in the menu</param> public MenuItem MainHeader {
/// <param name="defaultValue">The default value out of all the enums.</param> get { return _mainHeader; }
/// <param name="setValue">The presently set value out of the enums</param> }
public void AddSubMenuCheckable(MenuItem parent, Array enumValues, string defaultValue, string setValue)
{ /// <summary>
foreach (var enumValue in enumValues) { /// Add a submenu with checkable values.
var menuItem = new MenuItem {Header = enumValue.ToString(), IsCheckable = true}; /// </summary>
parent.Items.Add(menuItem); /// <param name="parent">The parent menu under which to add.</param>
if (enumValue.ToString() == defaultValue) /// <param name="enumValues">All the values of an enum to be showed in the menu</param>
_defaults.Add(parent, menuItem); /// <param name="defaultValue">The default value out of all the enums.</param>
if (enumValue.ToString() == setValue) /// <param name="setValue">The presently set value out of the enums</param>
menuItem.IsChecked = true; public void AddSubMenuCheckable(MenuItem parent, Array enumValues, string defaultValue, string setValue)
} {
} foreach (var enumValue in enumValues) {
var menuItem = new MenuItem {Header = enumValue.ToString(), IsCheckable = true};
/// <summary> parent.Items.Add(menuItem);
/// Add a menu in the main header. if (enumValue.ToString() == defaultValue)
/// </summary> _defaults.Add(parent, menuItem);
/// <param name="menuItem">The menu to add.</param> if (enumValue.ToString() == setValue)
public void AddSubMenuInTheHeader(MenuItem menuItem) menuItem.IsChecked = true;
{ }
if (_mainHeader != null) }
_mainHeader.Items.Add(menuItem);
} /// <summary>
/// Add a menu in the main header.
public override void OnApplyTemplate() /// </summary>
{ /// <param name="menuItem">The menu to add.</param>
base.OnApplyTemplate(); public void AddSubMenuInTheHeader(MenuItem menuItem)
var mainHeader = Template.FindName("MainHeader", this) as MenuItem; {
if (mainHeader != null) { if (_mainHeader != null)
_mainHeader = mainHeader; _mainHeader.Items.Add(menuItem);
} }
}
public override void OnApplyTemplate()
/// <summary> {
/// Checks a menu item and making it exclusive. If the check was toggled then the default menu item is selected. base.OnApplyTemplate();
/// </summary> var mainHeader = Template.FindName("MainHeader", this) as MenuItem;
/// <param name="parent">The parent item of the sub menu</param> if (mainHeader != null) {
/// <param name="clickedOn">The Item clicked on</param> _mainHeader = mainHeader;
/// <returns>Returns the Default value if the checkable menu item is toggled or otherwise the new checked menu item.</returns> }
public string UncheckChildrenAndSelectClicked(MenuItem parent, MenuItem clickedOn)
{ var surface = this.TryFindParent<DesignSurface>();
MenuItem defaultMenuItem; if (surface != null && surface.ZoomControl != null)
_defaults.TryGetValue(parent, out defaultMenuItem); {
if (IsAnyItemChecked(parent)) { var bnd = new Binding("CurrentZoom") { Source = surface.ZoomControl };
foreach (var item in parent.Items) { bnd.Converter = InvertedZoomConverter.Instance;
var menuItem = item as MenuItem;
if (menuItem != null) menuItem.IsChecked = false; BindingOperations.SetBinding(scaleTransform, ScaleTransform.ScaleXProperty, bnd);
} BindingOperations.SetBinding(scaleTransform, ScaleTransform.ScaleYProperty, bnd);
clickedOn.IsChecked = true; }
return (string) clickedOn.Header; }
} else {
if (defaultMenuItem != null) { /// <summary>
defaultMenuItem.IsChecked = true; /// Checks a menu item and making it exclusive. If the check was toggled then the default menu item is selected.
return (string) defaultMenuItem.Header; /// </summary>
} /// <param name="parent">The parent item of the sub menu</param>
} /// <param name="clickedOn">The Item clicked on</param>
return null; /// <returns>Returns the Default value if the checkable menu item is toggled or otherwise the new checked menu item.</returns>
} public string UncheckChildrenAndSelectClicked(MenuItem parent, MenuItem clickedOn)
{
/// <summary> MenuItem defaultMenuItem;
/// Checks in the sub-menu whether aby items has been checked or not _defaults.TryGetValue(parent, out defaultMenuItem);
/// </summary> if (IsAnyItemChecked(parent)) {
/// <param name="parent"></param> foreach (var item in parent.Items) {
/// <returns></returns> var menuItem = item as MenuItem;
private bool IsAnyItemChecked(MenuItem parent) if (menuItem != null) menuItem.IsChecked = false;
{ }
bool check = false; clickedOn.IsChecked = true;
if (parent.HasItems) { return (string) clickedOn.Header;
foreach (var item in parent.Items) { } else {
var menuItem = item as MenuItem; if (defaultMenuItem != null) {
if (menuItem != null && menuItem.IsChecked) defaultMenuItem.IsChecked = true;
check = true; return (string) defaultMenuItem.Header;
} }
} }
return check; return null;
} }
}
/// <summary>
/// Checks in the sub-menu whether aby items has been checked or not
/// </summary>
/// <param name="parent"></param>
/// <returns></returns>
private bool IsAnyItemChecked(MenuItem parent)
{
bool check = false;
if (parent.HasItems) {
foreach (var item in parent.Items) {
var menuItem = item as MenuItem;
if (menuItem != null && menuItem.IsChecked)
check = true;
}
}
return check;
}
}
} }

28
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/RenderTransformOriginThumb.cs

@ -0,0 +1,28 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Windows;
using System.Windows.Input;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using ICSharpCode.WpfDesign.Adorners;
using ICSharpCode.WpfDesign.Extensions;
namespace ICSharpCode.WpfDesign.Designer.Controls
{
/// <summary>
/// Description of RenderTransformThumb.
/// </summary>
public class RenderTransformOriginThumb : Thumb
{
static RenderTransformOriginThumb()
{
//This OverrideMetadata call tells the system that this element wants to provide a style that is different than its base class.
//This style is defined in themes\generic.xaml
DefaultStyleKeyProperty.OverrideMetadata(typeof(RenderTransformOriginThumb), new FrameworkPropertyMetadata(typeof(RenderTransformOriginThumb)));
}
}
}

38
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/RotateThumb.cs

@ -0,0 +1,38 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Input;
using System.Windows.Media;
using ICSharpCode.WpfDesign.Adorners;
using ICSharpCode.WpfDesign.Designer.Extensions;
namespace ICSharpCode.WpfDesign.Designer.Controls
{
public class RotateThumb : ResizeThumb
{
private double initialAngle;
private RotateTransform rotateTransform;
private Vector startVector;
private Point centerPoint;
private Control designerItem;
private Panel canvas;
private AdornerPanel parent;
static RotateThumb()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(RotateThumb), new FrameworkPropertyMetadata(typeof(RotateThumb)));
}
public RotateThumb()
{
this.ResizeThumbVisible = true;
}
}
}

12
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Controls/ZoomControl.cs

@ -18,9 +18,19 @@ namespace ICSharpCode.WpfDesign.Designer.Controls
{ {
PanToolCursor = GetCursor("Images/PanToolCursor.cur"); PanToolCursor = GetCursor("Images/PanToolCursor.cur");
PanToolCursorMouseDown = GetCursor("Images/PanToolCursorMouseDown.cur"); PanToolCursorMouseDown = GetCursor("Images/PanToolCursorMouseDown.cur");
DefaultStyleKeyProperty.OverrideMetadata(typeof(ZoomControl), new FrameworkPropertyMetadata(typeof(ZoomControl)));
}
public object AdditionalControls
{
get { return (object)GetValue(AdditionalControlsProperty); }
set { SetValue(AdditionalControlsProperty, value); }
} }
static Cursor GetCursor(string path) public static readonly DependencyProperty AdditionalControlsProperty =
DependencyProperty.Register("AdditionalControls", typeof(object), typeof(ZoomControl), new PropertyMetadata(null));
internal static Cursor GetCursor(string path)
{ {
var a = Assembly.GetExecutingAssembly(); var a = Assembly.GetExecutingAssembly();
var m = new ResourceManager(a.GetName().Name + ".g", a); var m = new ResourceManager(a.GetName().Name + ".g", a);

113
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Converters.cs

@ -9,6 +9,7 @@ using System.Windows.Data;
using System.Globalization; using System.Globalization;
using System.Windows; using System.Windows;
using System.Collections; using System.Collections;
using System.Windows.Media;
namespace ICSharpCode.WpfDesign.Designer.Converters namespace ICSharpCode.WpfDesign.Designer.Converters
{ {
@ -85,7 +86,7 @@ namespace ICSharpCode.WpfDesign.Designer.Converters
{ {
if (value == null || (int)value == 0) { if (value == null || (int)value == 0) {
return Visibility.Collapsed; return Visibility.Collapsed;
} }
return Visibility.Visible; return Visibility.Visible;
} }
@ -145,17 +146,109 @@ namespace ICSharpCode.WpfDesign.Designer.Converters
} }
public class FormatDoubleConverter : IValueConverter public class FormatDoubleConverter : IValueConverter
{ {
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Justification = "converter is immutable")] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Justification = "converter is immutable")]
public static readonly FormatDoubleConverter Instance=new FormatDoubleConverter(); public static readonly FormatDoubleConverter Instance=new FormatDoubleConverter();
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return Math.Round((double)value);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
public class BlackWhenTrue : IValueConverter
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Justification = "converter is immutable")]
public static readonly BlackWhenTrue Instance = new BlackWhenTrue();
private Brush black = new SolidColorBrush(Colors.Black);
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return (bool)value ? black : null;
}
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return Math.Round((double)value);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{ {
throw new NotImplementedException(); throw new NotImplementedException();
} }
} }
public class EnumBoolean : IValueConverter
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Justification = "converter is immutable")]
public static readonly EnumBoolean Instance = new EnumBoolean();
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
string parameterString = parameter as string;
if (parameterString == null)
return DependencyProperty.UnsetValue;
if (Enum.IsDefined(value.GetType(), value) == false)
return DependencyProperty.UnsetValue;
object parameterValue = Enum.Parse(value.GetType(), parameterString);
return parameterValue.Equals(value);
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
string parameterString = parameter as string;
if (parameterString == null)
return DependencyProperty.UnsetValue;
return Enum.Parse(targetType, parameterString);
}
}
public class EnumVisibility : IValueConverter
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Justification = "converter is immutable")]
public static readonly EnumVisibility Instance = new EnumVisibility();
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
string parameterString = parameter as string;
if (parameterString == null)
return DependencyProperty.UnsetValue;
if (Enum.IsDefined(value.GetType(), value) == false)
return DependencyProperty.UnsetValue;
object parameterValue = Enum.Parse(value.GetType(), parameterString);
return parameterValue.Equals(value) ? Visibility.Visible : Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
string parameterString = parameter as string;
if (parameterString == null)
return DependencyProperty.UnsetValue;
return Enum.Parse(targetType, parameterString);
}
}
public class InvertedZoomConverter : IValueConverter
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Security", "CA2104:DoNotDeclareReadOnlyMutableReferenceTypes", Justification = "converter is immutable")]
public static readonly InvertedZoomConverter Instance = new InvertedZoomConverter();
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return 1.0 / ((double)value);
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return 1.0 / ((double)value);
}
}
} }

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save