Browse Source

Merge branch '4.0'

pull/15/head
Daniel Grunwald 15 years ago
parent
commit
02b5a9bd37
  1. 9
      data/resources/StringResources.cz.resx
  2. 24
      data/resources/StringResources.de.resx
  3. 7
      data/resources/StringResources.es-mx.resx
  4. 7
      data/resources/StringResources.es.resx
  5. 12
      data/resources/StringResources.fr.resx
  6. 39
      data/resources/StringResources.nl.resx
  7. 154
      data/resources/StringResources.pt-br.resx
  8. 39
      data/resources/StringResources.pt.resx
  9. 36
      data/resources/StringResources.resx
  10. 52
      data/resources/StringResources.ru.resx
  11. 147
      data/resources/StringResources.tr.resx
  12. 523
      data/schemas/AddIn.xsd
  13. 39
      doc/technotes/ConditionList.html
  14. 290
      doc/technotes/DoozerList.html
  15. 31
      samples/EmbeddedImageAddIn/Configuration/AssemblyInfo.cs
  16. 20
      samples/EmbeddedImageAddIn/EmbeddedImageAddIn.addin
  17. 80
      samples/EmbeddedImageAddIn/EmbeddedImageAddIn.csproj
  18. 18
      samples/EmbeddedImageAddIn/EmbeddedImageAddIn.sln
  19. 38
      samples/EmbeddedImageAddIn/EmbeddedImageLanguageBinding.cs
  20. 58
      samples/EmbeddedImageAddIn/ImageCache.cs
  21. 101
      samples/EmbeddedImageAddIn/ImageElement.cs
  22. 62
      samples/EmbeddedImageAddIn/ImageElementGenerator.cs
  23. 39
      samples/EmbeddedImageAddIn/InsertImageCommand.cs
  24. 12
      samples/SharpDevelopReports/src/ReportSamples.sln
  25. 12
      samples/SharpDevelopReports/src/SharpReportSamples/MainForm.cs
  26. 10
      samples/SharpDevelopReports/src/SharpReportSamples/SharpReportSamples.csproj
  27. 20
      src/AddIns/Analysis/Profiler/Controller/ProfilerOptions.cs
  28. 2
      src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/GoToDefinition.cs
  29. 2
      src/AddIns/Analysis/UnitTesting/Src/EmptyUnitTestsPad.cs
  30. 3
      src/AddIns/Analysis/UnitTesting/Src/IUnitTestsPad.cs
  31. 17
      src/AddIns/Analysis/UnitTesting/Src/UnitTestCommands.cs
  32. 11
      src/AddIns/Analysis/UnitTesting/Src/UnitTestsPad.cs
  33. 2
      src/AddIns/Analysis/UnitTesting/Test/Utils/MockUnitTestsPad.cs
  34. 101
      src/AddIns/Analysis/UnitTesting/UnitTesting.addin
  35. 2
      src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlCodeCompletionBinding.cs
  36. 2
      src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActionsRenderer.cs
  37. 9
      src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerViewContent.cs
  38. 30
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/Src/MyTypeFinder.cs
  39. 18
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Services/CreateComponentTool.cs
  40. 27
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Tests/Designer/EditOperationTests.cs
  41. 16
      src/AddIns/Misc/HelpViewer/Source/Controls/TocEntry.cs
  42. 37
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/PreviewCommands.cs
  43. 71
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs
  44. 4
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/LayoutPanel.cs
  45. 28
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/LayoutPanelControl.Designer.cs
  46. 11
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/LayoutPanelControl.cs
  47. 22
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PullModelPanel.cs
  48. 43
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.cs
  49. 6
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/ReportViewerSecondaryView.cs
  50. 29
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Toolbox/ToolboxProvider.cs
  51. 2
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj
  52. 12
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/Layouter.cs
  53. 1
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Collections/Collections.cs
  54. 45
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/DataManager.cs
  55. 4
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/BaseListStrategy.cs
  56. 2
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/SqlDataAccess.cs
  57. 11
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/BasePager.cs
  58. 47
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/BaseConverter.cs
  59. 30
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedRowConverter.cs
  60. 43
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedTableConverter.cs
  61. 11
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/DataPageBuilder.cs
  62. 3
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportRenderer/BaseExportRenderer.cs
  63. 19
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportRenderer/PreviewRenderer.cs
  64. 26
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportRenderer/PrintRenderer.cs
  65. 7
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/FormPageBuilder.cs
  66. 30
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Interfaces/IHierarchyInterfaces.cs
  67. 56
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/ExtendedPrintController.cs
  68. 15
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/ReportEngine.cs
  69. 11
      src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/ReportViewer/ReportViewer.cs
  70. 2
      src/AddIns/Misc/SearchAndReplace/Project/Engine/Search.cs
  71. 5
      src/AddIns/Misc/SearchAndReplace/Project/Engine/SearchStrategy/BruteForceSearchStrategy.cs
  72. 5
      src/AddIns/Misc/SearchAndReplace/Project/Engine/SearchStrategy/RegExSearchStrategy.cs
  73. 5
      src/AddIns/Misc/SearchAndReplace/Project/Engine/SearchStrategy/WildcardSearchStrategy.cs
  74. 35
      src/Libraries/AvalonDock/AvalonDock.Themes/Themes/ExpressionDark.xaml
  75. 14
      src/Libraries/AvalonDock/AvalonDock.Themes/Themes/dev2010.xaml
  76. 70
      src/Libraries/AvalonDock/AvalonDock/DockingManager.cs
  77. 7
      src/Libraries/AvalonDock/AvalonDock/DocumentPane.cs
  78. 2
      src/Libraries/AvalonDock/AvalonDock/FloatingDockablePane.cs
  79. 54
      src/Libraries/AvalonDock/AvalonDock/FloatingWindow.cs
  80. 16
      src/Libraries/AvalonDock/AvalonDock/FlyoutPaneWindow.cs
  81. 3
      src/Libraries/AvalonDock/AvalonDock/LogicalTreeAdapter.cs
  82. 32
      src/Libraries/AvalonDock/AvalonDock/NavigatorWindow.cs
  83. 4
      src/Libraries/AvalonDock/AvalonDock/Properties/AssemblyInfo.cs
  84. 5
      src/Libraries/AvalonDock/AvalonDock/Resources/DockablePaneStyles.xaml
  85. 14
      src/Libraries/AvalonDock/AvalonDock/Themes/aero.normalcolor.xaml
  86. 10
      src/Libraries/AvalonDock/AvalonDock/Themes/classic.xaml
  87. 29
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Document/ITextSource.cs
  88. 36
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Document/NewLineFinder.cs
  89. 6
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Document/OffsetChangeMap.cs
  90. 6
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Document/TextDocument.cs
  91. 9
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Editing/Caret.cs
  92. 6
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Editing/TextArea.cs
  93. 1
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Highlighting/DocumentHighlighter.cs
  94. 27
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Highlighting/HighlightingColorizer.cs
  95. 10
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/BackgroundGeometryBuilder.cs
  96. 2
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/VisualLineElement.cs
  97. 50
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Utils/CharRope.cs
  98. 7
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Utils/ImmutableStack.cs
  99. 13
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Utils/Rope.cs
  100. 2
      src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Utils/RopeNode.cs
  101. Some files were not shown because too many files have changed in this diff Show More

9
data/resources/StringResources.cz.resx

@ -231,6 +231,9 @@ @@ -231,6 +231,9 @@
<data name="AddIns.ClassDiagram.ShowClassDiagram" xml:space="preserve">
<value>Ukázat diagram třídy</value>
</data>
<data name="AddIns.Git.TortoiseGitRequired" xml:space="preserve">
<value>Pro spuštění tohoto příkazu musí být nainstalován TortoiseGit.</value>
</data>
<data name="AddIns.HtmlHelp2.AddToFavorites" xml:space="preserve">
<value>Přidat nápovědu k Oblíbeným.</value>
</data>
@ -1505,6 +1508,9 @@ Chcete přidat nový soubor do projektu ${CurrentProjectName}?</value> @@ -1505,6 +1508,9 @@ Chcete přidat nový soubor do projektu ${CurrentProjectName}?</value>
<data name="Dialog.NewFile.FillOutFirstMessage" xml:space="preserve">
<value>K vytvoření tohoto souboru je nutné vyplnit některé dodatečné vlastnosti.</value>
</data>
<data name="Dialog.NewFile.ReadOnlyProjectWarning" xml:space="preserve">
<value>Označený soubor {0} má nastaveny atributy pouze ke čtení. Soubor nebude do projektu vložen.</value>
</data>
<data name="Dialog.NewFile.TemplateText" xml:space="preserve">
<value>Š&amp;ablony:</value>
</data>
@ -6855,7 +6861,6 @@ Došlo k chybě při spuštění:</value> @@ -6855,7 +6861,6 @@ Došlo k chybě při spuštění:</value>
<value>Odkomentovat oblast</value>
</data>
<data name="_Internal.Bogus.Translation.Test1" xml:space="preserve">
<value>Tento resource není používán. Jeho účelem je testování kvality překladu a obsahuje
zlom řádku</value>
<value>Tento zdroj není používán. Jeho účelem je testování kvality překladu a konce řádku</value>
</data>
</root>

24
data/resources/StringResources.de.resx

@ -6774,6 +6774,12 @@ SharpDevelop 2 kompiliert Ressourcendateien anders: der Ressourcenname ist nicht @@ -6774,6 +6774,12 @@ SharpDevelop 2 kompiliert Ressourcendateien anders: der Ressourcenname ist nicht
<data name="SharpReport.Toolbar.Functions.TodaysDate" xml:space="preserve">
<value>Tagesdatum</value>
</data>
<data name="SharpReport.Toolbar.GroupFooter" xml:space="preserve">
<value>Gruppenfuß</value>
</data>
<data name="SharpReport.Toolbar.GroupHeader" xml:space="preserve">
<value>Gruppenkopf</value>
</data>
<data name="SharpReport.Toolbar.Image" xml:space="preserve">
<value>Bild</value>
</data>
@ -6786,6 +6792,9 @@ SharpDevelop 2 kompiliert Ressourcendateien anders: der Ressourcenname ist nicht @@ -6786,6 +6792,9 @@ SharpDevelop 2 kompiliert Ressourcendateien anders: der Ressourcenname ist nicht
<data name="SharpReport.Toolbar.Rectangle" xml:space="preserve">
<value>Rechteck</value>
</data>
<data name="SharpReport.Toolbar.Table" xml:space="preserve">
<value>Tabelle</value>
</data>
<data name="SharpReport.Toolbar.TextBox" xml:space="preserve">
<value>Beschriftung</value>
</data>
@ -6822,6 +6831,21 @@ SharpDevelop 2 kompiliert Ressourcendateien anders: der Ressourcenname ist nicht @@ -6822,6 +6831,21 @@ SharpDevelop 2 kompiliert Ressourcendateien anders: der Ressourcenname ist nicht
<data name="SharpReport.Wizard.BaseSettings.ReportType" xml:space="preserve">
<value>Reporttyp</value>
</data>
<data name="SharpReport.Wizard.Layout.Column" xml:space="preserve">
<value>Gruppierung auswählen</value>
</data>
<data name="SharpReport.Wizard.Layout.Grouping" xml:space="preserve">
<value>Gruppierung</value>
</data>
<data name="SharpReport.Wizard.Layout.ListLayout" xml:space="preserve">
<value>Listenansicht</value>
</data>
<data name="SharpReport.Wizard.Layout.ReportLayout" xml:space="preserve">
<value>Reportansicht</value>
</data>
<data name="SharpReport.Wizard.Layout.TableLayout" xml:space="preserve">
<value>Tabellenansicht</value>
</data>
<data name="SharpReport.Wizard.PullModel" xml:space="preserve">
<value>Pull Datenmodell</value>
</data>

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

@ -6505,6 +6505,10 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -6505,6 +6505,10 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="SharpDevelop.Solution.AllKnownProjectFormats" xml:space="preserve">
<value>Todos los formatos de proyecto conocidos</value>
</data>
<data name="SharpDevelop.Solution.CannotLoadOldSolution" xml:space="preserve">
<value>Esta versión de SharpDevelop no puede cargar proyectos creados usando Visual Studio .NET 2003 (o anterior).
Intente usar SharpDevelop 3.2 para la converisón; o cree un nuevo proyecto y agregue los archivos fuente existentes.</value>
</data>
<data name="SharpDevelop.Solution.CannotSave.IOException" xml:space="preserve">
<value>No se pudo guardar {0}:\n{1}</value>
</data>
@ -7609,6 +7613,9 @@ Los archivos de recursos han sido renombrados/movidos convenientemente.</value> @@ -7609,6 +7613,9 @@ Los archivos de recursos han sido renombrados/movidos convenientemente.</value>
<data name="XML.MainMenu.FileMenu.New.File.Description" xml:space="preserve">
<value>Abrir nuevo búfer</value>
</data>
<data name="XML.MainMenu.FileMenu.New.Project" xml:space="preserve">
<value>&amp;Proyecto...</value>
</data>
<data name="XML.MainMenu.FileMenu.New.Solution" xml:space="preserve">
<value>&amp;Solución...</value>
</data>

7
data/resources/StringResources.es.resx

@ -6509,6 +6509,10 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -6509,6 +6509,10 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="SharpDevelop.Solution.AllKnownProjectFormats" xml:space="preserve">
<value>Todos los formatos conocidos</value>
</data>
<data name="SharpDevelop.Solution.CannotLoadOldSolution" xml:space="preserve">
<value>Esta versión de SharpDevelop no puede cargar proyectos creados usando Visual Studio .NET 2003 (o anterior).
Intente usar SharpDevelop 3.2 para la converisón; o cree un nuevo proyecto y agregue los archivos fuente existentes.</value>
</data>
<data name="SharpDevelop.Solution.CannotSave.IOException" xml:space="preserve">
<value>No se pudo salvar {0}:\n{1}</value>
</data>
@ -7614,6 +7618,9 @@ Los archivos de recursos han sido renombrados o cambiados de ubicación de acuer @@ -7614,6 +7618,9 @@ Los archivos de recursos han sido renombrados o cambiados de ubicación de acuer
<data name="XML.MainMenu.FileMenu.New.File.Description" xml:space="preserve">
<value>Abrir búfer nuevo</value>
</data>
<data name="XML.MainMenu.FileMenu.New.Project" xml:space="preserve">
<value>&amp;Proyecto...</value>
</data>
<data name="XML.MainMenu.FileMenu.New.Solution" xml:space="preserve">
<value>&amp;Solución...</value>
</data>

12
data/resources/StringResources.fr.resx

@ -5556,6 +5556,9 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace @@ -5556,6 +5556,9 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace
<data name="MainWindow.Windows.Debug.ExceptionHistory.Time" xml:space="preserve">
<value>Heure</value>
</data>
<data name="MainWindow.Windows.Debug.HideZoomControl" xml:space="preserve">
<value>Afficher/Cacher le zoom</value>
</data>
<data name="MainWindow.Windows.Debug.Local" xml:space="preserve">
<value>Local</value>
</data>
@ -5631,6 +5634,9 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace @@ -5631,6 +5634,9 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace
<data name="MainWindow.Windows.Debug.ObjectGraph" xml:space="preserve">
<value>Graphe d'objet</value>
</data>
<data name="MainWindow.Windows.Debug.ParallelStack" xml:space="preserve">
<value>Visualiser les processus</value>
</data>
<data name="MainWindow.Windows.Debug.RunToCursor" xml:space="preserve">
<value>Exécuter jusqu'au curseur</value>
</data>
@ -5679,6 +5685,9 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace @@ -5679,6 +5685,9 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace
<data name="MainWindow.Windows.Debug.Threads.ThreadSwitch" xml:space="preserve">
<value>Changement de thread</value>
</data>
<data name="MainWindow.Windows.Debug.ToggleMethodView" xml:space="preserve">
<value>Basculer vers la vue "par méthodes"</value>
</data>
<data name="MainWindow.Windows.Debug.Watch" xml:space="preserve">
<value>Espions</value>
</data>
@ -5925,6 +5934,9 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace @@ -5925,6 +5934,9 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace
<data name="OpenFileTabEventHandler.FileContainingFolderInExplorer" xml:space="preserve">
<value>Ouvrir le répertoire dans l'explorateur</value>
</data>
<data name="ProjectBrowser.Toolbar.CollapseAll" xml:space="preserve">
<value>Réduire tous les noeuds</value>
</data>
<data name="ProjectComponent.ContextMenu.AddExistingFiles" xml:space="preserve">
<value>Ajouter fichiers existants</value>
</data>

39
data/resources/StringResources.nl.resx

@ -2740,6 +2740,9 @@ Wilt u het nieuwe bestand toevoegen aan project ${CurrentProjectName}?</value> @@ -2740,6 +2740,9 @@ Wilt u het nieuwe bestand toevoegen aan project ${CurrentProjectName}?</value>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.CaretCheckBox" xml:space="preserve">
<value>Toon cursor regel</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.EnableAnimationsCheckBox" xml:space="preserve">
<value>Animatie mogelijk maken</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.EOLMarkersCheckBox" xml:space="preserve">
<value>&amp;EOL markeringen weergeven</value>
</data>
@ -5556,6 +5559,9 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v @@ -5556,6 +5559,9 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v
<data name="MainWindow.Windows.Debug.ExceptionHistory.Time" xml:space="preserve">
<value>Tijd</value>
</data>
<data name="MainWindow.Windows.Debug.HideZoomControl" xml:space="preserve">
<value>Toon/verberg zoom control</value>
</data>
<data name="MainWindow.Windows.Debug.Local" xml:space="preserve">
<value>Locaal</value>
</data>
@ -5631,6 +5637,9 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v @@ -5631,6 +5637,9 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v
<data name="MainWindow.Windows.Debug.ObjectGraph" xml:space="preserve">
<value>Object Graph</value>
</data>
<data name="MainWindow.Windows.Debug.ParallelStack" xml:space="preserve">
<value>Parallelle stapels</value>
</data>
<data name="MainWindow.Windows.Debug.RunToCursor" xml:space="preserve">
<value>Uitvoeren tot de cursor</value>
</data>
@ -5679,6 +5688,9 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v @@ -5679,6 +5688,9 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v
<data name="MainWindow.Windows.Debug.Threads.ThreadSwitch" xml:space="preserve">
<value>Thread wissel</value>
</data>
<data name="MainWindow.Windows.Debug.ToggleMethodView" xml:space="preserve">
<value>Wissel methode weergave</value>
</data>
<data name="MainWindow.Windows.Debug.Watch" xml:space="preserve">
<value>Observeren</value>
</data>
@ -5925,6 +5937,9 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v @@ -5925,6 +5937,9 @@ Microsoft.Tools.WindowsInstallerXml.Extenties.NetFxCompiler, WixNetFxExtentie</v
<data name="OpenFileTabEventHandler.FileContainingFolderInExplorer" xml:space="preserve">
<value>Open de map met document in de Explorer</value>
</data>
<data name="ProjectBrowser.Toolbar.CollapseAll" xml:space="preserve">
<value>Alle knooppunten invouwen</value>
</data>
<data name="ProjectComponent.ContextMenu.AddExistingFiles" xml:space="preserve">
<value>Toevoegen bestaande bestanden</value>
</data>
@ -6760,6 +6775,12 @@ De hulpbron bestanden zijn hernoemd/verplaatst op de beschreven wijze.</value> @@ -6760,6 +6775,12 @@ De hulpbron bestanden zijn hernoemd/verplaatst op de beschreven wijze.</value>
<data name="SharpReport.Toolbar.Functions.TodaysDate" xml:space="preserve">
<value>Vandaag</value>
</data>
<data name="SharpReport.Toolbar.GroupFooter" xml:space="preserve">
<value>Groep voettekst</value>
</data>
<data name="SharpReport.Toolbar.GroupHeader" xml:space="preserve">
<value>Groep koptekst</value>
</data>
<data name="SharpReport.Toolbar.Image" xml:space="preserve">
<value>Afbeelding</value>
</data>
@ -6772,6 +6793,9 @@ De hulpbron bestanden zijn hernoemd/verplaatst op de beschreven wijze.</value> @@ -6772,6 +6793,9 @@ De hulpbron bestanden zijn hernoemd/verplaatst op de beschreven wijze.</value>
<data name="SharpReport.Toolbar.Rectangle" xml:space="preserve">
<value>Rechthoek</value>
</data>
<data name="SharpReport.Toolbar.Table" xml:space="preserve">
<value>Tabel</value>
</data>
<data name="SharpReport.Toolbar.TextBox" xml:space="preserve">
<value>Label</value>
</data>
@ -6808,6 +6832,21 @@ De hulpbron bestanden zijn hernoemd/verplaatst op de beschreven wijze.</value> @@ -6808,6 +6832,21 @@ De hulpbron bestanden zijn hernoemd/verplaatst op de beschreven wijze.</value>
<data name="SharpReport.Wizard.BaseSettings.ReportType" xml:space="preserve">
<value>Rapport type</value>
</data>
<data name="SharpReport.Wizard.Layout.Column" xml:space="preserve">
<value>Selecteer de groepkolom</value>
</data>
<data name="SharpReport.Wizard.Layout.Grouping" xml:space="preserve">
<value>Groeperen</value>
</data>
<data name="SharpReport.Wizard.Layout.ListLayout" xml:space="preserve">
<value>Lijst indeling</value>
</data>
<data name="SharpReport.Wizard.Layout.ReportLayout" xml:space="preserve">
<value>Rapport indeling</value>
</data>
<data name="SharpReport.Wizard.Layout.TableLayout" xml:space="preserve">
<value>Tabel indeling</value>
</data>
<data name="SharpReport.Wizard.PullModel" xml:space="preserve">
<value>Pull Data model</value>
</data>

154
data/resources/StringResources.pt-br.resx

@ -231,6 +231,9 @@ @@ -231,6 +231,9 @@
<data name="AddIns.ClassDiagram.ShowClassDiagram" xml:space="preserve">
<value>Mostrar Diagrama de Classes</value>
</data>
<data name="AddIns.Git.TortoiseGitRequired" xml:space="preserve">
<value>TortoiseGit precisa ser instalado para executar essa ação.</value>
</data>
<data name="AddIns.HelpViewer.ContentsPadTitle" xml:space="preserve">
<value>Conteudo</value>
</data>
@ -715,6 +718,9 @@ Voce precisa instalar o .Net Framework SDK para acessar o sistema de ajuda.</val @@ -715,6 +718,9 @@ Voce precisa instalar o .Net Framework SDK para acessar o sistema de ajuda.</val
<data name="AddIns.SourceAnalysis.CheckWithStyleCop" xml:space="preserve">
<value>Verificar com StyleCop</value>
</data>
<data name="AddIns.SourceAnalysis.Title" xml:space="preserve">
<value>Analise do Fonte</value>
</data>
<data name="AddIns.Subversion.AddToIgnoreList" xml:space="preserve">
<value>Adicionar a lista ignore.</value>
</data>
@ -940,6 +946,9 @@ Voce precisa instalar o .Net Framework SDK para acessar o sistema de ajuda.</val @@ -940,6 +946,9 @@ Voce precisa instalar o .Net Framework SDK para acessar o sistema de ajuda.</val
<data name="AddIns.XamlBinding.Options.UseExtensionCompletion" xml:space="preserve">
<value>Usar a extensão de conclusão de marcação</value>
</data>
<data name="AddIns.XamlBinding.Options.UseHighlighting" xml:space="preserve">
<value>Usar destaques avançados</value>
</data>
<data name="AvalonEdit.FileEncoding.EncodingCausesDataLoss" xml:space="preserve">
<value>O arquivo não pode ser salvo com a codificação corrente ${encoding} sem perder dados</value>
</data>
@ -2471,7 +2480,7 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã @@ -2471,7 +2480,7 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã
<value>&amp;Atualizar mudanças quando salvo</value>
</data>
<data name="Dialog.Options.IDEOptions.LoadSaveOptions.CreateBackupCopyCheckBox" xml:space="preserve">
<value>Sempre cri&amp;ar cópia de segurança</value>
<value>Usar arquivo &amp;temporario para salvar.</value>
</data>
<data name="Dialog.Options.IDEOptions.LoadSaveOptions.DefaultFileEncoding" xml:space="preserve">
<value>Codificação padrão de arquivo:</value>
@ -2489,7 +2498,7 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã @@ -2489,7 +2498,7 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã
<value>&amp;Abrir configurações específicas de usuário com o documento</value>
</data>
<data name="Dialog.Options.IDEOptions.LoadSaveOptions.MacintoshRadioButton" xml:space="preserve">
<value>Macintosh</value>
<value>Macintosh (CR)</value>
</data>
<data name="Dialog.Options.IDEOptions.LoadSaveOptions.PanelName" xml:space="preserve">
<value>Abrir/Salvar</value>
@ -2498,13 +2507,13 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã @@ -2498,13 +2507,13 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã
<value>Salvar</value>
</data>
<data name="Dialog.Options.IDEOptions.LoadSaveOptions.UnixRadioButton" xml:space="preserve">
<value>Unix</value>
<value>Unix (LF)</value>
</data>
<data name="Dialog.Options.IDEOptions.LoadSaveOptions.UseRecycleBin" xml:space="preserve">
<value>Usar &amp;Lixeira quando deletar arquivos</value>
</data>
<data name="Dialog.Options.IDEOptions.LoadSaveOptions.WindowsRadioButton" xml:space="preserve">
<value>Windows</value>
<value>Windows (CRLF)</value>
</data>
<data name="Dialog.Options.IDEOptions.OutputPanel.Format" xml:space="preserve">
<value>Formato</value>
@ -2515,6 +2524,9 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã @@ -2515,6 +2524,9 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã
<data name="Dialog.Options.IDEOptions.OutputPanel.WordWrap" xml:space="preserve">
<value>Rolagem de palavra</value>
</data>
<data name="Dialog.Options.IDEOptions.Profiling" xml:space="preserve">
<value>Perfil</value>
</data>
<data name="Dialog.Options.IDEOptions.ProjectAndSolutionOptions.BuildAndRunGroupBox" xml:space="preserve">
<value>Opções de Compilação e Execução</value>
</data>
@ -2713,9 +2725,15 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã @@ -2713,9 +2725,15 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.BracketMatchingStyle.BeforeCaret" xml:space="preserve">
<value>Antes do Circunflexo</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.CaretCheckBox" xml:space="preserve">
<value>Mostra linha do cursor</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.EOLMarkersCheckBox" xml:space="preserve">
<value>Mostrar marcas de &amp;EOL</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.HighlightSymbolCheckBox" xml:space="preserve">
<value>Simbolos em destaque</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.HiglightBracketCheckBox" xml:space="preserve">
<value>Destacar &amp;chave correspondente</value>
</data>
@ -2845,6 +2863,18 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã @@ -2845,6 +2863,18 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã
<data name="Dialog.ProjectOptions.ApplicationSettings.LocalizedStringFileLabel" xml:space="preserve">
<value>String do arquivo localizado:</value>
</data>
<data name="Dialog.ProjectOptions.ApplicationSettings.Manifest" xml:space="preserve">
<value>&amp;Manifest da aplicação</value>
</data>
<data name="Dialog.ProjectOptions.ApplicationSettings.Manifest.DoNotEmbedManifest" xml:space="preserve">
<value>Não embutir o manifest</value>
</data>
<data name="Dialog.ProjectOptions.ApplicationSettings.Manifest.EmbedDefault" xml:space="preserve">
<value>Embutir o manifest padrão</value>
</data>
<data name="Dialog.ProjectOptions.ApplicationSettings.Manifest.ManifestFiles" xml:space="preserve">
<value>Arquivos manifest</value>
</data>
<data name="Dialog.ProjectOptions.ApplicationSettings.OutputName" xml:space="preserve">
<value>Nome de Saída:</value>
</data>
@ -3145,6 +3175,9 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã @@ -3145,6 +3175,9 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã
<data name="Dialog.Refactoring.ExtractInterface.AddInterfaceToClass" xml:space="preserve">
<value>Adicionar interface para a classe</value>
</data>
<data name="Dialog.Refactoring.ExtractInterface.GeneratedName" xml:space="preserve">
<value>Nome gerado</value>
</data>
<data name="Dialog.Refactoring.ExtractInterface.IncludeComments" xml:space="preserve">
<value>Incluir Comentarios</value>
</data>
@ -3157,6 +3190,18 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã @@ -3157,6 +3190,18 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã
<data name="Dialog.Refactoring.ExtractInterface.SelectPublicMembers" xml:space="preserve">
<value>Selecionar membros públicos</value>
</data>
<data name="Dialog.Refactoring.IntroduceMethod.CreateNew" xml:space="preserve">
<value>Criar nova classe:</value>
</data>
<data name="Dialog.Refactoring.IntroduceMethod.Description" xml:space="preserve">
<value>O metodo não pode ser criado diretamente porque não há codigo fonte disponivel na classe. Favor selecionar a classe estatica onde o metodo será criado como uma extensão.</value>
</data>
<data name="Dialog.Refactoring.IntroduceMethod.Title" xml:space="preserve">
<value>Introduzir metodo</value>
</data>
<data name="Dialog.Refactoring.IntroduceMethod.UseExisting" xml:space="preserve">
<value>Usar classe existente:</value>
</data>
<data name="Dialog.SelectReferenceDialog.BrowserTabPage" xml:space="preserve">
<value>Navegador de Assembly .NET</value>
</data>
@ -3250,6 +3295,9 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã @@ -3250,6 +3295,9 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã
<data name="FileUtilityService.ErrorWhileSaving" xml:space="preserve">
<value>Erro durante gravação</value>
</data>
<data name="FileUtilityService.FileSizeTooBig" xml:space="preserve">
<value>O arquivo é muito grande para ser aberto.</value>
</data>
<data name="FormsDesigner.DesignErrorPanel.ErrorText" xml:space="preserve">
<value>Por favor corrija todos os erros do código fonte antes de modelar o formulário</value>
</data>
@ -3319,6 +3367,18 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã @@ -3319,6 +3367,18 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã
<data name="Global.Folder" xml:space="preserve">
<value>Pasta</value>
</data>
<data name="Global.FontStyle" xml:space="preserve">
<value>Estilo do fonte</value>
</data>
<data name="Global.FontStyle.CustomColor" xml:space="preserve">
<value>Personalizar</value>
</data>
<data name="Global.FontStyle.SelectFont" xml:space="preserve">
<value>Selecionar fonte</value>
</data>
<data name="Global.FontStyle.Underline" xml:space="preserve">
<value>Traço baixo</value>
</data>
<data name="Global.HelpButtonText" xml:space="preserve">
<value>&amp;Ajuda</value>
</data>
@ -3376,6 +3436,9 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã @@ -3376,6 +3436,9 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã
<data name="Global.PleaseWait" xml:space="preserve">
<value>Por favor, aguarde...</value>
</data>
<data name="Global.Preview" xml:space="preserve">
<value>Prever</value>
</data>
<data name="Global.QuestionText" xml:space="preserve">
<value>Questão</value>
</data>
@ -3395,7 +3458,7 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã @@ -3395,7 +3458,7 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã
<value>Tentar de novo</value>
</data>
<data name="Global.SelectAllButtonText" xml:space="preserve">
<value>Selecionar todos</value>
<value>Selecion&amp;ar todos</value>
</data>
<data name="Global.SmallIconToolTip" xml:space="preserve">
<value>Ícones Pequenos</value>
@ -3424,6 +3487,9 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã @@ -3424,6 +3487,9 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã
<data name="Gui.ProjectBrowser.Open" xml:space="preserve">
<value>Abrir</value>
</data>
<data name="Gui.ProjectBrowser.OpenFolderInExplorer" xml:space="preserve">
<value>Abrir diretorio no Explorer</value>
</data>
<data name="Gui.ProjectBrowser.OpenWith" xml:space="preserve">
<value>Abrir Com...</value>
</data>
@ -3448,6 +3514,9 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã @@ -3448,6 +3514,9 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã
<data name="Gui.ProjectBrowser.OpenWith.Bindings.TextEditor" xml:space="preserve">
<value>Editor de texto</value>
</data>
<data name="Gui.ProjectBrowser.OpenWith.Bindings.TextEditorWithEncoding" xml:space="preserve">
<value>Editor de texto (escolher codificação)</value>
</data>
<data name="Gui.ProjectBrowser.OpenWith.Bindings.WebBrowser" xml:space="preserve">
<value>Navegador Web embutido</value>
</data>
@ -3490,6 +3559,9 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã @@ -3490,6 +3559,9 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã
<data name="Hornung.ResourceToolkit.EditStringResourceDialog.KeyIsEmpty" xml:space="preserve">
<value>Chave de recurso não pode ser vazia!</value>
</data>
<data name="Hornung.ResourceToolkit.ErrorProcessingResourceFile" xml:space="preserve">
<value>Ocorreu um erro ao processar o arquivo de recursos na linha '{0}'.</value>
</data>
<data name="Hornung.ResourceToolkit.FindMissingResourceKeys" xml:space="preserve">
<value>Achar chaves de recursos perdidos</value>
</data>
@ -3508,21 +3580,60 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã @@ -3508,21 +3580,60 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã
<data name="Hornung.ResourceToolkit.ReferencesToMissingKeys" xml:space="preserve">
<value>Referências para chaves de recursos perdidas</value>
</data>
<data name="Hornung.ResourceToolkit.ReferencesToResource" xml:space="preserve">
<value>Referencias para ${ResourceKey} (em ${ResourceFileName})</value>
</data>
<data name="Hornung.ResourceToolkit.RenameKeyDefinitionNotFoundWarning" xml:space="preserve">
<value>Não foi possivel encontrar e renomear a definição dessa chave de recurso.</value>
</data>
<data name="Hornung.ResourceToolkit.RenameResourceText" xml:space="preserve">
<value>Digite novo nome da chave de recurso</value>
</data>
<data name="Hornung.ResourceToolkit.ResourceTypeNotSupported" xml:space="preserve">
<value>O recurso selecionado não é do tipo 'string' e não pode ser editado.</value>
</data>
<data name="Hornung.ResourceToolkit.TextEditorContextMenu.AddResource" xml:space="preserve">
<value>Adicionar este recurso</value>
</data>
<data name="Hornung.ResourceToolkit.TextEditorContextMenu.EditResource" xml:space="preserve">
<value>Editar recurso</value>
</data>
<data name="Hornung.ResourceToolkit.ToolsMenuLabel" xml:space="preserve">
<value>Ferramentas de Recurso</value>
</data>
<data name="Hornung.ResourceToolkit.ToolTips.KeyNotFound" xml:space="preserve">
<value>&lt;CHAVE NÃO ENCONTRADA&gt;</value>
</data>
<data name="Hornung.ResourceToolkit.ToolTips.PlaceMessage" xml:space="preserve">
<value>Recurso em {0}:</value>
</data>
<data name="Hornung.ResourceToolkit.ToolTips.TypeMessage" xml:space="preserve">
<value>Objeto do tipo {0}:</value>
</data>
<data name="Hornung.ResourceToolkit.ToolTips.UnknownKey" xml:space="preserve">
<value>&lt;Desconhecido&gt;</value>
</data>
<data name="Hornung.ResourceToolkit.UnusedResourceKeys.HideICSharpCodeCoreHostResourcesTitle" xml:space="preserve">
<value>Esconde os recursos de ICSharpCode.Core</value>
</data>
<data name="Hornung.ResourceToolkit.UnusedResourceKeys.HideICSharpCodeCoreHostResourcesTooltip" xml:space="preserve">
<value>Quando selecionadas, as teclas dos recursos que estão contidas no arquivo de recurso do aplicativo ICSharpCode.Core, não estão listadas.</value>
</data>
<data name="Hornung.ResourceToolkit.UnusedResourceKeys.NotFound" xml:space="preserve">
<value>Não foi encontrada na solução nenhuma tecla de recurso não utilizado.</value>
</data>
<data name="Hornung.ResourceToolkit.UnusedResourceKeys.Title" xml:space="preserve">
<value>Teclas de recursos não utilizados</value>
</data>
<data name="Hornung.ResourceToolkit.Value" xml:space="preserve">
<value>Valor</value>
</data>
<data name="Hornung.ResourceToolkit.ValueLabel" xml:space="preserve">
<value>Valor do recurso:</value>
</data>
<data name="ICSharpCode.AvalonEdit.AddIn.SharpDevelopCompletionWindow.EmptyText" xml:space="preserve">
<value>Pressione Ctrl+Espaço para mostrar os itens de todos os namespaces</value>
</data>
<data name="ICSharpCode.BooInterpreter" xml:space="preserve">
<value>Tradutor Boo</value>
</data>
@ -3541,15 +3652,42 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã @@ -3541,15 +3652,42 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã
<data name="ICSharpCode.BooInterpreter.Debuggee.ToolTip" xml:space="preserve">
<value>Executa comandos no programa depurado</value>
</data>
<data name="ICSharpCode.Build.CannotFindFxCop" xml:space="preserve">
<value>O SharpDevelop não achou FxCop. Favor selecionar o diretório de instalação do FxCop nas opções do SharpDevelop.</value>
</data>
<data name="ICSharpCode.Build.CannotReadFxCopLogFile" xml:space="preserve">
<value>Não pode ler o arquivo de log do FxCop:</value>
</data>
<data name="ICSharpCode.Build.MonoIsNotInstalled" xml:space="preserve">
<value>Mono não está instalado.</value>
</data>
<data name="ICSharpCode.Build.RunningCodeAnalysis" xml:space="preserve">
<value>Executando analise de codigo...</value>
</data>
<data name="ICSharpCode.Build.UnknownTargetMonoFrameworkVersion" xml:space="preserve">
<value>Desconhecida a versão do Mono Framework:</value>
</data>
<data name="ICSharpCode.CodeAnalysis" xml:space="preserve">
<value>Análise de Código</value>
</data>
<data name="ICSharpCode.CodeAnalysis.CheckWithFxCop" xml:space="preserve">
<value>Verificar com FxCop</value>
</data>
<data name="ICSharpCode.CodeAnalysis.IdeOptions.DirectoryDoesNotContainFxCop" xml:space="preserve">
<value>O diretorio selecionado não contem a instalação completa do FxCop.</value>
</data>
<data name="ICSharpCode.CodeAnalysis.IdeOptions.FindFxCopPath" xml:space="preserve">
<value>Selecione o caminho para o FxCop</value>
</data>
<data name="ICSharpCode.CodeAnalysis.IdeOptions.FxCopFoundInPath" xml:space="preserve">
<value>O FxCop foi encontrado no seguinte diretorio:</value>
</data>
<data name="ICSharpCode.CodeAnalysis.IdeOptions.FxCopNotFound" xml:space="preserve">
<value>O FxCop não foi encontrado. Para mostrar o SharpDevelop onde o FxCop está instalado, instale o FxCop e clique em 'Selecionar Caminho para FxCop'.</value>
</data>
<data name="ICSharpCode.CodeAnalysis.IdeOptions.FxCopPath" xml:space="preserve">
<value>Caminho para FxCop</value>
</data>
<data name="ICSharpCode.CodeAnalysis.ProjectOptions.AddRemoveRuleAssembly" xml:space="preserve">
<value>Adicionar/Remover regras de assembler.</value>
</data>
@ -3583,6 +3721,9 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã @@ -3583,6 +3721,9 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã
<data name="ICSharpCode.CodeAnalysis.RunningFxCopOn" xml:space="preserve">
<value>Executando com FxCop</value>
</data>
<data name="ICSharpCode.CodeAnalysis.SuppressMessage" xml:space="preserve">
<value>Suprimir mensagem</value>
</data>
<data name="ICSharpCode.CodeCoverage.CodeCovered" xml:space="preserve">
<value>Código Coberto</value>
</data>
@ -3637,6 +3778,9 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã @@ -3637,6 +3778,9 @@ Além disso, um span pode definir um rule set nomedo que permite uma formataçã
<data name="ICSharpCode.CodeCoverage.ProjectOptionsPanel.ExcludeAttributes" xml:space="preserve">
<value>Atributos excluidos</value>
</data>
<data name="ICSharpCode.CodeCoverage.ProjectOptionsPanel.ExcludeListLabel" xml:space="preserve">
<value>Excluir</value>
</data>
<data name="ICSharpCode.CodeCoverage.RunningCodeCoverage" xml:space="preserve">
<value>Rodando cobertura de código...</value>
</data>

39
data/resources/StringResources.pt.resx

@ -289,6 +289,18 @@ Faça o download de um AddIn através da Internet, depois pressione 'Instalar Ad @@ -289,6 +289,18 @@ Faça o download de um AddIn através da Internet, depois pressione 'Instalar Ad
<data name="AddIns.HexEditor.Display.Elements" xml:space="preserve">
<value>Elementos</value>
</data>
<data name="AddIns.HexEditor.Display.Elements.Data" xml:space="preserve">
<value>Dados</value>
</data>
<data name="AddIns.HexEditor.Display.Elements.Offset" xml:space="preserve">
<value>Deslocamento</value>
</data>
<data name="AddIns.HexEditor.NumeralSystem" xml:space="preserve">
<value>Sistema numérico</value>
</data>
<data name="AddIns.HexEditor.SizeToFit" xml:space="preserve">
<value>Escalar para caber na largura actual</value>
</data>
<data name="AddIns.HtmlHelp2.AddToFavorites" xml:space="preserve">
<value>Adicionar para favoritos de Ajuda</value>
</data>
@ -455,6 +467,33 @@ Precisa de instalar o .NET Framework SDK para utilizar o sistema de ajuda.</valu @@ -455,6 +467,33 @@ Precisa de instalar o .NET Framework SDK para utilizar o sistema de ajuda.</valu
<data name="AddIns.HtmlHelp2.UseCurrentProjectLanguageForSearch" xml:space="preserve">
<value>Utilizar a linguagem de projecto actual</value>
</data>
<data name="AddIns.Profiler.Commands.FindCallsOfSelected.TabTitle" xml:space="preserve">
<value>Resultado</value>
</data>
<data name="AddIns.Profiler.Commands.SetAsRoot.TabTitle" xml:space="preserve">
<value>Nós Juntos</value>
</data>
<data name="AddIns.Profiler.Commands.ShowFunctions.TabTitle" xml:space="preserve">
<value>Todas as funções para {0}</value>
</data>
<data name="AddIns.Profiler.DatabaseTooNewError" xml:space="preserve">
<value>O perfil de sessão SharpDevelop seleccionado foi criado por uma versão mais recente de SharpDevelop e assim não pode ser aberto.</value>
</data>
<data name="AddIns.Profiler.Messages.FileNotFound" xml:space="preserve">
<value>Este projecto não pode ser iniciado porque o ficheiro executável não foi encontrado, assegure-se, por favor,de que o projecto e todas as suas dependências são construídas correctamente!</value>
</data>
<data name="AddIns.Profiler.Messages.NoStartableProjectFound" xml:space="preserve">
<value>Nenhum projecto iniciável foi encontrado. Abortar...</value>
</data>
<data name="AddIns.Profiler.ProfilingView.CpuCyclesText" xml:space="preserve">
<value>Ciclos CPU:</value>
</data>
<data name="AddIns.Profiler.ProfilingView.ExecuteQueryText" xml:space="preserve">
<value>Executar inquérito</value>
</data>
<data name="AddIns.Profiler.ProfilingView.NameColumnText" xml:space="preserve">
<value>Nome</value>
</data>
<data name="AddIns.SharpRefactoring.ExtractMethod" xml:space="preserve">
<value>Extrair method</value>
</data>

36
data/resources/StringResources.resx

@ -2817,6 +2817,9 @@ system. I don't think that it needs translation.</comment> @@ -2817,6 +2817,9 @@ system. I don't think that it needs translation.</comment>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.CaretCheckBox" xml:space="preserve">
<value>Show caret line</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.EnableAnimationsCheckBox" xml:space="preserve">
<value>Enable animations</value>
</data>
<data name="Dialog.Options.IDEOptions.TextEditor.Markers.EOLMarkersCheckBox" xml:space="preserve">
<value>Show &amp;end-of-line markers</value>
</data>
@ -5864,6 +5867,9 @@ Stop/terminate the debuggee.</comment> @@ -5864,6 +5867,9 @@ Stop/terminate the debuggee.</comment>
<data name="MainWindow.Windows.Debug.ExceptionHistory.Time" xml:space="preserve">
<value>Time</value>
</data>
<data name="MainWindow.Windows.Debug.HideZoomControl" xml:space="preserve">
<value>Show/Hide Zoom Control</value>
</data>
<data name="MainWindow.Windows.Debug.Local" xml:space="preserve">
<value>Local</value>
</data>
@ -6006,6 +6012,9 @@ Shows the full callstack of the error.</comment> @@ -6006,6 +6012,9 @@ Shows the full callstack of the error.</comment>
<data name="MainWindow.Windows.Debug.Threads.ThreadSwitch" xml:space="preserve">
<value>Thread switch</value>
</data>
<data name="MainWindow.Windows.Debug.ToggleMethodView" xml:space="preserve">
<value>Toggle Method View</value>
</data>
<data name="MainWindow.Windows.Debug.Watch" xml:space="preserve">
<value>Watch</value>
</data>
@ -6266,6 +6275,9 @@ Removed the end part of the original message ", reason '${Message}'" since this @@ -6266,6 +6275,9 @@ Removed the end part of the original message ", reason '${Message}'" since this
<value>Open Containing Folder In Explorer</value>
<comment>String for the editor tab context menu that will open the directory in which a documents file is contained in Windows Explorer.</comment>
</data>
<data name="ProjectBrowser.Toolbar.CollapseAll" xml:space="preserve">
<value>Collapse all nodes</value>
</data>
<data name="ProjectComponent.ContextMenu.AddExistingFiles" xml:space="preserve">
<value>Add existing files</value>
</data>
@ -7167,6 +7179,12 @@ The resources files have been renamed/moved accordingly.</value> @@ -7167,6 +7179,12 @@ The resources files have been renamed/moved accordingly.</value>
<data name="SharpReport.Toolbar.Functions.TodaysDate" xml:space="preserve">
<value>Today</value>
</data>
<data name="SharpReport.Toolbar.GroupFooter" xml:space="preserve">
<value>GroupFooter</value>
</data>
<data name="SharpReport.Toolbar.GroupHeader" xml:space="preserve">
<value>GroupHeader</value>
</data>
<data name="SharpReport.Toolbar.Image" xml:space="preserve">
<value>Image</value>
</data>
@ -7179,6 +7197,9 @@ The resources files have been renamed/moved accordingly.</value> @@ -7179,6 +7197,9 @@ The resources files have been renamed/moved accordingly.</value>
<data name="SharpReport.Toolbar.Rectangle" xml:space="preserve">
<value>Rectangle</value>
</data>
<data name="SharpReport.Toolbar.Table" xml:space="preserve">
<value>Table</value>
</data>
<data name="SharpReport.Toolbar.TextBox" xml:space="preserve">
<value>Label</value>
</data>
@ -7215,6 +7236,21 @@ The resources files have been renamed/moved accordingly.</value> @@ -7215,6 +7236,21 @@ The resources files have been renamed/moved accordingly.</value>
<data name="SharpReport.Wizard.BaseSettings.ReportType" xml:space="preserve">
<value>Report Type</value>
</data>
<data name="SharpReport.Wizard.Layout.Column" xml:space="preserve">
<value>Select the GroupColumn</value>
</data>
<data name="SharpReport.Wizard.Layout.Grouping" xml:space="preserve">
<value>Grouping</value>
</data>
<data name="SharpReport.Wizard.Layout.ListLayout" xml:space="preserve">
<value>List Layout</value>
</data>
<data name="SharpReport.Wizard.Layout.ReportLayout" xml:space="preserve">
<value>Report layout</value>
</data>
<data name="SharpReport.Wizard.Layout.TableLayout" xml:space="preserve">
<value>Table Layout</value>
</data>
<data name="SharpReport.Wizard.PullModel" xml:space="preserve">
<value>Pull Data Model</value>
</data>

52
data/resources/StringResources.ru.resx

@ -118,7 +118,7 @@ @@ -118,7 +118,7 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="AddInManager.About" xml:space="preserve">
<value>О Менеджере Надстроек</value>
<value>О Менеджере Плагинов</value>
</data>
<data name="AddInManager.ActionCancelDeinstallation" xml:space="preserve">
<value>Отменить удаление</value>
@ -145,68 +145,68 @@ @@ -145,68 +145,68 @@
<value>Обновить</value>
</data>
<data name="AddInManager.AddInDependencyFailed" xml:space="preserve">
<value>Для работы этого AddInа требуется другой AddIn. Установите его чтобы включить этот.</value>
<value>Для работы этого плагина нужен другой плагин. Установите его, чтобы включить этот.</value>
</data>
<data name="AddInManager.AddInDisabled" xml:space="preserve">
<value>Отключен</value>
</data>
<data name="AddInManager.AddInEnabled" xml:space="preserve">
<value>Надстройка будет включена после перезапуска SharpDevelop</value>
<value>Плагин станет доступным после перезапуска SharpDevelop</value>
</data>
<data name="AddInManager.AddInInstalled" xml:space="preserve">
<value>Надстройка будет установлена после перезапуска SharpDevelop</value>
<value>Плагин будет установлен после перезапуска SharpDevelop</value>
</data>
<data name="AddInManager.AddInInstalledTwice" xml:space="preserve">
<value>Надстройка установлена дважды. Пожалуйста, удалите одну копию.</value>
<value>Установлены две копии плагина. Пожалуйста, удалите одну из копий.</value>
</data>
<data name="AddInManager.AddInMustHaveIdentity" xml:space="preserve">
<value>Эта Надстройка должна иметь &lt;Identity&gt; для использовании в Менеджере Надстроек</value>
<value>У этого плагина должен быть &lt;Identity&gt; для использовании в Менеджере Плагинов</value>
</data>
<data name="AddInManager.AddInRemoved" xml:space="preserve">
<value>Надстройка будет удалена после перезапуска SharpDevelop</value>
<value>Плагин будет удален после перезапуска SharpDevelop</value>
</data>
<data name="AddInManager.AddInUpdated" xml:space="preserve">
<value>Надстройка будет обновлена после перезапуска SharpDevelop</value>
<value>Плагин будет обновлен после перезапуска SharpDevelop</value>
</data>
<data name="AddInManager.AddInWillBeDisabled" xml:space="preserve">
<value>Надстройка будет отключена после перезапуска SharpDevelop</value>
<value>Плагин станет недоступным после перезапуска SharpDevelop</value>
</data>
<data name="AddInManager.CannotDisableAddInManager" xml:space="preserve">
<value>Вы не можете отключить Менеджер Надстроек. Он необходим для переподключения Надстроек!</value>
<value>Вы не можете отключить Менеджер Плагинов. Он необходим для переподключения Плагинов!</value>
</data>
<data name="AddInManager.CannotInstallIntoApplicationDirectory" xml:space="preserve">
<value>Надстройки внутри папки ${ProductName} не нужно устанавливать, они предустанавливаются автоматически.</value>
<value>Нельзя устанавливать плагины внутри папки ${ProductName}, так как они будут считаться предустановленными.</value>
</data>
<data name="AddInManager.DescriptionCancelDeinstallation" xml:space="preserve">
<value>Отменяет удаление выделеных Надстроек.</value>
<value>Отменяет удаление выделеных плагинов.</value>
</data>
<data name="AddInManager.DescriptionCancelInstall" xml:space="preserve">
<value>Отменяет установку выделенных Надстроек.</value>
<value>Отменяет установку выделенных плагинов.</value>
</data>
<data name="AddInManager.DescriptionCancelUpdate" xml:space="preserve">
<value>Отменяет обновление выделенных Надстроек.</value>
<value>Отменяет обновление выделенных плагинов.</value>
</data>
<data name="AddInManager.DescriptionDisable" xml:space="preserve">
<value>Выключает выбранные Надстройки</value>
<value>Отключает выбранные плагины.</value>
</data>
<data name="AddInManager.DescriptionEnable" xml:space="preserve">
<value>Включает выбранные Надстройки</value>
<value>Включает выбранные плагины.</value>
</data>
<data name="AddInManager.DescriptionInconsistentSelection" xml:space="preserve">
<value>Неправильное выделение, пожалуйста выделите Надстройки с одинаковым статусом.</value>
<value>Неправильное выделение, пожалуйста, выделите плагины с одинаковым статусом.</value>
</data>
<data name="AddInManager.FileAssociation" xml:space="preserve">
<value>Пакет установки Надстройки</value>
<value>Установочный пакет плагина</value>
</data>
<data name="AddInManager.FileFilter" xml:space="preserve">
<value>Надстройки SharpDevelop|*.addin;*.sdaddin|Все файлы|*.*</value>
<value>Плагины SharpDevelop|*.addin;*.sdaddin|Все файлы|*.*</value>
</data>
<data name="AddInManager.InstallButton" xml:space="preserve">
<value>Установить Надстройку</value>
<value>Установить плагин</value>
</data>
<data name="AddInManager.NoAddInsInstalled" xml:space="preserve">
<value>У вас нет установленных Надстроек.
Вы можете скачать их из Интернета, потом нажать 'Установить Надстройку' и выбрать скачаный файл, чтобы установить его.</value>
<value>У Вас не установлено ни одного плагина.
Скачайте их из Интернета, нажмите 'Установить плагин' и выберите скачаный файл, чтобы установить его.</value>
</data>
<data name="AddInManager.OpenWebsite" xml:space="preserve">
<value>Открыть Web-сайт</value>
@ -215,16 +215,16 @@ @@ -215,16 +215,16 @@
<value>Опции</value>
</data>
<data name="AddInManager.RequiredBy" xml:space="preserve">
<value>Надстройки необходимы для:</value>
<value>Плагины необходимы для работы:</value>
</data>
<data name="AddInManager.RequiredDependencies" xml:space="preserve">
<value>Необходимые зависимости:</value>
<value>Требуемые для работы плагины:</value>
</data>
<data name="AddInManager.ShowPreinstalledAddIns" xml:space="preserve">
<value>Показать предустановленные Надстройки</value>
<value>Показать предустановленные плагины</value>
</data>
<data name="AddInManager.Title" xml:space="preserve">
<value>Менеджер Надстроек</value>
<value>Менеджер Плагинов</value>
</data>
<data name="AddInManager.UnknownFileFormat" xml:space="preserve">
<value>Неизвестный формат файла:</value>

147
data/resources/StringResources.tr.resx

@ -232,12 +232,69 @@ @@ -232,12 +232,69 @@
<data name="AddIns.ClassDiagram.ShowClassDiagram" xml:space="preserve">
<value>Sınıf Şemasını Göster</value>
</data>
<data name="AddIns.Git.TortoiseGitRequired" xml:space="preserve">
<value>Bu işlemi gerçekleştirebilmek için TortoiseGit yüklü olmalıdır.</value>
</data>
<data name="AddIns.HelpViewer.ContentsPadTitle" xml:space="preserve">
<value>İçerikler</value>
</data>
<data name="AddIns.HelpViewer.DisplayContentsCommand" xml:space="preserve">
<value>İçeriği Göster</value>
</data>
<data name="AddIns.HelpViewer.DisplaySearchCommand" xml:space="preserve">
<value>Arama</value>
</data>
<data name="AddIns.HelpViewer.HelpLibraryRootTitle" xml:space="preserve">
<value>Yardım Kütüphanesi</value>
</data>
<data name="AddIns.HelpViewer.HelpModeLabel" xml:space="preserve">
<value>Yardım Modu</value>
</data>
<data name="AddIns.HelpViewer.InstalledHelpCatalogsLabel" xml:space="preserve">
<value>Yüklü Yardım Katalogları</value>
</data>
<data name="AddIns.HelpViewer.MicrosoftHelpViewerTitle" xml:space="preserve">
<value>Microsoft Yardım Görüntüleyici</value>
</data>
<data name="AddIns.HelpViewer.OfflineFeatureRequestMsg" xml:space="preserve">
<value>Çevrimiçi yardım modunda çevrimdışı bir özellik kullanmaya çalıştın. Bu özelliği kullanabilmek için yardım modunu değiştirmelisin.</value>
</data>
<data name="AddIns.HelpViewer.SearchDoSearchButton" xml:space="preserve">
<value>Ara</value>
</data>
<data name="AddIns.HelpViewer.SearchLookForLabel" xml:space="preserve">
<value>Ne için:</value>
</data>
<data name="AddIns.HelpViewer.SearchPadTitle" xml:space="preserve">
<value>Arama</value>
</data>
<data name="AddIns.HelpViewer.ShowErrorHelpTitle" xml:space="preserve">
<value>Yardımı Göster</value>
</data>
<data name="AddIns.HelpViewer.UseExternalHelp" xml:space="preserve">
<value>Harici yardımı kullan</value>
</data>
<data name="AddIns.HelpViewer.UseOfflineHelpLabel" xml:space="preserve">
<value>Yerel yardımı kullanmak istiyorum</value>
</data>
<data name="AddIns.HelpViewer.UseOnlineHelpLabel" xml:space="preserve">
<value>Çevrimiçi yardımı kullanmak istiyorum</value>
</data>
<data name="AddIns.HexEditor.DefaultBytesPerLine" xml:space="preserve">
<value>Tek satırdaki bayt</value>
</data>
<data name="AddIns.HexEditor.Display" xml:space="preserve">
<value>Gösterim</value>
</data>
<data name="AddIns.HexEditor.Display.Elements" xml:space="preserve">
<value>Nesneler</value>
</data>
<data name="AddIns.HexEditor.Display.Elements.Data" xml:space="preserve">
<value>Veri</value>
</data>
<data name="AddIns.HexEditor.Display.Elements.Offset" xml:space="preserve">
<value>Ofset</value>
</data>
<data name="AddIns.HexEditor.NumeralSystem" xml:space="preserve">
<value>Sayısal sistem</value>
</data>
@ -410,6 +467,87 @@ Yardım sistemini elde edebilmek için .NET Framework SDK 'yı yüklemelisiniz.< @@ -410,6 +467,87 @@ Yardım sistemini elde edebilmek için .NET Framework SDK 'yı yüklemelisiniz.<
<data name="AddIns.HtmlHelp2.UseCurrentProjectLanguageForSearch" xml:space="preserve">
<value>Şu anki proje dilini kullan</value>
</data>
<data name="AddIns.Profiler.Commands.FindCallsOfSelected.TabTitle" xml:space="preserve">
<value>Sonuçlar</value>
</data>
<data name="AddIns.Profiler.Commands.SetAsRoot.TabTitle" xml:space="preserve">
<value>Birleşik Parçalar</value>
</data>
<data name="AddIns.Profiler.Commands.ShowFunctions.TabTitle" xml:space="preserve">
<value>{0} için olan tüm fonksiyonlar</value>
</data>
<data name="AddIns.Profiler.DatabaseTooNewError" xml:space="preserve">
<value>Seçili SharpDevelop profil oturumu yeni bir SharpDevelop sürümü ile oluşturulmuş ve açılamıyor.</value>
</data>
<data name="AddIns.Profiler.FileExtensionDescription" xml:space="preserve">
<value>SharpDevelop Profil Oturumu</value>
</data>
<data name="AddIns.Profiler.Messages.FileNotFound" xml:space="preserve">
<value>Çalıştırılabilir dosya bulunamadığı için proje başlatılamadı, lütfen projenin kendisinin ve tüm bağlantılarının doğruluğundan emin olunuz.</value>
</data>
<data name="AddIns.Profiler.Messages.NoStartableProjectFound" xml:space="preserve">
<value>Açılabilir bir proje bulunamadı. İptal ediliyor...</value>
</data>
<data name="AddIns.Profiler.Messages.PreparingForAnalysis" xml:space="preserve">
<value>Analiz için hazırlanıyor...</value>
</data>
<data name="AddIns.Profiler.Messages.RegisterFailed" xml:space="preserve">
<value>COM kayıt istemcisine profil kaydı girilemedi. Profilleme başlatılamıyor.</value>
</data>
<data name="AddIns.Profiler.Messages.UnregisterFailed" xml:space="preserve">
<value>COM kayıt istemcisinden profil kaydı silinemedi!</value>
</data>
<data name="AddIns.Profiler.MessageViewCategory" xml:space="preserve">
<value>Profil</value>
</data>
<data name="AddIns.Profiler.Options.General.DataCollection.CombineRecursiveCalls" xml:space="preserve">
<value>Yinelenen çağrıları birleştir.</value>
</data>
<data name="AddIns.Profiler.Options.General.DataCollection.DoNotProfileNetInternals" xml:space="preserve">
<value>İç .NET çağrılarını profilleme.</value>
</data>
<data name="AddIns.Profiler.Options.General.DataCollection.EnableDC" xml:space="preserve">
<value>Verileri sadece bu oturumun sonunda derle.</value>
</data>
<data name="AddIns.Profiler.Options.General.DataCollection.EnableDCAtStartup" xml:space="preserve">
<value>Verilerin derlenmesini hemen oturum açılınca başlat.</value>
</data>
<data name="AddIns.Profiler.Options.General.DataCollection.Header" xml:space="preserve">
<value>Veri Koleksiyonu</value>
</data>
<data name="AddIns.Profiler.Options.General.DataCollection.SizeOfStorageDescription" xml:space="preserve">
<value>Geçici depolama dosyasının boyutu:</value>
</data>
<data name="AddIns.Profiler.Options.General.DataCollection.TrackEvents" xml:space="preserve">
<value>Olayları takip et</value>
</data>
<data name="AddIns.Profiler.Options.General.Title" xml:space="preserve">
<value>Genel</value>
</data>
<data name="AddIns.Profiler.Options.Title" xml:space="preserve">
<value>Profilleme</value>
</data>
<data name="AddIns.Profiler.ProfileExecutable.ErrorMessage" xml:space="preserve">
<value>Veri geçersiz, lütfen tekrar deneyin.</value>
</data>
<data name="AddIns.Profiler.ProfilerControlWindow.CollectData" xml:space="preserve">
<value>Veri topla</value>
</data>
<data name="AddIns.Profiler.ProfilerControlWindow.Shutdown" xml:space="preserve">
<value>Kapat</value>
</data>
<data name="AddIns.Profiler.ProfilingView.NameColumnText" xml:space="preserve">
<value>Ad</value>
</data>
<data name="AddIns.Profiler.ProfilingView.SearchLabelText" xml:space="preserve">
<value>Ara:</value>
</data>
<data name="AddIns.Profiler.ProfilingView.TimeSpentColumnText" xml:space="preserve">
<value>Geçen süre</value>
</data>
<data name="AddIns.Profiler.ProfilingView.TimeText" xml:space="preserve">
<value>Süre:</value>
</data>
<data name="AddIns.SharpRefactoring.ExtractMethod" xml:space="preserve">
<value>Çıkartma yöntemi</value>
</data>
@ -425,6 +563,12 @@ Yardım sistemini elde edebilmek için .NET Framework SDK 'yı yüklemelisiniz.< @@ -425,6 +563,12 @@ Yardım sistemini elde edebilmek için .NET Framework SDK 'yı yüklemelisiniz.<
<data name="AddIns.SharpRefactoring.ExtractMethodNotSupported" xml:space="preserve">
<value>{0} içinden çıkarım yöntemi desteklenmemektedir!</value>
</data>
<data name="AddIns.SharpRefactoring.InsertCtor.VariableLabel" xml:space="preserve">
<value>Değişken</value>
</data>
<data name="AddIns.SharpRefactoring.OverrideEqualsGetHashCodeMethods.AddInterface" xml:space="preserve">
<value>Arayüz ekle {0}</value>
</data>
<data name="AddIns.SourceAnalysis.CheckWithStyleCop" xml:space="preserve">
<value>StyleCop ile Kontrol Et</value>
</data>
@ -530,6 +674,9 @@ Yardım sistemini elde edebilmek için .NET Framework SDK 'yı yüklemelisiniz.< @@ -530,6 +674,9 @@ Yardım sistemini elde edebilmek için .NET Framework SDK 'yı yüklemelisiniz.<
<data name="AddIns.Subversion.UpdateToRevision" xml:space="preserve">
<value>Kontrolü yenile</value>
</data>
<data name="AddIns.UsageDataCollector.AcceptConfirmation" xml:space="preserve">
<value>Katılımınız için teşekkürler. İstediğiniz zaman SharpDevelop seçeneklerini kullanarak çıkabilirsiniz.</value>
</data>
<data name="AddIns.UsageDataCollector.AcceptRadioButton" xml:space="preserve">
<value>Katılmak istiyorum. Kullanım bilgilerini topla ve gönder</value>
</data>

523
data/schemas/AddIn.xsd

@ -117,23 +117,22 @@ @@ -117,23 +117,22 @@
<xs:element ref="CustomProperty" />
<xs:element ref="CustomTool" />
<xs:element ref="Debugger" />
<xs:element ref="DialogPanel" />
<xs:element ref="Directory" />
<xs:element ref="DisplayBinding" />
<xs:element ref="EditAction" />
<xs:element ref="FileFilter" />
<xs:element ref="Icon" />
<xs:element ref="Include" />
<xs:element ref="ProjectBinding" />
<xs:element ref="LanguageBinding" />
<xs:element ref="MenuItem" />
<xs:element ref="OptionPanel" />
<xs:element ref="Pad" />
<xs:element ref="Parser" />
<xs:element ref="ProjectBinding" />
<xs:element ref="ProjectContentRegistry" />
<xs:element ref="SchemeExtension" />
<xs:element ref="String" />
<xs:element ref="SyntaxMode" />
<xs:element ref="TaskBoundAdditionalLogger" />
<xs:element ref="TaskBoundLoggerFilter" />
<xs:element ref="ToolbarItem" />
</xs:choice>
<xs:attribute name="name" type="xs:string" use="required" />
@ -188,23 +187,22 @@ @@ -188,23 +187,22 @@
<xs:element ref="CustomProperty" />
<xs:element ref="CustomTool" />
<xs:element ref="Debugger" />
<xs:element ref="DialogPanel" />
<xs:element ref="Directory" />
<xs:element ref="DisplayBinding" />
<xs:element ref="EditAction" />
<xs:element ref="FileFilter" />
<xs:element ref="Icon" />
<xs:element ref="Include" />
<xs:element ref="ProjectBinding" />
<xs:element ref="LanguageBinding" />
<xs:element ref="MenuItem" />
<xs:element ref="OptionPanel" />
<xs:element ref="Pad" />
<xs:element ref="Parser" />
<xs:element ref="ProjectBinding" />
<xs:element ref="ProjectContentRegistry" />
<xs:element ref="SchemeExtension" />
<xs:element ref="String" />
<xs:element ref="SyntaxMode" />
<xs:element ref="TaskBoundAdditionalLogger" />
<xs:element ref="TaskBoundLoggerFilter" />
<xs:element ref="ToolbarItem" />
</xs:choice>
<xs:attribute name="action" use="optional">
@ -266,8 +264,8 @@ @@ -266,8 +264,8 @@
<xs:attribute name="class" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
The fully qualified type name of the class to create an instace of.
</xs:documentation>
The fully qualified type name of the class to create an instace of.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
@ -287,16 +285,16 @@ @@ -287,16 +285,16 @@
<xs:attribute name="class" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Name of the ICodeCompletionBinding class (normally deriving from DefaultCodeCompletionBinding).
</xs:documentation>
Name of the ICodeCompletionBinding class (normally deriving from DefaultCodeCompletionBinding).
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="extensions" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
List of semicolon-separated entries of the file extensions handled by the binding.
If no extensions attribute is specified, the binding is activated in all files.
</xs:documentation>
List of semicolon-separated entries of the file extensions handled by the binding.
If no extensions attribute is specified, the binding is activated in all files.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
@ -315,30 +313,30 @@ @@ -315,30 +313,30 @@
<xs:attribute name="name" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
The name of the MSBuild meta data.
</xs:documentation>
The name of the MSBuild meta data.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="displayName" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
The display name of the property.
</xs:documentation>
The display name of the property.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="description" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
The description text for the property.
</xs:documentation>
The description text for the property.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="runCustomTool" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Boolean property specifying whether the custom tool should be run when the property value is changed
by the user. Default: false.
</xs:documentation>
Boolean property specifying whether the custom tool should be run when the property value is changed
by the user. Default: false.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
@ -357,23 +355,23 @@ @@ -357,23 +355,23 @@
<xs:attribute name="id" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
ID used to identify the custom tool.
</xs:documentation>
ID used to identify the custom tool.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="class" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Name of the ICustomTool class.
</xs:documentation>
Name of the ICustomTool class.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="fileNamePattern" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Regular expression that specifies the file names for which the custom tool
can be used. Example: "\.res(x|ources)$"
</xs:documentation>
Regular expression that specifies the file names for which the custom tool
can be used. Example: "\.res(x|ources)$"
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
@ -392,43 +390,43 @@ @@ -392,43 +390,43 @@
<xs:attribute name="class" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Name of the IDebugger class.
</xs:documentation>
Name of the IDebugger class.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="supportsStart" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Specifies if the debugger supports the 'Start' command. Default: true
</xs:documentation>
Specifies if the debugger supports the 'Start' command. Default: true
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="supportsStartWithoutDebugger" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Specifies if the debugger supports the 'StartWithoutDebugger' command. Default: true
</xs:documentation>
Specifies if the debugger supports the 'StartWithoutDebugger' command. Default: true
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="supportsStop" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Specifies if the debugger supports the 'Stop' (kill running process) command. Default: true
</xs:documentation>
Specifies if the debugger supports the 'Stop' (kill running process) command. Default: true
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="supportsStepping" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Specifies if the debugger supports stepping. Default: false
</xs:documentation>
Specifies if the debugger supports stepping. Default: false
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="supportsExecutionControl" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Specifies if the debugger supports execution control (break, resume). Default: false
</xs:documentation>
Specifies if the debugger supports execution control (break, resume). Default: false
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
@ -441,47 +439,14 @@ @@ -441,47 +439,14 @@
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="DialogPanel">
<xs:complexContent>
<xs:extension base="AbstractCodon">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="ComplexCondition" />
<xs:element ref="Condition" />
<xs:element ref="DialogPanel" />
<xs:element ref="Include" />
</xs:choice>
<xs:attribute name="class" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Name of the IDialogPanel class. Optional if the page has subpages.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="label" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Caption of the dialog panel.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="DialogPanel" type="DialogPanel">
<xs:annotation>
<xs:documentation>
Creates DefaultDialogPanelDescriptor objects that are used in option dialogs.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="Directory">
<xs:complexContent>
<xs:extension base="AbstractCodon">
<xs:attribute name="path" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Path relative to the directory which contains the .addin file defining the codon.
</xs:documentation>
Path relative to the directory which contains the .addin file defining the codon.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
@ -500,22 +465,22 @@ @@ -500,22 +465,22 @@
<xs:attribute name="class" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Name of the IDisplayBinding or ISecondaryDisplayBinding class.
</xs:documentation>
Name of the IDisplayBinding or ISecondaryDisplayBinding class.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="title" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Title of the display binding to use in the "Open With" dialog.
</xs:documentation>
Title of the display binding to use in the "Open With" dialog.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="type" use="optional">
<xs:annotation>
<xs:documentation>
Type of the display binding (either "Primary" or "Secondary"). Default: "Primary".
</xs:documentation>
Type of the display binding (either "Primary" or "Secondary"). Default: "Primary".
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
@ -527,9 +492,9 @@ @@ -527,9 +492,9 @@
<xs:attribute name="fileNamePattern" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Regular expression that specifies the file names for which the display binding
will be used. Example: "\.res(x|ources)$"
</xs:documentation>
Regular expression that specifies the file names for which the display binding
will be used. Example: "\.res(x|ources)$"
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
@ -545,49 +510,21 @@ @@ -545,49 +510,21 @@
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="EditAction">
<xs:complexContent>
<xs:extension base="AbstractCodon">
<xs:attribute name="keys" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Comma-separated list of keyboard shortcuts that activate the edit action.
E.g. "Control|C,Control|Insert"
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="class" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Name of the IEditAction class.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="EditAction" type="EditAction">
<xs:annotation>
<xs:documentation>
Creates IEditAction objects for the text editor.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="FileFilter">
<xs:complexContent>
<xs:extension base="AbstractCodon">
<xs:attribute name="name" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
The name of the file filter entry.
</xs:documentation>
The name of the file filter entry.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="extensions" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
The extensions associated with this file filter entry.
</xs:documentation>
The extensions associated with this file filter entry.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
@ -606,24 +543,24 @@ @@ -606,24 +543,24 @@
<xs:attribute name="resource" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
The name of a bitmap resource in the resource service.
</xs:documentation>
The name of a bitmap resource in the resource service.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="language" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
This attribute is specified when a project icon association should be created.
It specifies the language of the project types that use the icon.
</xs:documentation>
This attribute is specified when a project icon association should be created.
It specifies the language of the project types that use the icon.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="extensions" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
This attribute is specified when a file icon association should be created.
It specifies the semicolon-separated list of file types that use the icon.
</xs:documentation>
This attribute is specified when a file icon association should be created.
It specifies the semicolon-separated list of file types that use the icon.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
@ -643,18 +580,18 @@ @@ -643,18 +580,18 @@
<xs:attribute name="item" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
When this attribute is used, the include doozer builds the item that is at the
addin tree location specified by this attribute.
</xs:documentation>
When this attribute is used, the include doozer builds the item that is at the
addin tree location specified by this attribute.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="path" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
When this attribute is used, the include doozer builds all items inside the
path addin tree location specified by this attribute and returns an
IBuildItemsModifier which includes all items in the output list.
</xs:documentation>
When this attribute is used, the include doozer builds all items inside the
path addin tree location specified by this attribute and returns an
IBuildItemsModifier which includes all items in the output list.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
@ -669,62 +606,21 @@ @@ -669,62 +606,21 @@
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="ProjectBinding">
<xs:complexContent>
<xs:extension base="AbstractCodon">
<xs:attribute name="guid" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Project type GUID of the project used by MsBuild.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="supportedextensions" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Semicolon-separated list of file extensions that are compilable files in the project. (e.g. ".boo")
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="projectfileextension" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
File extension of project files. (e.g. ".booproj")
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="class" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Name of the IProjectBinding class.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="ProjectBinding" type="ProjectBinding">
<xs:annotation>
<xs:documentation>
Creates ProjectBindingDescriptor objects for the project service.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="LanguageBinding">
<xs:complexContent>
<xs:extension base="AbstractCodon">
<xs:attribute name="extensions" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Semicolon-separated list of file extensions that are handled by the language binding (e.g. .xaml)
</xs:documentation>
Semicolon-separated list of file extensions that are handled by the language binding (e.g. .xaml)
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="class" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Name of the ILanguageBinding class.
</xs:documentation>
Name of the ILanguageBinding class.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
@ -733,7 +629,7 @@ @@ -733,7 +629,7 @@
<xs:element name="LanguageBinding" type="LanguageBinding">
<xs:annotation>
<xs:documentation>
Creates LanguageBindingDescriptor objects for the language service.
Creates LanguageBindingDescriptor objects for the language binding service.
</xs:documentation>
</xs:annotation>
</xs:element>
@ -749,18 +645,18 @@ @@ -749,18 +645,18 @@
<xs:attribute name="label" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Label of the menu item.
</xs:documentation>
Label of the menu item.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="type" use="optional">
<xs:annotation>
<xs:documentation>
This attribute must be one of these values:
Separator, CheckBox, Item=Command, Menu (=with subitems),
Builder (=class implementing ISubmenuBuilder).
Default: Command.
</xs:documentation>
This attribute must be one of these values:
Separator, CheckBox, Item=Command, Menu (=with subitems),
Builder (=class implementing ISubmenuBuilder).
Default: Command.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
@ -776,39 +672,48 @@ @@ -776,39 +672,48 @@
<xs:attribute name="loadclasslazy" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Only for the type "Item"/"Command".
When set to false, the command class is loaded
immediately instead of the usual lazy-loading.
</xs:documentation>
Only for the type "Item"/"Command".
When set to false, the command class is loaded
immediately instead of the usual lazy-loading.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="icon" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Icon of the menu item.
</xs:documentation>
Icon of the menu item.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="class" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Command class that is run when item is clicked.
</xs:documentation>
Command class that is run when item is clicked.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="command" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
A WPF routed command that is executed when item is clicked.
Currently, this property is supported only for WPF Menus.
Only one of the "class" and "command" attributes can be used on a menu entry.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="link" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Only for the type "Item"/"Command". Opens a webpage instead of running a command when
clicking the item.
</xs:documentation>
Only for the type "Item"/"Command". Opens a webpage instead of running a command when
clicking the item.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="shortcut" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Shortcut that activates the command (e.g. "Control|S").
</xs:documentation>
Shortcut that activates the command (e.g. "Control|S").
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
@ -821,49 +726,89 @@ @@ -821,49 +726,89 @@
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="OptionPanel">
<xs:complexContent>
<xs:extension base="AbstractCodon">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="ComplexCondition" />
<xs:element ref="Condition" />
<xs:element ref="IOptionPanel" />
<xs:element ref="Include" />
</xs:choice>
<xs:attribute name="class" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Name of the IOptionPanel class. Optional if the page has subpages.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="label" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Caption of the dialog panel.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="OptionPanel" type="OptionPanel">
<xs:annotation>
<xs:documentation>
Creates DefaultOptionPanelDescriptor objects that are used in option dialogs.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="Pad">
<xs:complexContent>
<xs:extension base="AbstractCodon">
<xs:attribute name="class" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
IPadContent class that is loaded when the pad content is shown for the first time.
</xs:documentation>
IPadContent class that is loaded when the pad content is shown for the first time.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="title" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Title of the pad that is shown in the user interface.
Should be a resource string, e.g. "${res:AddIns.HtmlHelp2.Contents}"
</xs:documentation>
Title of the pad that is shown in the user interface.
Should be a resource string, e.g. "${res:AddIns.HtmlHelp2.Contents}"
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="icon" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Specifies the name of the icon resource used for the pad.
Pad icon resources must be registered with the ResourceService before the
workbench is loaded!
</xs:documentation>
Specifies the name of the icon resource used for the pad.
Pad icon resources must be registered with the ResourceService before the
workbench is loaded!
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="category" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Category of the pad. It is possible to create menu items that automatically
contain show commands for all pads in a certain category.
Pads in the category "Main" will show up in the "View" menu, the category
"Tools" in the "View -&gt; Tools" menu, the category "Debugger" in the
"View -&gt; Debugger" menu.
</xs:documentation>
Category of the pad. It is possible to create menu items that automatically
contain show commands for all pads in a certain category.
Pads in the category "Main" will show up in the "View" menu, the category
"Tools" in the "View -&gt; Tools" menu, the category "Debugger" in the
"View -&gt; Debugger" menu.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="shortcut" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Shortcut that activates the 'Show pad' command (e.g. "Control|Alt|T").
</xs:documentation>
Shortcut that activates the 'Show pad' command (e.g. "Control|Alt|T").
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="defaultPosition" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Default position of the pad, as a ICSharpCode.SharpDevelop.DefaultPadPositions enum value (e.g. "Bottom, Hidden").
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
@ -882,31 +827,65 @@ @@ -882,31 +827,65 @@
<xs:attribute name="supportedextensions" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Semicolon-separated list of file extensions for which the parser is used. (e.g. ".boo")
</xs:documentation>
Semicolon-separated list of file extensions for which the parser is used. (e.g. ".boo")
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="projectfileextension" use="optional" type="xs:string">
<xs:attribute name="class" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
File extension of project files. (e.g. ".booproj")
</xs:documentation>
Name of the IParser class.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="class" use="optional" type="xs:string">
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="Parser" type="Parser">
<xs:annotation>
<xs:documentation>
Creates ParserDescriptor objects for the parsing service.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="ProjectBinding">
<xs:complexContent>
<xs:extension base="AbstractCodon">
<xs:attribute name="guid" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Name of the IParser class.
</xs:documentation>
Project type GUID of the project used by MSBuild.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="supportedextensions" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Semicolon-separated list of file extensions that are compilable files in the project. (e.g. ".boo")
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="projectfileextension" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
File extension of project files. (e.g. ".booproj")
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="class" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Name of the IProjectBinding class.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="Parser" type="Parser">
<xs:element name="ProjectBinding" type="ProjectBinding">
<xs:annotation>
<xs:documentation>
Creates ParserDescriptor objects for the parsing service.
Creates ProjectBindingDescriptor objects for the project service.
</xs:documentation>
</xs:annotation>
</xs:element>
@ -916,8 +895,8 @@ @@ -916,8 +895,8 @@
<xs:attribute name="class" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Name of the ProjectContentRegistry class.
</xs:documentation>
Name of the ProjectContentRegistry class.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
@ -936,15 +915,15 @@ @@ -936,15 +915,15 @@
<xs:attribute name="scheme" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Specifies the name of the protocol the extension handles. (e.g. 'ms-help' or 'startpage')
</xs:documentation>
Specifies the name of the protocol the extension handles. (e.g. 'ms-help' or 'startpage')
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="class" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Name of the ISchemeExtension class (normally deriving from DefaultSchemeExtension).
</xs:documentation>
Name of the ISchemeExtension class (normally deriving from DefaultSchemeExtension).
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
@ -963,8 +942,8 @@ @@ -963,8 +942,8 @@
<xs:attribute name="text" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
The string to return.
</xs:documentation>
The string to return.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
@ -977,66 +956,60 @@ @@ -977,66 +956,60 @@
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="SyntaxMode">
<xs:complexType name="TaskBoundAdditionalLogger">
<xs:complexContent>
<xs:extension base="AbstractCodon">
<xs:attribute name="name" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Name of the language for which the syntax mode is used.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="extensions" use="required" type="xs:string">
<xs:attribute name="class" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Semicolon-separated list of file extensions for which the syntax mode is used.
</xs:documentation>
Name of the IMSBuildAdditionalLogger class.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="resource" use="required" type="xs:string">
<xs:attribute name="taskname" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Fully qualified name of the resource file.
</xs:documentation>
Specifies the name of the MSBuild task that must be running for
this logger to be active.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="SyntaxMode" type="SyntaxMode">
<xs:element name="TaskBoundAdditionalLogger" type="TaskBoundAdditionalLogger">
<xs:annotation>
<xs:documentation>
Creates AddInTreeSyntaxMode objects that wrap a .xshd syntax mode stored as resource in the
addin assembly.
Creates IMSBuildAdditionalLogger objects that are only
activated when a specific MSBuild task is running.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="TaskBoundAdditionalLogger">
<xs:complexType name="TaskBoundLoggerFilter">
<xs:complexContent>
<xs:extension base="AbstractCodon">
<xs:attribute name="class" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Name of the IMSBuildAdditionalLogger class.
</xs:documentation>
Name of the IMSBuildLoggerFilter class.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="taskname" use="required" type="xs:string">
<xs:annotation>
<xs:documentation>
Specifies the name of the MSBuild task that must be running for
this logger to be active.
</xs:documentation>
Specifies the name of the MSBuild task that must be running for
this logger to be active.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="TaskBoundAdditionalLogger" type="TaskBoundAdditionalLogger">
<xs:element name="TaskBoundLoggerFilter" type="TaskBoundLoggerFilter">
<xs:annotation>
<xs:documentation>
Creates IMSBuildAdditionalLogger objects that are only
Creates IMSBuildLoggerFilter objects that are only
activated when a specific MSBuild task is running.
</xs:documentation>
</xs:annotation>
@ -1053,23 +1026,23 @@ @@ -1053,23 +1026,23 @@
<xs:attribute name="label" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Label of the tool bar item.
</xs:documentation>
Label of the tool bar item.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="icon" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Icon of the tool bar item.
</xs:documentation>
Icon of the tool bar item.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="type" use="optional">
<xs:annotation>
<xs:documentation>
This attribute must be one of these values:
Separator, CheckBox, Item, ComboBox, DropDownButton
</xs:documentation>
This attribute must be one of these values:
Separator, CheckBox, Item, ComboBox, DropDownButton
</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
@ -1084,24 +1057,24 @@ @@ -1084,24 +1057,24 @@
<xs:attribute name="loadclasslazy" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Only for the type "Item". When set to false, the command class is loaded
immediately instead of the usual lazy-loading.
</xs:documentation>
Only for the type "Item". When set to false, the command class is loaded
immediately instead of the usual lazy-loading.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="tooltip" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Tooltip of the tool bar item.
</xs:documentation>
Tooltip of the tool bar item.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="class" use="optional" type="xs:string">
<xs:annotation>
<xs:documentation>
Command class that is run when item is clicked; or class that manages
the ComboBox/DropDownButton. Required for everything except "Separator".
</xs:documentation>
Command class that is run when item is clicked; or class that manages
the ComboBox/DropDownButton. Required for everything except "Separator".
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>

39
doc/technotes/ConditionList.html

@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@
</head><body>
<h1>Condition List</h1>
<p class="notice">This file was generated by the tool 'BuildAddinDocumentation'.
It is based on SharpDevelop 3.0.0.3062.</p>
It is based on SharpDevelop 4.0.0.7014.</p>
<ul>
<li><a href="#ActiveContentExtension">ActiveContentExtension</a>
<li><a href="#ActiveViewContentUntitled">ActiveViewContentUntitled</a>
@ -26,6 +26,8 @@ It is based on SharpDevelop 3.0.0.3062.</p> @@ -26,6 +26,8 @@ It is based on SharpDevelop 3.0.0.3062.</p>
<li><a href="#TextContent">TextContent</a>
<li><a href="#WindowActive">WindowActive</a>
<li><a href="#WindowOpen">WindowOpen</a>
<li><a href="#WriteableProject">WriteableProject</a>
<li><a href="#WriteableSolution">WriteableSolution</a>
</ul>
<div>
<h2><a name="ActiveContentExtension">ActiveContentExtension</a></h2>
@ -176,7 +178,7 @@ It is based on SharpDevelop 3.0.0.3062.</p> @@ -176,7 +178,7 @@ It is based on SharpDevelop 3.0.0.3062.</p>
<th colspan=2>comparisonType:</td>
<td>
The mode of the comparison: a field of the System.StringComparison enumeration. The default is
'InvariantCultureIgnoreCase'.
'OrdinalIgnoreCase'.
</td>
</tr>
</table>
@ -213,7 +215,7 @@ It is based on SharpDevelop 3.0.0.3062.</p> @@ -213,7 +215,7 @@ It is based on SharpDevelop 3.0.0.3062.</p>
<th colspan=2>comparisonType:</td>
<td>
The mode of the comparison: a field of the System.StringComparison enumeration. The default is
'InvariantCultureIgnoreCase'.
'OrdinalIgnoreCase'.
</td>
</tr>
</table>
@ -423,7 +425,7 @@ It is based on SharpDevelop 3.0.0.3062.</p> @@ -423,7 +425,7 @@ It is based on SharpDevelop 3.0.0.3062.</p>
<table>
<tr>
<th colspan=2>Condition name:</td>
<td>ICSharpCode.SharpDevelop.DefaultEditor.Conditions.TextContentConditionEvaluator</td>
<td>ICSharpCode.SharpDevelop.Editor.AvalonEdit.TextContentConditionEvaluator</td>
</tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
@ -459,7 +461,7 @@ It is based on SharpDevelop 3.0.0.3062.</p> @@ -459,7 +461,7 @@ It is based on SharpDevelop 3.0.0.3062.</p>
</table>
<p><span class="exampleTitle">Example: Test if the current window is a text editor</span>
<br><pre>
&lt;Condition name="WindowActive" activewindow="ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor.ITextEditorControlProvider"&gt;</pre></p>
&lt;Condition name="WindowActive" activewindow="ICSharpCode.SharpDevelop.Editor.ITextEditorProvider"&gt;</pre></p>
<p><span class="exampleTitle">Example: Test if any window is active</span>
<br><pre>
&lt;Condition name="WindowActive" activewindow="*"&gt;</pre></p>
@ -487,9 +489,34 @@ It is based on SharpDevelop 3.0.0.3062.</p> @@ -487,9 +489,34 @@ It is based on SharpDevelop 3.0.0.3062.</p>
</table>
<p><span class="exampleTitle">Example: Test if a text editor is opened</span>
<br><pre>
&lt;Condition name="WindowOpen" openwindow="ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor.ITextEditorControlProvider"&gt;</pre></p>
&lt;Condition name="WindowOpen" openwindow="ICSharpCode.SharpDevelop.Editor.ITextEditorProvider"&gt;</pre></p>
<p><span class="exampleTitle">Example: Test if any window is open</span>
<br><pre>
&lt;Condition name="WindowOpen" openwindow="*"&gt;</pre></p>
</div>
<div>
<h2><a name="WriteableProject">WriteableProject</a></h2>
<p>
Tests if the caller project is writable. If caller is not an IProject it tests
Project.CurrentProject.
</p>
<table>
<tr>
<th colspan=2>Condition name:</td>
<td>ICSharpCode.SharpDevelop.WriteableProjectConditionEvaluator</td>
</tr>
</table>
</div>
<div>
<h2><a name="WriteableSolution">WriteableSolution</a></h2>
<p>
Description of WriteableSolutionEvaluator.
</p>
<table>
<tr>
<th colspan=2>Condition name:</td>
<td>ICSharpCode.SharpDevelop.WriteableSolutionConditionEvaluator</td>
</tr>
</table>
</div>
</body></html>

290
doc/technotes/DoozerList.html

@ -5,29 +5,29 @@ @@ -5,29 +5,29 @@
</head><body>
<h1>Doozer List</h1>
<p class="notice">This file was generated by the tool 'BuildAddinDocumentation'.
It is based on SharpDevelop 3.0.0.3062.</p>
It is based on SharpDevelop 4.0.0.7014.</p>
<ul>
<li><a href="#Class">Class</a>
<li><a href="#CodeCompletionBinding">CodeCompletionBinding</a>
<li><a href="#CustomProperty">CustomProperty</a>
<li><a href="#CustomTool">CustomTool</a>
<li><a href="#Debugger">Debugger</a>
<li><a href="#DialogPanel">DialogPanel</a>
<li><a href="#Directory">Directory</a>
<li><a href="#DisplayBinding">DisplayBinding</a>
<li><a href="#EditAction">EditAction</a>
<li><a href="#FileFilter">FileFilter</a>
<li><a href="#Icon">Icon</a>
<li><a href="#Include">Include</a>
<li><a href="#LanguageBinding">LanguageBinding</a>
<li><a href="#MenuItem">MenuItem</a>
<li><a href="#OptionPanel">OptionPanel</a>
<li><a href="#Pad">Pad</a>
<li><a href="#Parser">Parser</a>
<li><a href="#ProjectBinding">ProjectBinding</a>
<li><a href="#ProjectContentRegistry">ProjectContentRegistry</a>
<li><a href="#SchemeExtension">SchemeExtension</a>
<li><a href="#String">String</a>
<li><a href="#SyntaxMode">SyntaxMode</a>
<li><a href="#TaskBoundAdditionalLogger">TaskBoundAdditionalLogger</a>
<li><a href="#TaskBoundLoggerFilter">TaskBoundLoggerFilter</a>
<li><a href="#ToolbarItem">ToolbarItem</a>
</ul>
<div>
@ -70,7 +70,7 @@ It is based on SharpDevelop 3.0.0.3062.</p> @@ -70,7 +70,7 @@ It is based on SharpDevelop 3.0.0.3062.</p>
<table>
<tr>
<th colspan=2>Doozer name:</td>
<td>ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor.CodeCompletionBindingDoozer</td>
<td>ICSharpCode.SharpDevelop.Editor.CodeCompletion.CodeCompletionBindingDoozer</td>
</tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
@ -275,50 +275,6 @@ It is based on SharpDevelop 3.0.0.3062.</p> @@ -275,50 +275,6 @@ It is based on SharpDevelop 3.0.0.3062.</p>
</tr>
</table>
</div>
<div>
<h2><a name="DialogPanel">DialogPanel</a></h2>
<p>
Creates DefaultDialogPanelDescriptor objects that are used in option dialogs.
</p>
<table>
<tr>
<th colspan=2>Doozer name:</td>
<td>ICSharpCode.SharpDevelop.DialogPanelDoozer</td>
</tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
<th colspan=2>class:</td>
<td>
Name of the IDialogPanel class. Optional if the page has subpages.
</td>
</tr>
<tr>
<th>label:</td>
<td class="userequired">required</td>
<td>
Caption of the dialog panel.
</td>
</tr>
<tr><td colspan=3><hr></td></tr>
<tr>
<th colspan=2>Children:</td>
<td>
In the SharpDevelop options, option pages can have subpages by specifying them
as children in the AddInTree.
</td>
</tr>
<tr>
<th colspan=2>Usage:</td>
<td>In /SharpDevelop/BackendBindings/ProjectOptions/ and /SharpDevelop/Dialogs/OptionsDialog</td>
</tr>
<tr>
<th colspan=2>Returns:</td>
<td>
A DefaultDialogPanelDescriptor object.
</td>
</tr>
</table>
</div>
<div>
<h2><a name="Directory">Directory</a></h2>
<p>
@ -426,45 +382,6 @@ It is based on SharpDevelop 3.0.0.3062.</p> @@ -426,45 +382,6 @@ It is based on SharpDevelop 3.0.0.3062.</p>
fileNamePattern = "\.(cs|vb)$" /&gt;
&lt;/Path&gt;</pre></p>
</div>
<div>
<h2><a name="EditAction">EditAction</a></h2>
<p>
Creates IEditAction objects for the text editor.
</p>
<table>
<tr>
<th colspan=2>Doozer name:</td>
<td>ICSharpCode.SharpDevelop.DefaultEditor.Codons.EditActionDoozer</td>
</tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
<th>keys:</td>
<td class="userequired">required</td>
<td>
Comma-separated list of keyboard shortcuts that activate the edit action.
E.g. "Control|C,Control|Insert"
</td>
</tr>
<tr>
<th>class:</td>
<td class="userequired">required</td>
<td>
Name of the IEditAction class.
</td>
</tr>
<tr><td colspan=3><hr></td></tr>
<tr>
<th colspan=2>Usage:</td>
<td>Only in /AddIns/DefaultTextEditor/EditActions</td>
</tr>
<tr>
<th colspan=2>Returns:</td>
<td>
An IEditAction object.
</td>
</tr>
</table>
</div>
<div>
<h2><a name="FileFilter">FileFilter</a></h2>
<p>
@ -497,8 +414,7 @@ It is based on SharpDevelop 3.0.0.3062.</p> @@ -497,8 +414,7 @@ It is based on SharpDevelop 3.0.0.3062.</p>
</tr>
<tr>
<th colspan=2>Returns:</td>
<td>
String in the format "name|extensions".
<td>FileFilterDescriptor in the format "name|extensions".
</td>
</tr>
</table>
@ -593,7 +509,7 @@ It is based on SharpDevelop 3.0.0.3062.</p> @@ -593,7 +509,7 @@ It is based on SharpDevelop 3.0.0.3062.</p>
<div>
<h2><a name="LanguageBinding">LanguageBinding</a></h2>
<p>
Creates LanguageBindingDescriptor objects for the project service.
Creates LanguageBindingDescriptor objects for the language binding service.
</p>
<table>
<tr>
@ -602,24 +518,10 @@ It is based on SharpDevelop 3.0.0.3062.</p> @@ -602,24 +518,10 @@ It is based on SharpDevelop 3.0.0.3062.</p>
</tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
<th>guid:</td>
<td class="userequired">required</td>
<td>
Project type GUID of the project used by MsBuild.
</td>
</tr>
<tr>
<th>supportedextensions:</td>
<td class="userequired">required</td>
<td>
Semicolon-separated list of file extensions that are compilable files in the project. (e.g. ".boo")
</td>
</tr>
<tr>
<th>projectfileextension:</td>
<th>extensions:</td>
<td class="userequired">required</td>
<td>
File extension of project files. (e.g. ".booproj")
Semicolon-separated list of file extensions that are handled by the language binding (e.g. .xaml)
</td>
</tr>
<tr>
@ -637,7 +539,7 @@ It is based on SharpDevelop 3.0.0.3062.</p> @@ -637,7 +539,7 @@ It is based on SharpDevelop 3.0.0.3062.</p>
<tr>
<th colspan=2>Returns:</td>
<td>
An LanguageBindingDescriptor object that wraps the ILanguageBinding object.
The ILanguageBinding object.
</td>
</tr>
</table>
@ -693,6 +595,15 @@ It is based on SharpDevelop 3.0.0.3062.</p> @@ -693,6 +595,15 @@ It is based on SharpDevelop 3.0.0.3062.</p>
Command class that is run when item is clicked.
</td>
</tr>
<tr>
<th>command:</td>
<td class="userequired">optional</td>
<td>
A WPF routed command that is executed when item is clicked.
Currently, this property is supported only for WPF Menus.
Only one of the "class" and "command" attributes can be used on a menu entry.
</td>
</tr>
<tr>
<th>link:</td>
<td class="userequired">optional</td>
@ -722,7 +633,7 @@ It is based on SharpDevelop 3.0.0.3062.</p> @@ -722,7 +633,7 @@ It is based on SharpDevelop 3.0.0.3062.</p>
<tr>
<th colspan=2>Returns:</td>
<td>
Any ToolStrip* object, depending on the type attribute.
A MenuItemDescriptor object.
</td>
</tr>
<tr>
@ -731,6 +642,50 @@ It is based on SharpDevelop 3.0.0.3062.</p> @@ -731,6 +642,50 @@ It is based on SharpDevelop 3.0.0.3062.</p>
</tr>
</table>
</div>
<div>
<h2><a name="OptionPanel">OptionPanel</a></h2>
<p>
Creates DefaultOptionPanelDescriptor objects that are used in option dialogs.
</p>
<table>
<tr>
<th colspan=2>Doozer name:</td>
<td>ICSharpCode.SharpDevelop.OptionPanelDoozer</td>
</tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
<th colspan=2>class:</td>
<td>
Name of the IOptionPanel class. Optional if the page has subpages.
</td>
</tr>
<tr>
<th>label:</td>
<td class="userequired">required</td>
<td>
Caption of the dialog panel.
</td>
</tr>
<tr><td colspan=3><hr></td></tr>
<tr>
<th colspan=2>Children:</td>
<td>
In the SharpDevelop options, option pages can have subpages by specifying them
as children in the AddInTree.
</td>
</tr>
<tr>
<th colspan=2>Usage:</td>
<td>In /SharpDevelop/BackendBindings/ProjectOptions/ and /SharpDevelop/Dialogs/OptionsDialog</td>
</tr>
<tr>
<th colspan=2>Returns:</td>
<td>
A DefaultOptionPanelDescriptor object.
</td>
</tr>
</table>
</div>
<div>
<h2><a name="Pad">Pad</a></h2>
<p>
@ -784,6 +739,13 @@ It is based on SharpDevelop 3.0.0.3062.</p> @@ -784,6 +739,13 @@ It is based on SharpDevelop 3.0.0.3062.</p>
Shortcut that activates the 'Show pad' command (e.g. "Control|Alt|T").
</td>
</tr>
<tr>
<th>defaultPosition:</td>
<td class="userequired">optional</td>
<td>
Default position of the pad, as a ICSharpCode.SharpDevelop.DefaultPadPositions enum value (e.g. "Bottom, Hidden").
</td>
</tr>
<tr><td colspan=3><hr></td></tr>
<tr>
<th colspan=2>Usage:</td>
@ -815,26 +777,72 @@ It is based on SharpDevelop 3.0.0.3062.</p> @@ -815,26 +777,72 @@ It is based on SharpDevelop 3.0.0.3062.</p>
</td>
</tr>
<tr>
<th colspan=2>projectfileextension:</td>
<th colspan=2>class:</td>
<td>
Name of the IParser class.
</td>
</tr>
<tr><td colspan=3><hr></td></tr>
<tr>
<th colspan=2>Usage:</td>
<td>Only in /Workspace/Parser</td>
</tr>
<tr>
<th colspan=2>Returns:</td>
<td>
An ParserDescriptor object that wraps the IParser object.
</td>
</tr>
</table>
</div>
<div>
<h2><a name="ProjectBinding">ProjectBinding</a></h2>
<p>
Creates ProjectBindingDescriptor objects for the project service.
</p>
<table>
<tr>
<th colspan=2>Doozer name:</td>
<td>ICSharpCode.SharpDevelop.ProjectBindingDoozer</td>
</tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
<th>guid:</td>
<td class="userequired">required</td>
<td>
Project type GUID of the project used by MSBuild.
</td>
</tr>
<tr>
<th>supportedextensions:</td>
<td class="userequired">required</td>
<td>
Semicolon-separated list of file extensions that are compilable files in the project. (e.g. ".boo")
</td>
</tr>
<tr>
<th>projectfileextension:</td>
<td class="userequired">required</td>
<td>
File extension of project files. (e.g. ".booproj")
</td>
</tr>
<tr>
<th colspan=2>class:</td>
<th>class:</td>
<td class="userequired">required</td>
<td>
Name of the IParser class.
Name of the IProjectBinding class.
</td>
</tr>
<tr><td colspan=3><hr></td></tr>
<tr>
<th colspan=2>Usage:</td>
<td>Only in /Workspace/Parser</td>
<td>Only in /SharpDevelop/Workbench/ProjectBinding</td>
</tr>
<tr>
<th colspan=2>Returns:</td>
<td>
An ParserDescriptor object that wraps the IParser object.
A ProjectBindingDescriptor object that wraps the IProjectBinding object.
</td>
</tr>
</table>
@ -943,69 +951,69 @@ It is based on SharpDevelop 3.0.0.3062.</p> @@ -943,69 +951,69 @@ It is based on SharpDevelop 3.0.0.3062.</p>
</table>
</div>
<div>
<h2><a name="SyntaxMode">SyntaxMode</a></h2>
<h2><a name="TaskBoundAdditionalLogger">TaskBoundAdditionalLogger</a></h2>
<p>
Creates AddInTreeSyntaxMode objects that wrap a .xshd syntax mode stored as resource in the
addin assembly.
Creates IMSBuildAdditionalLogger objects that are only
activated when a specific MSBuild task is running.
</p>
<table>
<tr>
<th colspan=2>Doozer name:</td>
<td>ICSharpCode.SharpDevelop.DefaultEditor.Codons.SyntaxModeDoozer</td>
<td>ICSharpCode.SharpDevelop.Project.TaskBoundAdditionalLoggerDoozer</td>
</tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
<th>name:</td>
<td class="userequired">required</td>
<td>
Name of the language for which the syntax mode is used.
</td>
</tr>
<tr>
<th>extensions:</td>
<th>class:</td>
<td class="userequired">required</td>
<td>
Semicolon-separated list of file extensions for which the syntax mode is used.
Name of the IMSBuildAdditionalLogger class.
</td>
</tr>
<tr>
<th>resource:</td>
<th>taskname:</td>
<td class="userequired">required</td>
<td>
Fully qualified name of the resource file.
Specifies the name of the MSBuild task that must be running for
this logger to be active.
</td>
</tr>
<tr><td colspan=3><hr></td></tr>
<tr>
<th colspan=2>Usage:</td>
<td>Only in /SharpDevelop/ViewContent/DefaultTextEditor/SyntaxModes</td>
<td>Only in /SharpDevelop/MSBuildEngine/AdditionalLoggers</td>
</tr>
<tr>
<th colspan=2>Returns:</td>
<td>
An AddInTreeSyntaxMode object that loads the resource from the addin assembly when
its CreateTextReader method is called.
A IMSBuildAdditionalLogger object that lazy-loads the specified
IMSBuildAdditionalLogger when the specified task is running.
</td>
</tr>
</table>
<p><span class="exampleTitle">Example: </span>
<br><pre>
&lt;TaskBoundAdditionalLogger
id = "FxCopLogger"
taskname = "FxCop"
class = "ICSharpCode.CodeAnalysis.FxCopLogger"/&gt;</pre></p>
</div>
<div>
<h2><a name="TaskBoundAdditionalLogger">TaskBoundAdditionalLogger</a></h2>
<h2><a name="TaskBoundLoggerFilter">TaskBoundLoggerFilter</a></h2>
<p>
Creates IMSBuildAdditionalLogger objects that are only
Creates IMSBuildLoggerFilter objects that are only
activated when a specific MSBuild task is running.
</p>
<table>
<tr>
<th colspan=2>Doozer name:</td>
<td>ICSharpCode.SharpDevelop.Project.TaskBoundAdditionalLoggerDoozer</td>
<td>ICSharpCode.SharpDevelop.Project.TaskBoundLoggerFilterDoozer</td>
</tr>
<tr><td colspan=3><hr><h3>Attributes:</h3></td></tr>
<tr>
<th>class:</td>
<td class="userequired">required</td>
<td>
Name of the IMSBuildAdditionalLogger class.
Name of the IMSBuildLoggerFilter class.
</td>
</tr>
<tr>
@ -1019,22 +1027,22 @@ It is based on SharpDevelop 3.0.0.3062.</p> @@ -1019,22 +1027,22 @@ It is based on SharpDevelop 3.0.0.3062.</p>
<tr><td colspan=3><hr></td></tr>
<tr>
<th colspan=2>Usage:</td>
<td>Only in /SharpDevelop/MSBuildEngine/AdditionalLoggers</td>
<td>Only in /SharpDevelop/MSBuildEngine/LoggerFilters</td>
</tr>
<tr>
<th colspan=2>Returns:</td>
<td>
A IMSBuildAdditionalLogger object that lazy-loads the specified
IMSBuildAdditionalLogger when the specified task is running.
A IMSBuildLoggerFilter object that lazy-loads the specified
IMSBuildLoggerFilter when the specified task is running.
</td>
</tr>
</table>
<p><span class="exampleTitle">Example: </span>
<br><pre>
&lt;TaskBoundAdditionalLogger
&lt;TaskBoundLoggerFilter
id = "FxCopLogger"
taskname = "FxCop"
class = "ICSharpCode.CodeAnalysis.FxCopLogger"/&gt;</pre></p>
class = "ICSharpCode.CodeAnalysis.FxCopLoggerFilter"/&gt;</pre></p>
</div>
<div>
<h2><a name="ToolbarItem">ToolbarItem</a></h2>

31
samples/EmbeddedImageAddIn/Configuration/AssemblyInfo.cs

@ -0,0 +1,31 @@ @@ -0,0 +1,31 @@
#region Using directives
using System;
using System.Reflection;
using System.Runtime.InteropServices;
#endregion
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("EmbeddedImageAddIn")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("EmbeddedImageAddIn")]
[assembly: AssemblyCopyright("Copyright 2010")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// This sets the default COM visibility of types in the assembly to invisible.
// If you need to expose a type to COM, use [ComVisible(true)] on that type.
[assembly: ComVisible(false)]
// The assembly version has following format :
//
// Major.Minor.Build.Revision
//
// You can specify all the values or you can use the default the Revision and
// Build Numbers by using the '*' as shown below:
[assembly: AssemblyVersion("1.0.*")]

20
samples/EmbeddedImageAddIn/EmbeddedImageAddIn.addin

@ -0,0 +1,20 @@ @@ -0,0 +1,20 @@
<AddIn name = "EmbeddedImageAddIn"
author = "Daniel Grunwald"
description = "Allows embedding images in source code comments">
<Manifest>
<Identity name = "SharpDevelop.Samples.EmbeddedImageAddIn"/>
</Manifest>
<Runtime>
<Import assembly = "EmbeddedImageAddIn.dll"/>
</Runtime>
<Path name="/SharpDevelop/Workbench/LanguageBindings">
<Class id="EmbeddedImage" class="EmbeddedImageAddIn.EmbeddedImageLanguageBinding"/>
</Path>
<Path name="/SharpDevelop/Workbench/MainMenu/Edit/Insert">
<MenuItem id="EmbeddedImage" class="EmbeddedImageAddIn.InsertImageCommand" label="Insert Image..."/>
</Path>
</AddIn>

80
samples/EmbeddedImageAddIn/EmbeddedImageAddIn.csproj

@ -0,0 +1,80 @@ @@ -0,0 +1,80 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">
<PropertyGroup>
<ProjectGuid>{1F60F9B0-E2FE-462F-9758-2E834D845438}</ProjectGuid>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<OutputType>Library</OutputType>
<RootNamespace>EmbeddedImageAddIn</RootNamespace>
<AssemblyName>EmbeddedImageAddIn</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<OutputPath>..\..\AddIns\Samples\EmbeddedImage\</OutputPath>
<AllowUnsafeBlocks>False</AllowUnsafeBlocks>
<NoStdLib>False</NoStdLib>
<WarningLevel>4</WarningLevel>
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
</PropertyGroup>
<PropertyGroup Condition=" '$(Platform)' == 'x86' ">
<PlatformTarget>x86</PlatformTarget>
<RegisterForComInterop>False</RegisterForComInterop>
<GenerateSerializationAssemblies>Auto</GenerateSerializationAssemblies>
<BaseAddress>4194304</BaseAddress>
<FileAlignment>4096</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Debug' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>Full</DebugType>
<Optimize>False</Optimize>
<CheckForOverflowUnderflow>True</CheckForOverflowUnderflow>
<DefineConstants>DEBUG;TRACE</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
<DebugSymbols>False</DebugSymbols>
<DebugType>None</DebugType>
<Optimize>True</Optimize>
<CheckForOverflowUnderflow>False</CheckForOverflowUnderflow>
<DefineConstants>TRACE</DefineConstants>
</PropertyGroup>
<ItemGroup>
<Reference Include="ICSharpCode.AvalonEdit">
<HintPath>..\..\bin\ICSharpCode.AvalonEdit.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="ICSharpCode.Core">
<HintPath>..\..\bin\ICSharpCode.Core.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="ICSharpCode.SharpDevelop">
<HintPath>..\..\bin\ICSharpCode.SharpDevelop.dll</HintPath>
<Private>False</Private>
</Reference>
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="System" />
<Reference Include="System.Core">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xaml" />
<Reference Include="System.Xml" />
<Reference Include="System.Xml.Linq">
<RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>
<Reference Include="WindowsBase" />
</ItemGroup>
<ItemGroup>
<None Include="EmbeddedImageAddIn.addin">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
<ItemGroup>
<Compile Include="Configuration\AssemblyInfo.cs" />
<Compile Include="EmbeddedImageLanguageBinding.cs" />
<Compile Include="ImageCache.cs" />
<Compile Include="ImageElement.cs" />
<Compile Include="ImageElementGenerator.cs" />
<Compile Include="InsertImageCommand.cs" />
</ItemGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
</Project>

18
samples/EmbeddedImageAddIn/EmbeddedImageAddIn.sln

@ -0,0 +1,18 @@ @@ -0,0 +1,18 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
# SharpDevelop 4.0.0.7002
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EmbeddedImageAddIn", "EmbeddedImageAddIn.csproj", "{1F60F9B0-E2FE-462F-9758-2E834D845438}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x86 = Debug|x86
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{1F60F9B0-E2FE-462F-9758-2E834D845438}.Debug|x86.Build.0 = Debug|x86
{1F60F9B0-E2FE-462F-9758-2E834D845438}.Debug|x86.ActiveCfg = Debug|x86
{1F60F9B0-E2FE-462F-9758-2E834D845438}.Release|x86.Build.0 = Release|x86
{1F60F9B0-E2FE-462F-9758-2E834D845438}.Release|x86.ActiveCfg = Release|x86
EndGlobalSection
EndGlobal

38
samples/EmbeddedImageAddIn/EmbeddedImageLanguageBinding.cs

@ -0,0 +1,38 @@ @@ -0,0 +1,38 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under MIT X11 license (for details please see \doc\license.txt)
using System;
using System.IO;
using ICSharpCode.AvalonEdit.Rendering;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Editor;
namespace EmbeddedImageAddIn
{
// SharpDevelop creates one instance of EmbeddedImageLanguageBinding for each text editor.
public class EmbeddedImageLanguageBinding : DefaultLanguageBinding
{
TextView textView;
ImageElementGenerator g;
public override void Attach(ITextEditor editor)
{
base.Attach(editor);
// ITextEditor is SharpDevelop's abstraction of the text editor.
// We use GetService() to get the underlying AvalonEdit instance.
textView = editor.GetService(typeof(TextView)) as TextView;
if (textView != null) {
g = new ImageElementGenerator(Path.GetDirectoryName(editor.FileName));
textView.ElementGenerators.Add(g);
}
}
public override void Detach()
{
if (textView != null) {
textView.ElementGenerators.Remove(g);
}
base.Detach();
}
}
}

58
samples/EmbeddedImageAddIn/ImageCache.cs

@ -0,0 +1,58 @@ @@ -0,0 +1,58 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under MIT X11 license (for details please see \doc\license.txt)
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using ICSharpCode.Core;
namespace EmbeddedImageAddIn
{
public static class ImageCache
{
static readonly Dictionary<FileName, WeakReference> imageCache = new Dictionary<FileName, WeakReference>();
public static ImageSource GetImage(FileName fileName)
{
lock (imageCache) {
WeakReference wr;
ImageSource image;
// retrieve image from cache, if possible
if (imageCache.TryGetValue(fileName, out wr)) {
image = (ImageSource)wr.Target;
if (image != null)
return image;
}
// load image:
image = LoadBitmap(fileName);
if (image != null)
imageCache[fileName] = new WeakReference(image);
// clean up cache:
List<FileName> entriesToRemove = (from p in imageCache where !p.Value.IsAlive select p.Key).ToList();
foreach (var entry in entriesToRemove)
imageCache.Remove(entry);
return image;
}
}
static BitmapImage LoadBitmap(string fileName)
{
try {
if (File.Exists(fileName)) {
BitmapImage bitmap = new BitmapImage(new Uri(fileName));
bitmap.Freeze();
return bitmap;
}
} catch (ArgumentException) {
// invalid filename syntax
} catch (IOException) {
// other IO error
}
return null;
}
}
}

101
samples/EmbeddedImageAddIn/ImageElement.cs

@ -0,0 +1,101 @@ @@ -0,0 +1,101 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under MIT X11 license (for details please see \doc\license.txt)
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.TextFormatting;
using ICSharpCode.AvalonEdit.Rendering;
namespace EmbeddedImageAddIn
{
/// <summary>
/// VisualLineElement implementation for embedded images.
/// </summary>
public class ImageElement : VisualLineElement
{
readonly string imageFileName;
readonly ImageSource image;
public ImageElement(string imageFileName, ImageSource image, int documentLength) : base(1, documentLength)
{
if (imageFileName == null)
throw new ArgumentNullException("imageFileName");
if (image == null)
throw new ArgumentNullException("image");
this.imageFileName = imageFileName;
this.image = image;
}
public override TextRun CreateTextRun(int startVisualColumn, ITextRunConstructionContext context)
{
return new ImageTextRun(image, this.TextRunProperties);
}
protected override void OnMouseDown(MouseButtonEventArgs e)
{
base.OnMouseDown(e);
if (!e.Handled && e.ClickCount == 2) {
// double click on image: open the image in editor
try {
Process.Start(imageFileName);
} catch (Exception ex) {
MessageBox.Show(ex.Message);
}
}
}
sealed class ImageTextRun : TextEmbeddedObject
{
readonly ImageSource image;
readonly TextRunProperties properties;
public ImageTextRun(ImageSource image, TextRunProperties properties)
{
this.image = image;
this.properties = properties;
}
public override LineBreakCondition BreakBefore {
get { return LineBreakCondition.BreakPossible; }
}
public override LineBreakCondition BreakAfter {
get { return LineBreakCondition.BreakPossible; }
}
public override bool HasFixedSize {
get { return true; }
}
public override CharacterBufferReference CharacterBufferReference {
get { return new CharacterBufferReference(); }
}
public override int Length {
get { return 1; }
}
public override TextRunProperties Properties {
get { return properties; }
}
public override TextEmbeddedObjectMetrics Format(double remainingParagraphWidth)
{
return new TextEmbeddedObjectMetrics(image.Width, image.Height, image.Height);
}
public override Rect ComputeBoundingBox(bool rightToLeft, bool sideways)
{
return new Rect(0, 0, image.Width, image.Height);
}
public override void Draw(DrawingContext drawingContext, Point origin, bool rightToLeft, bool sideways)
{
drawingContext.DrawImage(image, new Rect(origin.X, origin.Y - image.Height, image.Width, image.Height));
}
}
}
}

62
samples/EmbeddedImageAddIn/ImageElementGenerator.cs

@ -0,0 +1,62 @@ @@ -0,0 +1,62 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under MIT X11 license (for details please see \doc\license.txt)
using System;
using System.IO;
using System.Text.RegularExpressions;
using System.Windows.Media;
using ICSharpCode.AvalonEdit.Document;
using ICSharpCode.AvalonEdit.Rendering;
using ICSharpCode.Core;
namespace EmbeddedImageAddIn
{
/// <summary>
/// Implementation of AvalonEdit element generator.
/// This class looks for image tags and produces ImageElements to visually represent those images.
/// </summary>
public class ImageElementGenerator : VisualLineElementGenerator
{
readonly static Regex imageRegex = new Regex(@"<<IMAGE:([\w\d\\./,\- :]+)>>");
readonly string baseDirectory;
public ImageElementGenerator(string baseDirectory)
{
this.baseDirectory = baseDirectory;
}
Match GetMatch(int startOffset)
{
DocumentLine endLine = CurrentContext.VisualLine.LastDocumentLine;
string relevantText = CurrentContext.Document.GetText(startOffset, endLine.EndOffset - startOffset);
return imageRegex.Match(relevantText);
}
/// Gets the first offset >= startOffset where the generator wants to construct
/// an element.
/// Return -1 to signal no interest.
public override int GetFirstInterestedOffset(int startOffset)
{
Match m = GetMatch(startOffset);
return m.Success ? startOffset + m.Index : -1;
}
/// Constructs an element at the specified offset.
/// May return null if no element should be constructed.
public override VisualLineElement ConstructElement(int offset)
{
Match m = GetMatch(offset);
// check whether there's a match exactly at offset
if (m.Success && m.Index == 0) {
string fileName = Path.Combine(baseDirectory, m.Groups[1].Value);
ImageSource image = ImageCache.GetImage(FileName.Create(fileName));
if (image != null) {
// Pass the length of the match to the 'documentLength' parameter of ImageElement.
return new ImageElement(fileName, image, m.Length);
}
}
return null;
}
}
}

39
samples/EmbeddedImageAddIn/InsertImageCommand.cs

@ -0,0 +1,39 @@ @@ -0,0 +1,39 @@
// Copyright (c) AlphaSierraPapa for the SharpDevelop Team (for details please see \doc\copyright.txt)
// This code is distributed under MIT X11 license (for details please see \doc\license.txt)
using System;
using System.IO;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop.Editor;
using ICSharpCode.SharpDevelop.Gui;
using Microsoft.Win32;
namespace EmbeddedImageAddIn
{
/// <summary>
/// "Edit > Insert > Image" menu command.
/// </summary>
public class InsertImageCommand : AbstractMenuCommand
{
public override void Run()
{
if (WorkbenchSingleton.Workbench.ActiveViewContent == null)
return;
ITextEditorProvider provider = WorkbenchSingleton.Workbench.ActiveViewContent.GetService(typeof(ITextEditorProvider)) as ITextEditorProvider;
if (provider == null)
return;
OpenFileDialog dlg = new OpenFileDialog();
dlg.Filter = "Image files|*.png;*.jpg;*.gif;*.bmp;*.jpeg|All files|*.*";
dlg.CheckFileExists = true;
dlg.DereferenceLinks = true;
string baseDirectory = Path.GetDirectoryName(provider.TextEditor.FileName);
dlg.InitialDirectory = baseDirectory;
if (dlg.ShowDialog() == true) {
string relativePath = FileUtility.GetRelativePath(baseDirectory, dlg.FileName);
if (!Path.IsPathRooted(relativePath))
relativePath = relativePath.Replace('\\', '/');
provider.TextEditor.Document.Insert(provider.TextEditor.Caret.Offset, "<<IMAGE:" + relativePath + ">>");
}
}
}
}

12
samples/SharpDevelopReports/src/ReportSamples.sln

@ -1,9 +1,11 @@ @@ -1,9 +1,11 @@

Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
# SharpDevelop 4.0.0.5930
# SharpDevelop 4.1.0.7014
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SharpReportSamples", "SharpReportSamples\SharpReportSamples.csproj", "{BB5D34DA-3561-48B1-894A-46765C2A18C1}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Reports.Core", "..\..\..\src\AddIns\Misc\Reports\ICSharpCode.Reports.Core\ICSharpCode.Reports.Core.csproj", "{4B2239FF-8FD6-431D-9D22-1B8049BA6917}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@ -20,6 +22,14 @@ Global @@ -20,6 +22,14 @@ Global
{BB5D34DA-3561-48B1-894A-46765C2A18C1}.Debug|x86.ActiveCfg = Debug|x86
{BB5D34DA-3561-48B1-894A-46765C2A18C1}.Release|x86.Build.0 = Release|x86
{BB5D34DA-3561-48B1-894A-46765C2A18C1}.Release|x86.ActiveCfg = Release|x86
{4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Debug|x86.Build.0 = Debug|Any CPU
{4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Debug|x86.ActiveCfg = Debug|Any CPU
{4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Release|Any CPU.Build.0 = Release|Any CPU
{4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Release|x86.Build.0 = Release|Any CPU
{4B2239FF-8FD6-431D-9D22-1B8049BA6917}.Release|x86.ActiveCfg = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

12
samples/SharpDevelopReports/src/SharpReportSamples/MainForm.cs

@ -98,9 +98,7 @@ namespace SharpReportSamples @@ -98,9 +98,7 @@ namespace SharpReportSamples
this.RunContributors(reportName);
}
else if (s == "ContributorsListWithParameters"){
//this.V1_RunContributorsWithParameters(reportName);
// this.V2_RunContributorsWithParameters(string fileName)
this.V3_RunContributorsWithParameters(reportName);
this.RunContributorsWithParameters(reportName);
}
else if (s == "NoConnectionReport") {
@ -221,7 +219,7 @@ namespace SharpReportSamples @@ -221,7 +219,7 @@ namespace SharpReportSamples
}
private void V3_RunContributorsWithParameters(string fileName)
private void RunContributorsWithParameters(string fileName)
{
var model = ReportEngine.LoadReportModel(fileName);
ReportParameters parameters = ReportEngine.LoadParameters(fileName);
@ -231,10 +229,6 @@ namespace SharpReportSamples @@ -231,10 +229,6 @@ namespace SharpReportSamples
List<Contributor> list = ContributorsReportData.CreateContributorsList();
// IDataManager dataManager = DataManager.CreateInstance(list,model.ReportSettings);
//IReportCreator creator = ReportEngine.CreatePageBuilder(model,eventLogger.EventLog,null);
IReportCreator creator = ReportEngine.CreatePageBuilder(model,list,parameters);
@ -291,7 +285,7 @@ namespace SharpReportSamples @@ -291,7 +285,7 @@ namespace SharpReportSamples
ReportModel model = ReportEngine.LoadReportModel(fileName);
IDataManager dataManager = DataManager.CreateInstance(eLog.EventLog,model.ReportSettings);
this.previewControl1.SectionRendering += PushPrinting;
// this.previewControl1.SectionRendering += PushPrinting;
this.previewControl1.PreviewLayoutChanged += delegate (object sender, EventArgs e)

10
samples/SharpDevelopReports/src/SharpReportSamples/SharpReportSamples.csproj

@ -32,8 +32,8 @@ @@ -32,8 +32,8 @@
</PropertyGroup>
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.Targets" />
<ItemGroup>
<Reference Include="ICSharpCode.Reports.Core">
<HintPath>..\..\..\..\AddIns\AddIns\Misc\SharpDevelopReports\ICSharpCode.Reports.Core.dll</HintPath>
<Reference Include="Irony">
<HintPath>..\..\..\..\src\AddIns\Misc\Reports\Irony\obj\Debug\Irony.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core">
@ -71,4 +71,10 @@ @@ -71,4 +71,10 @@
<ItemGroup>
<Folder Include="Resources" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\..\..\src\AddIns\Misc\Reports\ICSharpCode.Reports.Core\ICSharpCode.Reports.Core.csproj">
<Project>{4B2239FF-8FD6-431D-9D22-1B8049BA6917}</Project>
<Name>ICSharpCode.Reports.Core</Name>
</ProjectReference>
</ItemGroup>
</Project>

20
src/AddIns/Analysis/Profiler/Controller/ProfilerOptions.cs

@ -89,9 +89,13 @@ namespace ICSharpCode.Profiler.Controller @@ -89,9 +89,13 @@ namespace ICSharpCode.Profiler.Controller
/// <summary>
/// Creates new ProfilerOptions using the selected settings.
/// </summary>
public ProfilerOptions(bool enableDC, int sharedMemorySize, bool profileDotNetInternals,
bool combineRecursiveFunction, bool enableDCAtStart, bool trackEvents,
IEnumerable<PerformanceCounterDescriptor> counters)
public ProfilerOptions(bool enableDC = true,
int sharedMemorySize = DefaultSharedMemorySize,
bool profileDotNetInternals = false,
bool combineRecursiveFunction = false,
bool enableDCAtStart = true,
bool trackEvents = false,
IEnumerable<PerformanceCounterDescriptor> counters = null)
{
this.enableDC = enableDC;
this.sharedMemorySize = sharedMemorySize;
@ -99,15 +103,7 @@ namespace ICSharpCode.Profiler.Controller @@ -99,15 +103,7 @@ namespace ICSharpCode.Profiler.Controller
this.combineRecursiveFunction = combineRecursiveFunction;
this.enableDCAtStart = enableDCAtStart;
this.trackEvents = trackEvents;
this.counters = counters.ToArray();
}
/// <summary>
/// Creates default ProfilerOptions.
/// </summary>
public ProfilerOptions()
: this(true, DefaultSharedMemorySize, false, false, true, false, DefaultCounters)
{
this.counters = (counters ?? DefaultCounters).ToArray();
}
}
}

2
src/AddIns/Analysis/Profiler/Frontend/AddIn/Src/Commands/GoToDefinition.cs

@ -26,7 +26,7 @@ namespace ICSharpCode.Profiler.AddIn.Commands @@ -26,7 +26,7 @@ namespace ICSharpCode.Profiler.AddIn.Commands
IEntity member = GetMemberFromName(c, selectedItem.MethodName, selectedItem.Parameters);
FilePosition position = c.ProjectContent.GetPosition(member ?? c);
if (!position.IsEmpty && !string.IsNullOrEmpty(position.FileName)) {
FileService.JumpToFilePosition(position.FileName, position.Line - 1, position.Column - 1);
FileService.JumpToFilePosition(position.FileName, position.Line, position.Column);
}
}
}

2
src/AddIns/Analysis/UnitTesting/Src/EmptyUnitTestsPad.cs

@ -29,5 +29,7 @@ namespace ICSharpCode.UnitTesting @@ -29,5 +29,7 @@ namespace ICSharpCode.UnitTesting
{
return null;
}
public void CollapseAll() { }
}
}

3
src/AddIns/Analysis/UnitTesting/Src/IUnitTestsPad.cs

@ -12,6 +12,7 @@ namespace ICSharpCode.UnitTesting @@ -12,6 +12,7 @@ namespace ICSharpCode.UnitTesting
void BringToFront();
void ResetTestResults();
IProject[] GetProjects();
TestProject GetTestProject(IProject project);
TestProject GetTestProject(IProject project);
void CollapseAll();
}
}

17
src/AddIns/Analysis/UnitTesting/Src/UnitTestCommands.cs

@ -2,6 +2,7 @@ @@ -2,6 +2,7 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Windows.Forms;
using ICSharpCode.Core;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Dom;
@ -99,4 +100,20 @@ namespace ICSharpCode.UnitTesting @@ -99,4 +100,20 @@ namespace ICSharpCode.UnitTesting
}
}
}
public class CollapseAllTestsCommand : AbstractMenuCommand
{
public override void Run()
{
if (!(this.Owner is TreeView))
return;
var treeView = (TreeView)this.Owner;
treeView.CollapseAll();
if (treeView.Nodes.Count > 0) {
treeView.Nodes[0].Expand();
}
}
}
}

11
src/AddIns/Analysis/UnitTesting/Src/UnitTestsPad.cs

@ -120,6 +120,17 @@ namespace ICSharpCode.UnitTesting @@ -120,6 +120,17 @@ namespace ICSharpCode.UnitTesting
ToolbarService.UpdateToolbar(toolStrip);
}
/// <summary>
/// Collapses all nodes.
/// </summary>
public void CollapseAll()
{
if (treeView == null || treeView.Nodes == null || treeView.Nodes.Count == 0)
return;
treeView.CollapseAll();
}
/// <summary>
/// Called when a solution has been loaded.
/// </summary>

2
src/AddIns/Analysis/UnitTesting/Test/Utils/MockUnitTestsPad.cs

@ -68,5 +68,7 @@ namespace UnitTesting.Tests.Utils @@ -68,5 +68,7 @@ namespace UnitTesting.Tests.Utils
{
testProjects.Add(testProject);
}
public void CollapseAll() { }
}
}

101
src/AddIns/Analysis/UnitTesting/UnitTesting.addin

@ -19,17 +19,17 @@ @@ -19,17 +19,17 @@
<Path name="/SharpDevelop/UnitTesting/TestFrameworks">
<TestFramework id="nunit"
class="ICSharpCode.UnitTesting.NUnitTestFramework"
supportedProjects=".csproj;.vbproj;.booproj" />
class="ICSharpCode.UnitTesting.NUnitTestFramework"
supportedProjects=".csproj;.vbproj;.booproj" />
</Path>
<Path name="/SharpDevelop/Workbench/Pads">
<Pad id="UnitTestingPad"
category="Tools"
title="${res:ICSharpCode.NUnitPad.NUnitPadContent.PadName}"
icon="PadIcons.NUnitTest"
class="ICSharpCode.UnitTesting.UnitTestsPad"
defaultPosition="Right, Hidden" />
category="Tools"
title="${res:ICSharpCode.NUnitPad.NUnitPadContent.PadName}"
icon="PadIcons.NUnitTest"
class="ICSharpCode.UnitTesting.UnitTestsPad"
defaultPosition="Right, Hidden" />
</Path>
<Path name="/SharpDevelop/ViewContent/DefaultTextEditor/ClassMemberContextMenu">
@ -51,9 +51,9 @@ @@ -51,9 +51,9 @@
</Not>
</And>
<MenuItem id="RunInPad"
label="${res:ICSharpCode.UnitTesting.RunInTestPad}"
icon="PadIcons.NUnitTest"
class="ICSharpCode.UnitTesting.RunTestInPadCommand"/>
label="${res:ICSharpCode.UnitTesting.RunInTestPad}"
icon="PadIcons.NUnitTest"
class="ICSharpCode.UnitTesting.RunTestInPadCommand"/>
</ComplexCondition>
<Include id="CommonTestCommands" path="/SharpDevelop/Pads/UnitTestsPad/CommonTestCommands"/>
</MenuItem>
@ -71,9 +71,9 @@ @@ -71,9 +71,9 @@
</Not>
</And>
<MenuItem id="RunInPad"
label="${res:ICSharpCode.UnitTesting.RunInTestPad}"
icon="PadIcons.NUnitTest"
class="ICSharpCode.UnitTesting.RunTestInPadCommand"/>
label="${res:ICSharpCode.UnitTesting.RunInTestPad}"
icon="PadIcons.NUnitTest"
class="ICSharpCode.UnitTesting.RunTestInPadCommand"/>
</ComplexCondition>
<Include id="CommonTestCommands" path="/SharpDevelop/Pads/UnitTestsPad/CommonTestCommands"/>
</MenuItem>
@ -89,9 +89,9 @@ @@ -89,9 +89,9 @@
</Not>
</And>
<MenuItem id="RunWithDebugger"
label="${res:ICSharpCode.UnitTesting.RunWithDebugger}"
icon="Icons.16x16.RunProgramIcon"
class="ICSharpCode.UnitTesting.RunTestWithDebuggerCommand"/>
label="${res:ICSharpCode.UnitTesting.RunWithDebugger}"
icon="Icons.16x16.RunProgramIcon"
class="ICSharpCode.UnitTesting.RunTestWithDebuggerCommand"/>
</ComplexCondition>
</Path>
@ -104,14 +104,14 @@ @@ -104,14 +104,14 @@
</Not>
</And>
<ToolbarItem id="RunAll"
icon="Icons.16x16.RunAllIcon"
tooltip="${res:NUnitPad.NUnitPadContent.RunAllTests}"
class="ICSharpCode.UnitTesting.RunAllTestsInPadCommand"/>
icon="Icons.16x16.RunAllIcon"
tooltip="${res:NUnitPad.NUnitPadContent.RunAllTests}"
class="ICSharpCode.UnitTesting.RunAllTestsInPadCommand"/>
<ToolbarItem id="Run"
insertafter="RunAll"
icon="Icons.16x16.RunProgramIcon"
tooltip="${res:NUnitPad.NUnitPadContent.RunItem}"
class="ICSharpCode.UnitTesting.RunTestInPadCommand"/>
insertafter="RunAll"
icon="Icons.16x16.RunProgramIcon"
tooltip="${res:NUnitPad.NUnitPadContent.RunItem}"
class="ICSharpCode.UnitTesting.RunTestInPadCommand"/>
</ComplexCondition>
<ComplexCondition action="Disable">
<And>
@ -119,16 +119,21 @@ @@ -119,16 +119,21 @@
<Condition name="RunningTests"/>
</And>
<ToolbarItem id="Stop"
icon="Icons.16x16.Debug.StopProcess"
tooltip="${res:NUnitPad.NUnitPadContent.StopTests}"
class="ICSharpCode.UnitTesting.StopTestsCommand"/>
icon="Icons.16x16.Debug.StopProcess"
tooltip="${res:NUnitPad.NUnitPadContent.StopTests}"
class="ICSharpCode.UnitTesting.StopTestsCommand"/>
</ComplexCondition>
<Condition name = "SolutionOpen" action="Disable">
<ToolbarItem id="Separator2" type="Separator"/>
<ToolbarItem id="AddNUnitReference"
icon="Icons.16x16.Reference"
tooltip="${res:NUnitPad.NUnitPadContent.ReferenceItem}"
class="ICSharpCode.UnitTesting.AddNUnitReferenceCommand"/>
icon="Icons.16x16.Reference"
tooltip="${res:NUnitPad.NUnitPadContent.ReferenceItem}"
class="ICSharpCode.UnitTesting.AddNUnitReferenceCommand"/>
<ToolbarItem id = "CollapseSeparator" type = "Separator"/>
<ToolbarItem id = "Collapse"
icon = "Icons.16x16.Assembly"
tooltip = "${res:MainWindow.Windows.SearchResultPanel.CollapseAll.ToolTip}"
class = "ICSharpCode.UnitTesting.CollapseAllTestsCommand"/>
</Condition>
</Path>
@ -141,9 +146,9 @@ @@ -141,9 +146,9 @@
</Not>
</And>
<MenuItem id="Run"
icon="Icons.16x16.RunProgramIcon"
label="${res:NUnitPad.NUnitPadContent.RunTestsContextMenuLabel}"
class="ICSharpCode.UnitTesting.RunTestInPadCommand"/>
icon="Icons.16x16.RunProgramIcon"
label="${res:NUnitPad.NUnitPadContent.RunTestsContextMenuLabel}"
class="ICSharpCode.UnitTesting.RunTestInPadCommand"/>
</ComplexCondition>
<Include id="CommonTestCommands" path="/SharpDevelop/Pads/UnitTestsPad/CommonTestCommands"/>
<ComplexCondition action="Disable">
@ -152,14 +157,14 @@ @@ -152,14 +157,14 @@
<Condition name="RunningTests"/>
</And>
<MenuItem id="Stop"
icon="Icons.16x16.Debug.StopProcess"
label="${res:NUnitPad.NUnitPadContent.StopTests}"
class="ICSharpCode.UnitTesting.StopTestsCommand"/>
icon="Icons.16x16.Debug.StopProcess"
label="${res:NUnitPad.NUnitPadContent.StopTests}"
class="ICSharpCode.UnitTesting.StopTestsCommand"/>
</ComplexCondition>
<Condition name="Ownerstate" ownerstate="SourceCodeItemSelected" action="Disable">
<MenuItem id="GotoDefinition"
label="${res:NUnitPad.NUnitPadContent.GotoDefinitionContextMenuLabel}"
class="ICSharpCode.UnitTesting.GotoDefinitionCommand"/>
label="${res:NUnitPad.NUnitPadContent.GotoDefinitionContextMenuLabel}"
class="ICSharpCode.UnitTesting.GotoDefinitionCommand"/>
</Condition>
</Path>
@ -173,9 +178,9 @@ @@ -173,9 +178,9 @@
</Not>
</And>
<MenuItem id="RunAll"
icon="Icons.16x16.RunAllIcon"
label="${res:NUnitPad.NUnitPadContent.RunAllTests}"
class="ICSharpCode.UnitTesting.RunAllTestsInPadCommand"/>
icon="Icons.16x16.RunAllIcon"
label="${res:NUnitPad.NUnitPadContent.RunAllTests}"
class="ICSharpCode.UnitTesting.RunAllTestsInPadCommand"/>
</ComplexCondition>
<ComplexCondition action="Disable">
<And>
@ -186,9 +191,9 @@ @@ -186,9 +191,9 @@
</Not>
</And>
<MenuItem id="RunProjectTests"
icon="Icons.16x16.RunProgramIcon"
label="${res:ICSharpCode.UnitTesting.RunProjectTests}"
class="ICSharpCode.UnitTesting.RunProjectTestsInPadCommand"/>
icon="Icons.16x16.RunProgramIcon"
label="${res:ICSharpCode.UnitTesting.RunProjectTests}"
class="ICSharpCode.UnitTesting.RunProjectTestsInPadCommand"/>
</ComplexCondition>
<ComplexCondition action="Disable">
<And>
@ -196,16 +201,16 @@ @@ -196,16 +201,16 @@
<Condition name="RunningTests"/>
</And>
<MenuItem id="Stop"
icon="Icons.16x16.Debug.StopProcess"
label="${res:NUnitPad.NUnitPadContent.StopTests}"
class="ICSharpCode.UnitTesting.StopTestsCommand"/>
icon="Icons.16x16.Debug.StopProcess"
label="${res:NUnitPad.NUnitPadContent.StopTests}"
class="ICSharpCode.UnitTesting.StopTestsCommand"/>
</ComplexCondition>
</MenuItem>
</Path>
<Path name="/SharpDevelop/Dialogs/OptionsDialog/ToolsOptions">
<OptionPanel id="UnitTestingOptionsPanel"
label="${res:ICSharpCode.NUnitPad.NUnitPadContent.PadName}"
class="ICSharpCode.UnitTesting.UnitTestingOptionsPanel"/>
label="${res:ICSharpCode.NUnitPad.NUnitPadContent.PadName}"
class="ICSharpCode.UnitTesting.UnitTestingOptionsPanel"/>
</Path>
</AddIn>

2
src/AddIns/BackendBindings/XamlBinding/XamlBinding/XamlCodeCompletionBinding.cs

@ -387,9 +387,9 @@ namespace ICSharpCode.XamlBinding @@ -387,9 +387,9 @@ namespace ICSharpCode.XamlBinding
string word = context.Editor.GetWordBeforeCaretExtended();
if (context.PressedKey != '.' && context.PressedKey != '=' && !word.EndsWith(".") && completionList.PreselectionLength == 0)
completionList.PreselectionLength = word.Length;
context.Editor.ShowCompletionWindow(completionList);
var insightList = CompletionDataHelper.CreateMarkupExtensionInsight(context);
context.Editor.ShowInsightWindow(insightList);
context.Editor.ShowCompletionWindow(completionList);
return completionList.Items.Any() || insightList.Any();
}

2
src/AddIns/DisplayBindings/AvalonEdit.AddIn/Src/ContextActionsRenderer.cs

@ -31,7 +31,7 @@ namespace ICSharpCode.AvalonEdit.AddIn @@ -31,7 +31,7 @@ namespace ICSharpCode.AvalonEdit.AddIn
/// Delays the available actions resolution so that it does not get called too often when user holds an arrow.
/// </summary>
DispatcherTimer delayMoveTimer;
const int delayMoveMilliseconds = 100;
const int delayMoveMilliseconds = 500;
public bool IsEnabled
{

9
src/AddIns/DisplayBindings/FormsDesigner/Project/Src/DesignerViewContent.cs

@ -494,8 +494,13 @@ namespace ICSharpCode.FormsDesigner @@ -494,8 +494,13 @@ namespace ICSharpCode.FormsDesigner
host.Dispose();
return;
}
if (host != null && host.Child == value)
return;
if (host != null) {
if (host.IsDisposed) {
host = null;
} else if (host.Child == value) {
return;
}
}
if (host == null) {
host = new SDWindowsFormsHost(true);
host.ServiceObject = this;

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

@ -33,19 +33,33 @@ namespace ICSharpCode.WpfDesign.AddIn @@ -33,19 +33,33 @@ namespace ICSharpCode.WpfDesign.AddIn
}
return null;
} else {
// Load any other assembly from the solution.
foreach(var project in ProjectService.OpenSolution.Projects) {
if(project.AssemblyName==name) {
var pc = ParserService.GetProjectContent(project);
if (pc != null)
return this.typeResolutionService.LoadAssembly(pc);
}
Assembly assembly = FindAssemblyInProjectReferences(name);
if (assembly != null) {
return assembly;
}
return base.LoadAssembly(name);
}
}
Assembly FindAssemblyInProjectReferences(string name)
{
IProjectContent pc = GetProjectContent(file);
if (pc != null) {
return FindAssemblyInProjectReferences(pc, name);
}
return null;
}
Assembly FindAssemblyInProjectReferences(IProjectContent pc, string name)
{
foreach (IProjectContent referencedProjectContent in pc.ReferencedContents) {
if (name == referencedProjectContent.AssemblyName) {
return this.typeResolutionService.LoadAssembly(referencedProjectContent);
}
}
return null;
}
public override XamlTypeFinder Clone()
{
MyTypeFinder copy = new MyTypeFinder();

18
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Services/CreateComponentTool.cs

@ -79,7 +79,9 @@ namespace ICSharpCode.WpfDesign.Designer.Services @@ -79,7 +79,9 @@ namespace ICSharpCode.WpfDesign.Designer.Services
if (AddItemWithDefaultSize(result.ModelHit, createdItem, e.GetPosition(result.ModelHit.View))) {
moveLogic = new MoveLogic(createdItem);
createPoint = p;
// We'll keep the ChangeGroup open as long as the moveLogic is active.
} else {
// Abort the ChangeGroup created by the CreateItem() call.
changeGroup.Abort();
}
}
@ -169,7 +171,9 @@ namespace ICSharpCode.WpfDesign.Designer.Services @@ -169,7 +171,9 @@ namespace ICSharpCode.WpfDesign.Designer.Services
if (behavior != null) {
DesignItem createdItem = CreateItem(designPanel.Context);
new CreateComponentMouseGesture(result.ModelHit, createdItem).Start(designPanel, e);
new CreateComponentMouseGesture(result.ModelHit, createdItem, changeGroup).Start(designPanel, e);
// CreateComponentMouseGesture now is responsible for the changeGroup created by CreateItem()
changeGroup = null;
}
}
}
@ -181,12 +185,14 @@ namespace ICSharpCode.WpfDesign.Designer.Services @@ -181,12 +185,14 @@ namespace ICSharpCode.WpfDesign.Designer.Services
DesignItem createdItem;
PlacementOperation operation;
DesignItem container;
ChangeGroup changeGroup;
public CreateComponentMouseGesture(DesignItem clickedOn, DesignItem createdItem)
public CreateComponentMouseGesture(DesignItem clickedOn, DesignItem createdItem, ChangeGroup changeGroup)
{
this.container = clickedOn;
this.createdItem = createdItem;
this.positionRelativeTo = clickedOn.View;
this.changeGroup = changeGroup;
}
// GrayOutDesignerExceptActiveArea grayOut;
@ -236,6 +242,10 @@ namespace ICSharpCode.WpfDesign.Designer.Services @@ -236,6 +242,10 @@ namespace ICSharpCode.WpfDesign.Designer.Services
} else {
CreateComponentTool.AddItemWithDefaultSize(container, createdItem, e.GetPosition(positionRelativeTo));
}
if (changeGroup != null) {
changeGroup.Commit();
changeGroup = null;
}
base.OnMouseUp(sender, e);
}
@ -245,6 +255,10 @@ namespace ICSharpCode.WpfDesign.Designer.Services @@ -245,6 +255,10 @@ namespace ICSharpCode.WpfDesign.Designer.Services
operation.Abort();
operation = null;
}
if (changeGroup != null) {
changeGroup.Abort();
changeGroup = null;
}
if (services.Tool.CurrentTool is CreateComponentTool) {
services.Tool.CurrentTool = services.Tool.PointerTool;
}

27
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Tests/Designer/EditOperationTests.cs

@ -1,16 +1,41 @@ @@ -1,16 +1,41 @@
// 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.Threading;
using System.Windows;
using NUnit.Framework;
using ICSharpCode.WpfDesign.Designer.Xaml;
using ICSharpCode.WpfDesign.XamlDom;
using NUnit.Framework;
namespace ICSharpCode.WpfDesign.Tests.Designer
{
[TestFixture]
public class EditOperationTests : ModelTestHelper
{
Mutex mutex;
[TestFixtureSetUp]
public void FixtureSetUp()
{
// Avoid test failure on build server when unit tests for several branches are run concurrently.
bool createdNew;
mutex = new Mutex(true, "ClipboardUnitTest", out createdNew);
if (!createdNew) {
if (!mutex.WaitOne(10000)) {
throw new Exception("Could not acquire mutex");
}
}
}
[TestFixtureTearDown]
public void FixtureTearDown()
{
mutex.ReleaseMutex();
mutex.Dispose();
}
[Test]
public void Cut()
{

16
src/AddIns/Misc/HelpViewer/Source/Controls/TocEntry.cs

@ -34,11 +34,17 @@ namespace MSHelpSystem.Controls @@ -34,11 +34,17 @@ namespace MSHelpSystem.Controls
client.DownloadStringCompleted += (_, e) =>
{
LoggingService.Debug(string.Format("Help 3.0: title \"{0}\"", Title));
var children = XElement.Parse(e.Result);
Children = children.Elements("topic")
.Select(link => new TocEntry(link.Attribute("id").Value) { Title = link.Element("title").Value })
.ToArray();
try {
LoggingService.Debug(string.Format("Help 3.0: title \"{0}\"", Title));
var children = XElement.Parse(e.Result);
Children = children.Elements("topic")
.Select(link => new TocEntry(link.Attribute("id").Value) { Title = link.Element("title").Value })
.ToArray();
} catch (TargetInvocationException ex) {
// Exception when fetching e.Result:
LoggingService.Warn(ex);
this.children = defaultChild;
}
client.Dispose();
};
RaisePropertyChanged("Children");

37
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Commands/PreviewCommands.cs

@ -2,13 +2,8 @@ @@ -2,13 +2,8 @@
// This code is distributed under the GNU LGPL (for details please see \doc\license.txt)
using System;
using System.Globalization;
using System.Windows.Forms;
using ICSharpCode.Core;
using ICSharpCode.Reports.Core;
using ICSharpCode.SharpDevelop;
using ICSharpCode.Reports.Core.ReportViewer;
using ICSharpCode.SharpDevelop.Gui;
namespace ICSharpCode.Reports.Addin.Commands
@ -16,8 +11,6 @@ namespace ICSharpCode.Reports.Addin.Commands @@ -16,8 +11,6 @@ namespace ICSharpCode.Reports.Addin.Commands
public class AbstractPreviewCommand :AbstractCommand
{
ReportModel model;
ICSharpCode.Reports.Core.ReportViewer.PreviewControl reportViewer;
public AbstractPreviewCommand(ReportModel model, ICSharpCode.Reports.Core.ReportViewer.PreviewControl reportViewer)
{
@ -28,31 +21,29 @@ namespace ICSharpCode.Reports.Addin.Commands @@ -28,31 +21,29 @@ namespace ICSharpCode.Reports.Addin.Commands
throw new ArgumentNullException("reportViewer");
}
this.model = model;
this.reportViewer = reportViewer;
this.Model = model;
this.ReportViewer = reportViewer;
}
public override void Run()
{
CollectParametersCommand sql = new CollectParametersCommand(model);
sql.Run();
CollectParametersCommand cmd = new CollectParametersCommand(Model);
cmd.Run();
}
public ICSharpCode.Reports.Core.ReportViewer.PreviewControl ReportViewer {
get { return reportViewer; }
}
public ICSharpCode.Reports.Core.ReportViewer.PreviewControl ReportViewer {get;private set;}
public ReportModel Model {get;private set;}
public ReportModel Model {
get { return this.model; }
}
}
public class AsyncFormsSheetPreviewCommand:AbstractPreviewCommand
public class FormSheetToReportViewerCommand:AbstractPreviewCommand
{
public AsyncFormsSheetPreviewCommand(ReportModel model,
public FormSheetToReportViewerCommand(ReportModel model,
ICSharpCode.Reports.Core.ReportViewer.PreviewControl reportViewer):base (model,reportViewer)
{
}
@ -65,10 +56,10 @@ namespace ICSharpCode.Reports.Addin.Commands @@ -65,10 +56,10 @@ namespace ICSharpCode.Reports.Addin.Commands
}
public class AsyncPullModelPreviewCommand:AbstractPreviewCommand
public class PullModelToReportViewerCommand:AbstractPreviewCommand
{
public AsyncPullModelPreviewCommand(ReportModel model, ICSharpCode.Reports.Core.ReportViewer.PreviewControl reportViewer):base (model,reportViewer)
public PullModelToReportViewerCommand(ReportModel model, ICSharpCode.Reports.Core.ReportViewer.PreviewControl reportViewer):base (model,reportViewer)
{
}
@ -81,9 +72,9 @@ namespace ICSharpCode.Reports.Addin.Commands @@ -81,9 +72,9 @@ namespace ICSharpCode.Reports.Addin.Commands
}
public class AsyncPushModelPreviewCommand:AbstractPreviewCommand
public class PushModelToReportViewerCommand:AbstractPreviewCommand
{
public AsyncPushModelPreviewCommand(ReportModel model, ICSharpCode.Reports.Core.ReportViewer.PreviewControl reportViewer):base (model,reportViewer)
public PushModelToReportViewerCommand(ReportModel model, ICSharpCode.Reports.Core.ReportViewer.PreviewControl reportViewer):base (model,reportViewer)
{
}

71
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportDesignerView.cs

@ -5,13 +5,20 @@ using System; @@ -5,13 +5,20 @@ using System;
using System.Collections;
using System.ComponentModel.Design;
using System.ComponentModel.Design.Serialization;
using System.Data;
using System.Drawing.Design;
using System.Drawing.Printing;
using System.IO;
using System.Text;
using System.Windows.Forms;
using ICSharpCode.Core;
using ICSharpCode.Reports.Addin.Commands;
using ICSharpCode.Reports.Addin.Designer;
using ICSharpCode.Reports.Core;
using ICSharpCode.Reports.Core.BaseClasses.Printing;
using ICSharpCode.Reports.Core.Exporter;
using ICSharpCode.Reports.Core.Exporter.ExportRenderer;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Gui;
@ -185,21 +192,11 @@ namespace ICSharpCode.Reports.Addin @@ -185,21 +192,11 @@ namespace ICSharpCode.Reports.Addin
LoggingService.Debug("FormsDesigner loaded, setting ActiveDesignSurface to " + this.designSurface.ToString());
designSurfaceManager.ActiveDesignSurface = this.designSurface;
this.UpdatePropertyPad();
} else {
// This method can not only be called during initialization,
// but also when the designer reloads itself because of
// a language change.
// When a load error occurs there, we are not somewhere
// below the Load method which handles load errors.
// That is why we create an error text box here anyway.
// TextBox errorTextBox = new TextBox() { Multiline=true, ScrollBars=ScrollBars.Both, ReadOnly=true, BackColor=SystemColors.Window, Dock=DockStyle.Fill };
// errorTextBox.Text = String.Concat(this.LoadErrorHeaderText, FormatLoadErrors(designSurface));
// this.UserContent = errorTextBox;
}
}
private void CreatePanel ()
{
this.panel = new Panel();
@ -220,10 +217,6 @@ namespace ICSharpCode.Reports.Addin @@ -220,10 +217,6 @@ namespace ICSharpCode.Reports.Addin
{
LoggingService.Debug("Forms designer: DesignerLoader unloading...");
this.unloading = true;
// if (!this.disposing) {
// this.UserContent = this.pleaseWaitLabel;
// Application.DoEvents();
// }
}
@ -284,7 +277,6 @@ namespace ICSharpCode.Reports.Addin @@ -284,7 +277,6 @@ namespace ICSharpCode.Reports.Addin
this.MakeDirty();
ReportExplorerPad explorerPad = CheckReportExplorer();
IComponentChangeService change = Host.GetService(typeof(IComponentChangeService)) as IComponentChangeService;
// change.OnComponentChanged(explorerPad.ReportModel.ReportSettings.SortColumnsCollection, null, null, null);
change.OnComponentChanged(explorerPad, null, null, null);
}
@ -557,16 +549,47 @@ namespace ICSharpCode.Reports.Addin @@ -557,16 +549,47 @@ namespace ICSharpCode.Reports.Addin
#region IPrintable
public System.Drawing.Printing.PrintDocument PrintDocument {
public PrintDocument PrintDocument
{
get {
ICSharpCode.Reports.Core.ReportModel model = this.loader.CreateRenderableModel();
StandartPreviewManager reportManager = new StandartPreviewManager();
ICSharpCode.Reports.Core.AbstractRenderer r = reportManager.CreateRenderer (model);
r.ReportDocument.PrintController = new ICSharpCode.Reports.Core.ExtendedPrintController(new System.Drawing.Printing.PreviewPrintController());
return r.ReportDocument;
ReportModel model = loader.CreateRenderableModel();
IReportCreator reportCreator = null;
var paramCmd = new CollectParametersCommand(model);
paramCmd.Run();
switch (model.DataModel) {
case GlobalEnums.PushPullModel.FormSheet :
{
reportCreator = FormPageBuilder.CreateInstance(model);
break;
}
case GlobalEnums.PushPullModel.PullData:
{
IDataManager dataManager = DataManagerFactory.CreateDataManager(model,(ReportParameters)null);
reportCreator = DataPageBuilder.CreateInstance(model,dataManager);
break;
}
case GlobalEnums.PushPullModel.PushData:{
var cmd = new ICSharpCode.Reports.Addin.Commands.DataSetFromXsdCommand();
cmd.Run();
DataSet ds = cmd.DataSet;
IDataManager dataManager = DataManagerFactory.CreateDataManager(model,ds.Tables[0]);
reportCreator = DataPageBuilder.CreateInstance(model,dataManager);
break;
}
default:
throw new InvalidReportModelException();
}
reportCreator.BuildExportList();
PrintRenderer printer = PrintRenderer.CreateInstance(reportCreator.Pages);
printer.Start();
printer.RenderOutput();
printer.End();
return printer.PrintDocument;
}
}
#endregion

4
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/LayoutPanel.cs

@ -20,14 +20,14 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -20,14 +20,14 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
public LayoutPanel()
{
base.EnableFinish = true;
base.EnableFinish = true;
base.EnableCancel = true;
base.EnableNext = true;
base.Refresh();
layoutControl = new LayoutPanelControl();
layoutControl.Location = new Point (20,20);
this.Controls.Add(layoutControl);
}

28
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/LayoutPanelControl.Designer.cs generated

@ -32,38 +32,50 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -32,38 +32,50 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
private void InitializeComponent()
{
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.groupBox2 = new System.Windows.Forms.GroupBox();
this.comboBox1 = new System.Windows.Forms.ComboBox();
this.checkBox1 = new System.Windows.Forms.CheckBox();
this.radioTableLayout = new System.Windows.Forms.RadioButton();
this.radioListLayout = new System.Windows.Forms.RadioButton();
this.groupBox1.SuspendLayout();
this.groupBox2.SuspendLayout();
this.SuspendLayout();
//
// groupBox1
//
this.groupBox1.Controls.Add(this.comboBox1);
this.groupBox1.Controls.Add(this.groupBox2);
this.groupBox1.Controls.Add(this.checkBox1);
this.groupBox1.Controls.Add(this.radioTableLayout);
this.groupBox1.Controls.Add(this.radioListLayout);
this.groupBox1.Location = new System.Drawing.Point(17, 18);
this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(232, 205);
this.groupBox1.Size = new System.Drawing.Size(232, 242);
this.groupBox1.TabIndex = 2;
this.groupBox1.TabStop = false;
this.groupBox1.Text = "Report Layout";
//
// groupBox2
//
this.groupBox2.Controls.Add(this.comboBox1);
this.groupBox2.Location = new System.Drawing.Point(55, 146);
this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(200, 64);
this.groupBox2.TabIndex = 6;
this.groupBox2.TabStop = false;
this.groupBox2.Text = "groupBox2";
this.groupBox2.Visible = false;
//
// comboBox1
//
this.comboBox1.FormattingEnabled = true;
this.comboBox1.Location = new System.Drawing.Point(64, 160);
this.comboBox1.Location = new System.Drawing.Point(6, 28);
this.comboBox1.Name = "comboBox1";
this.comboBox1.Size = new System.Drawing.Size(121, 21);
this.comboBox1.TabIndex = 5;
this.comboBox1.Visible = false;
this.comboBox1.TabIndex = 6;
//
// checkBox1
//
this.checkBox1.Location = new System.Drawing.Point(64, 116);
this.checkBox1.Location = new System.Drawing.Point(64, 106);
this.checkBox1.Name = "checkBox1";
this.checkBox1.Size = new System.Drawing.Size(104, 24);
this.checkBox1.TabIndex = 4;
@ -97,10 +109,12 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -97,10 +109,12 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.groupBox1);
this.Name = "LayoutPanelControl";
this.Size = new System.Drawing.Size(270, 252);
this.Size = new System.Drawing.Size(331, 284);
this.groupBox1.ResumeLayout(false);
this.groupBox2.ResumeLayout(false);
this.ResumeLayout(false);
}
private System.Windows.Forms.GroupBox groupBox2;
private System.Windows.Forms.CheckBox checkBox1;
private System.Windows.Forms.ComboBox comboBox1;
private System.Windows.Forms.RadioButton radioTableLayout;

11
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/LayoutPanelControl.cs

@ -5,6 +5,8 @@ using System; @@ -5,6 +5,8 @@ using System;
using System.ComponentModel;
using System.Drawing;
using System.Windows.Forms;
using ICSharpCode.Core;
using ICSharpCode.Reports.Core;
namespace ICSharpCode.Reports.Addin.ReportWizard
@ -22,6 +24,11 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -22,6 +24,11 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
public LayoutPanelControl()
{
InitializeComponent();
groupBox1.Text = ResourceService.GetString("SharpReport.Wizard.Layout.ReportLayout");
radioListLayout.Text = ResourceService.GetString("SharpReport.Wizard.Layout.ListLayout");
radioTableLayout.Text = ResourceService.GetString("SharpReport.Wizard.Layout.TableLayout");
groupBox2.Text = ResourceService.GetString("SharpReport.Wizard.Layout.Column");
checkBox1.Text = ResourceService.GetString("SharpReport.Wizard.Layout.Grouping");
}
@ -49,6 +56,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -49,6 +56,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
}
}
public GlobalEnums.ReportLayout ReportLayout {
get {
GetLayout();
@ -61,7 +69,8 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -61,7 +69,8 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
void CheckBox1CheckedChanged(object sender, System.EventArgs e)
{
comboBox1.Visible = checkBox1.Checked;
//comboBox1.Visible = checkBox1.Checked;
this.groupBox2.Visible = checkBox1.Checked;
}

22
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/PullModelPanel.cs

@ -28,7 +28,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -28,7 +28,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
private System.Windows.Forms.Label label3;
private bool firstDrag;
private string connectionString;
private CommandType commandType;
// private CommandType commandType;
private ReportStructure reportStructure;
private Properties customizer;
private IDatabaseObjectBase currentNode;
@ -60,7 +60,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -60,7 +60,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
base.EnableCancel = true;
this.firstDrag = true;
base.IsLastPanel = false;
commandType = CommandType.Text;
//commandType = CommandType.Text;
this.txtSqlString.Enabled = false;
this.databasesTreeHost = new ElementHost() { Dock = DockStyle.Fill };
@ -90,12 +90,8 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -90,12 +90,8 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
}
if (message == DialogMessage.Next) {
commandType = CommandType.Text;
customizer.Set("SqlString", this.txtSqlString.Text.Trim());
reportStructure.CommandType = commandType;
//reportStructure.CommandType = commandType;
reportStructure.SqlString = this.txtSqlString.Text.Trim();
reportStructure.ConnectionString = connectionString;
base.EnableFinish = true;
@ -123,6 +119,9 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -123,6 +119,9 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
if (e.Data.GetFormats().Length > 0)
{
string draggedFormat = e.Data.GetFormats()[0];
String str = String.Format("drag {0}",draggedFormat);
System.Diagnostics.Trace.WriteLine(str);
Type draggedType = null;
@ -173,9 +172,8 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -173,9 +172,8 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
// we insert Select * from.... otherwise we have to scan
//the whole string for incorrect columnNames
this.txtSqlString.Clear();
// AbstractSharpQuerySchemaClass tbl = (AbstractSharpQuerySchemaClass)this.currentNode.SchemaClass;
this.txtSqlString.Text = "SELECT * FROM " + (draggedObject as ICSharpCode.Data.Core.Interfaces.ITable).Name;
reportStructure.CommandType = CommandType.Text;
break;
case NodeType.ColumnImage:
@ -184,9 +182,8 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -184,9 +182,8 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
{
this.txtSqlString.AppendText("SELECT ");
this.txtSqlString.AppendText(colName);
}
//FxCop : http://msdn.microsoft.com/library/bb386042(VS.100).aspx
else if (this.txtSqlString.Text.ToUpper(CultureInfo.InvariantCulture).IndexOf("where", StringComparison.OrdinalIgnoreCase) > 0)
{
this.txtSqlString.AppendText(colName + " = ?");
@ -196,6 +193,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -196,6 +193,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
this.txtSqlString.AppendText(", ");
this.txtSqlString.AppendText(colName);
}
reportStructure.CommandType = CommandType.Text;
break;
case NodeType.ProcedureImage:
@ -204,7 +202,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -204,7 +202,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
// we can't use the dragobject because it returns an string like 'EXECUTE ProcName'
IProcedure procedure = draggedObject as IProcedure;
this.txtSqlString.Text = "EXECUTE " + procedure.Name;
reportStructure.CommandType = CommandType.StoredProcedure;
// reportStructure.SharpQueryProcedure = new SharpQueryProcedure(new SharpQuery.Connection.OLEDBConnectionWrapper(this.connectionString), procedure.Parent.Name, procedure.SchemaName, string.Empty, procedure.Name);
break;

43
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/ReportWizard/WizardPanels/ResultPanel.cs

@ -50,6 +50,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -50,6 +50,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
#endregion
#region Fill data
private DataSet FillGrid()
@ -62,7 +63,23 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -62,7 +63,23 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
model.ReportSettings.CommandText);
DataSet dataSet = ResultPanel.CreateDataSet ();
this.txtSqlString.Text = model.ReportSettings.CommandText;
switch (model.ReportSettings.CommandType) {
case CommandType.Text:
this.txtSqlString.Text = model.ReportSettings.CommandText;
dataSet = BuildFromSqlString();
break;
case CommandType.StoredProcedure:
MessageService.ShowError("Stored Procedures are not suppurted at the moment");
break;
case CommandType.TableDirect:
MessageService.ShowError("TableDirect is not suppurted at the moment");
break;
default:
throw new Exception("Invalid value for CommandType");
}
if (model.ReportSettings.CommandType == CommandType.StoredProcedure){
/*
if (reportStructure.SharpQueryProcedure == null) {
@ -81,10 +98,10 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -81,10 +98,10 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
}
// from here we create from an SqlString like "Select...."
if (model.ReportSettings.CommandType == CommandType.Text){
this.txtSqlString.Text = model.ReportSettings.CommandText;
dataSet = BuildFromSqlString();
}
// if (model.ReportSettings.CommandType == CommandType.Text){
// this.txtSqlString.Text = model.ReportSettings.CommandText;
// dataSet = BuildFromSqlString();
// }
return dataSet;
}
@ -247,6 +264,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -247,6 +264,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
#endregion
#region overrides
public override bool ReceiveDialogMessage(DialogMessage message)
@ -257,9 +275,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -257,9 +275,7 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
}
if (message == DialogMessage.Activated)
{
this.model = reportStructure.CreateAndFillReportModel();
this.resultDataSet = FillGrid();
SetupGrid ();
ShowData();
base.EnableNext = true;
base.EnableFinish = true;
@ -281,6 +297,17 @@ namespace ICSharpCode.Reports.Addin.ReportWizard @@ -281,6 +297,17 @@ namespace ICSharpCode.Reports.Addin.ReportWizard
}
void ShowData()
{
this.model = reportStructure.CreateAndFillReportModel();
this.resultDataSet = FillGrid();
if (resultDataSet.Tables.Count > 0) {
SetupGrid ();
}
}
private void SetupGrid()
{
if (this.resultDataSet != null) {

6
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/SecondaryViews/ReportViewerSecondaryView.cs

@ -50,15 +50,15 @@ namespace ICSharpCode.Reports.Addin @@ -50,15 +50,15 @@ namespace ICSharpCode.Reports.Addin
AbstractPreviewCommand cmd = null;
switch (model.DataModel) {
case GlobalEnums.PushPullModel.FormSheet : {
cmd = new AsyncFormsSheetPreviewCommand (model,control);
cmd = new FormSheetToReportViewerCommand (model,control);
break;
}
case GlobalEnums.PushPullModel.PullData:{
cmd = new AsyncPullModelPreviewCommand(model,control);
cmd = new PullModelToReportViewerCommand(model,control);
break;
}
case GlobalEnums.PushPullModel.PushData:{
cmd = new AsyncPushModelPreviewCommand(model,control);
cmd = new PushModelToReportViewerCommand(model,control);
break;
}
default:

29
src/AddIns/Misc/Reports/ICSharpCode.Reports.Addin/Project/Toolbox/ToolboxProvider.cs

@ -15,6 +15,9 @@ using ICSharpCode.SharpDevelop.Widgets.SideBar; @@ -15,6 +15,9 @@ using ICSharpCode.SharpDevelop.Widgets.SideBar;
namespace ICSharpCode.Reports.Addin
{
//http://developer.sharpdevelop.net/corsavy/translation/default.asp
internal sealed class ReportingSideTabProvider
{
@ -61,39 +64,41 @@ namespace ICSharpCode.Reports.Addin @@ -61,39 +64,41 @@ namespace ICSharpCode.Reports.Addin
tb.Bitmap = WinFormsResourceService.GetIcon("Icons.16.16.SharpReport.Textbox").ToBitmap();
sideTab.Items.Add(new SideTabItemDesigner(tb));
// Row
tb = new ToolboxItem(typeof(ICSharpCode.Reports.Addin.BaseRowItem));
tb.Bitmap = WinFormsResourceService.GetBitmap("Icons.16x16.SharpQuery.Table");
tb.DisplayName = ResourceService.GetString("SharpReport.Toolbar.DataRow");
sideTab.Items.Add(new SideTabItemDesigner(tb));
//GroupHeader
tb = new ToolboxItem(typeof(ICSharpCode.Reports.Addin.GroupHeader));
tb.Bitmap = WinFormsResourceService.GetBitmap("Icons.16x16.SharpQuery.Table");
tb.DisplayName = "GroupHeader";
tb.Bitmap = WinFormsResourceService.GetBitmap("Icons.16x16.NameSpace");
tb.DisplayName = ResourceService.GetString("SharpReport.Toolbar.GroupHeader");
sideTab.Items.Add(new SideTabItemDesigner(tb));
//GroupFooter
tb = new ToolboxItem(typeof(ICSharpCode.Reports.Addin.GroupFooter));
tb.Bitmap = WinFormsResourceService.GetBitmap("Icons.16x16.SharpQuery.Table");
tb.DisplayName = "GroupFooter";
tb.Bitmap = WinFormsResourceService.GetBitmap("Icons.16x16.NameSpace");
tb.DisplayName = ResourceService.GetString("SharpReport.Toolbar.GroupFooter");
sideTab.Items.Add(new SideTabItemDesigner(tb));
// Row
tb = new ToolboxItem(typeof(ICSharpCode.Reports.Addin.BaseRowItem));
tb.Bitmap = WinFormsResourceService.GetBitmap("Icons.16x16.SharpQuery.Table");
tb.DisplayName = ResourceService.GetString("SharpReport.Toolbar.DataRow");
sideTab.Items.Add(new SideTabItemDesigner(tb));
//BaseTable
// tb.Bitmap = WinFormsResourceService.GetBitmap("Icons.16x16.SharpQuery.Table");
tb.Bitmap = WinFormsResourceService.GetBitmap("Icons.16x16.SharpQuery.Table");
tb = new ToolboxItem(typeof(ICSharpCode.Reports.Addin.BaseTableItem));
tb.DisplayName ="Table";
tb.DisplayName = ResourceService.GetString("SharpReport.Toolbar.Table");
sideTab.Items.Add(new SideTabItemDesigner(tb));
tb.Bitmap = WinFormsResourceService.GetBitmap("Icons.16x16.SharpQuery.Table");
//BaseDataItem
tb = new ToolboxItem(typeof(ICSharpCode.Reports.Addin.BaseDataItem));
tb.DisplayName = ResourceService.GetString("SharpReport.Toolbar.DataField");
// tb.Bitmap = WinFormsResourceService.GetBitmap("Icons.16x16.SharpQuery.Column");
tb.Bitmap = WinFormsResourceService.GetBitmap("Icons.16x16.SharpQuery.Column");
sideTab.Items.Add(new SideTabItemDesigner(tb));
//Grahics

2
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/ICSharpCode.Reports.Core.csproj

@ -252,7 +252,6 @@ @@ -252,7 +252,6 @@
<Compile Include="Project\Globals\UnitConverter.cs" />
<Compile Include="Project\Interfaces\IDataAccessStrategy.cs" />
<Compile Include="Project\Interfaces\IDataViewStrategy.cs" />
<Compile Include="Project\Interfaces\IHierarchyInterfaces.cs" />
<Compile Include="Project\Interfaces\IItemConverter.cs" />
<Compile Include="Project\Interfaces\ILayouter.cs" />
<Compile Include="Project\Interfaces\IReportItem.cs" />
@ -260,7 +259,6 @@ @@ -260,7 +259,6 @@
<Compile Include="Project\Interfaces\IReportModel.cs" />
<Compile Include="Project\Interfaces\ISinglePage.cs" />
<Compile Include="Project\IReportCreator.cs" />
<Compile Include="Project\Printing\ExtendedPrintController.cs" />
<Compile Include="Project\Printing\Graphics\BaseLine.cs" />
<Compile Include="Project\Printing\Graphics\BaseShape.cs" />
<Compile Include="Project\Printing\Graphics\Border.cs" />

12
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/BaseClasses/Printing/Layouter.cs

@ -33,8 +33,8 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing @@ -33,8 +33,8 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing
return Rectangle.Empty;
}
Console.WriteLine("\tlayouter for container <{0}>",container.ToString());
// Console.WriteLine("\tlayouter for container <{0}>",container.ToString());
Console.WriteLine("\tLayouter for Container");
Rectangle desiredContainerRectangle = new Rectangle (container.Location,container.Size);
System.Collections.Generic.IEnumerable<BaseReportItem> canGrowShrinkCollection = from bt in container.Items where bt.CanGrow == true select bt;
@ -58,7 +58,7 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing @@ -58,7 +58,7 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing
//
// Console.WriteLine("Diff {0} - {1} dif {2}",desiredContainerRectangle,r1,desiredContainerRectangle.Height - r1.Height);
}
Console.WriteLine("\tContainer : {0} - DesiredContainerRectangle {1} ",container.Size,desiredContainerRectangle.Size);
// Console.WriteLine("\tContainer : {0} - DesiredContainerRectangle {1} ",container.Size,desiredContainerRectangle.Size);
return desiredContainerRectangle;
}
@ -72,8 +72,8 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing @@ -72,8 +72,8 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing
throw new ArgumentNullException("section");
}
Console.WriteLine("\tlayouter for section <{0}>",section.Name);
// Console.WriteLine("\tLayouter for Container");Console.WriteLine("\tlayouter for section <{0}>",section.Name);
Console.WriteLine("\tLayouter for Section");
IEnumerable<BaseReportItem> canGrowShrinkCollection = from bt in section.Items where bt.CanGrow == true select bt;
Rectangle desiredSectionRectangle = new Rectangle(section.Location.X,
@ -93,7 +93,7 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing @@ -93,7 +93,7 @@ namespace ICSharpCode.Reports.Core.BaseClasses.Printing
surroundingRec.Size.Height);
}
}
Console.WriteLine("\tSection : {0} - DesiredContainerRectangle {1} ",section.Size,desiredSectionRectangle.Size);
// Console.WriteLine("\tSection : {0} - DesiredContainerRectangle {1} ",section.Size,desiredSectionRectangle.Size);
return desiredSectionRectangle;
}

1
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Collections/Collections.cs

@ -143,7 +143,6 @@ namespace ICSharpCode.Reports.Core{ @@ -143,7 +143,6 @@ namespace ICSharpCode.Reports.Core{
protected override void RemoveItem(int index)
{
BaseReportItem item = this[index];
base.RemoveItem(index);
}

45
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/DataManager.cs

@ -191,23 +191,7 @@ namespace ICSharpCode.Reports.Core { @@ -191,23 +191,7 @@ namespace ICSharpCode.Reports.Core {
}
}
/*
private void CheckReportColumns()
{
if (this.reportSettings.SortColumnCollection.Count > 0) {
if (this.dataViewStrategy.AvailableFields.Count > 0) {
foreach (SortColumn col in this.reportSettings.SortColumnCollection) {
string colName = col.ColumnName;
AbstractColumn c = this.dataViewStrategy.AvailableFields.Find (colName);
if (c == null) {
throw new WrongColumnException(col.ColumnName);
}
}
}
}
}
*/
#endregion
@ -245,23 +229,6 @@ namespace ICSharpCode.Reports.Core { @@ -245,23 +229,6 @@ namespace ICSharpCode.Reports.Core {
}
}
/*
public IndexList ChildRows
{
get {
return this.dataViewStrategy.ChildRows;
}
}
public bool IsGrouped
{
get {
return this.dataViewStrategy.IsGrouped;
}
}
*/
public bool IsSorted
{
@ -270,17 +237,11 @@ namespace ICSharpCode.Reports.Core { @@ -270,17 +237,11 @@ namespace ICSharpCode.Reports.Core {
}
}
/*
public bool IsFiltered
{
get {
return this.dataViewStrategy.IsFiltered;
}
}
*/
#endregion
#region System.IDisposable interface implementation
public void Dispose() {
this.Dispose(true);
GC.SuppressFinalize(this);

4
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/ListStrategy/BaseListStrategy.cs

@ -130,7 +130,7 @@ namespace ICSharpCode.Reports.Core { @@ -130,7 +130,7 @@ namespace ICSharpCode.Reports.Core {
#endregion
#region Debug Code
/*
protected static void ShowIndexList (IndexList list)
{
@ -151,7 +151,7 @@ namespace ICSharpCode.Reports.Core { @@ -151,7 +151,7 @@ namespace ICSharpCode.Reports.Core {
}
}
}
*/
#endregion
public virtual void Reset()

2
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/DataManager/SqlDataAccess.cs

@ -14,7 +14,7 @@ namespace ICSharpCode.Reports.Core @@ -14,7 +14,7 @@ namespace ICSharpCode.Reports.Core
/// </summary>
///
public class SqlDataAccessStrategy:IDataAccessStrategy
internal class SqlDataAccessStrategy:IDataAccessStrategy
{
private ConnectionObject connectionObject;
private ReportSettings reportSettings;

11
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/BasePager.cs

@ -27,16 +27,15 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -27,16 +27,15 @@ namespace ICSharpCode.Reports.Core.Exporter
#region Constructor
public BasePager(IReportModel reportModel,ILayouter layouter)
public BasePager(IReportModel reportModel)
{
if (reportModel == null) {
throw new ArgumentNullException("reportModel");
}
if (layouter == null) {
throw new ArgumentNullException ("layouter");
}
this.ReportModel = reportModel;
this.Layouter = layouter;
//this.Layouter = layouter;
this.Layouter = new Layouter();
this.Graphics = CreateGraphicObject.FromSize(this.ReportModel.ReportSettings.PageSize);
}
@ -210,7 +209,7 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -210,7 +209,7 @@ namespace ICSharpCode.Reports.Core.Exporter
ExportText et = be as ExportText;
if (et != null) {
if (et.Text.StartsWith("=")) {
if (et.Text.StartsWith("=",StringComparison.InvariantCulture)) {
et.Text = evaluatorFassade.Evaluate(et.Text);
}
}

47
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/BaseConverter.cs

@ -78,7 +78,7 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -78,7 +78,7 @@ namespace ICSharpCode.Reports.Core.Exporter
if (row == null) {
throw new ArgumentException("row");
}
Console.WriteLine("\tFireRowRendering");
// Console.WriteLine("\tFireRowRendering");
RowRenderEventArgs rrea = new RowRenderEventArgs(row,currentNavigator.Current);
EventHelper.Raise<RowRenderEventArgs>(RowRendering,this,rrea);
}
@ -86,7 +86,7 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -86,7 +86,7 @@ namespace ICSharpCode.Reports.Core.Exporter
protected void FireGroupHeaderRendering (GroupHeader groupHeader)
{
Console.WriteLine("\tFireGroupHeaderRendering");
// Console.WriteLine("\tFireGroupHeaderRendering");
GroupHeaderEventArgs ghea = new GroupHeaderEventArgs(groupHeader);
EventHelper.Raise<GroupHeaderEventArgs>(GroupHeaderRendering,this,ghea);
}
@ -94,7 +94,7 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -94,7 +94,7 @@ namespace ICSharpCode.Reports.Core.Exporter
protected void FireGroupFooterRendering (GroupFooter groupFooter)
{
Console.WriteLine("\tFireGroupFooterRendering");
// Console.WriteLine("\tFireGroupFooterRendering");
GroupFooterEventArgs gfea = new GroupFooterEventArgs(groupFooter);
EventHelper.Raise<GroupFooterEventArgs>(GroupFooterRendering,this,gfea);
}
@ -136,27 +136,18 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -136,27 +136,18 @@ namespace ICSharpCode.Reports.Core.Exporter
#region Grouping
protected void ConvertGroupFooter (BaseSection section,ISimpleContainer container,ExporterCollection exporterCollection)
protected void ConvertGroupFooter (ISimpleContainer container,ExporterCollection exporterCollection)
{
var footers = BaseConverter.FindGroupFooter(container);
if (footers.Count > 0) {
Size rowSize = footers[0].Size;
CurrentPosition = ConvertStandardRow(exporterCollection,section,(ISimpleContainer)footers[0]);
CurrentPosition = ConvertStandardRow(exporterCollection,(ISimpleContainer)footers[0]);
FireGroupFooterRendering(footers[0]);
footers[0].Size = rowSize;
}
}
protected Point ConvertGroupChilds(ExporterCollection mylist, BaseSection section,
ISimpleContainer simpleContainer)
{
PrepareContainerForConverting(section,simpleContainer);
Point curPos = ConvertContainer(mylist,simpleContainer,DefaultLeftPosition,CurrentPosition);
AfterConverting (mylist);
return curPos;
}
protected void PageBreakAfterGroupChange(BaseSection section,ExporterCollection exporterCollection)
{
@ -247,21 +238,25 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -247,21 +238,25 @@ namespace ICSharpCode.Reports.Core.Exporter
}
protected Point ConvertStandardRow(ExporterCollection mylist, BaseSection section, ISimpleContainer simpleContainer)
protected void PrepareContainerForConverting(BaseSection section,ISimpleContainer simpleContainer)
{
Console.WriteLine("\tPrepareContainerForConverting");
FireSectionRendering(section);
LayoutRow(simpleContainer);
}
protected Point ConvertStandardRow(ExporterCollection mylist, ISimpleContainer simpleContainer)
{
var rowSize = simpleContainer.Size;
PrepareContainerForConverting(section,simpleContainer);
Console.WriteLine("ConvertStandardRow");
Point curPos = ConvertContainer(mylist,simpleContainer,DefaultLeftPosition,CurrentPosition);
AfterConverting (mylist);
simpleContainer.Size = rowSize;
Console.WriteLine("");
return curPos;
}
protected void PrepareContainerForConverting(BaseSection section,ISimpleContainer simpleContainer)
{
FireSectionRendering(section);
LayoutRow(simpleContainer);
}
@ -279,10 +274,10 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -279,10 +274,10 @@ namespace ICSharpCode.Reports.Core.Exporter
}
protected void FillRow (ISimpleContainer row)
protected static void FillRow (ISimpleContainer row,IDataNavigator currentNavigator)
{
Console.WriteLine("\tFillRow");
DataNavigator.Fill(row.Items);
Console.WriteLine("\tFillrow");
currentNavigator.Fill(row.Items);
}

30
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedRowConverter.cs

@ -96,21 +96,22 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -96,21 +96,22 @@ namespace ICSharpCode.Reports.Core.Exporter
StandardPrinter.AdjustBackColor(simpleContainer,GlobalValues.DefaultBackColor);
do
{
Console.WriteLine("");
section.Size = base.RestoreSectionSize;
section.Items[0].Size = groupSize;
section.Items[1].Size = childSize;
Console.WriteLine("\tFillRow");
childNavigator.Fill(simpleContainer.Items);
base.CurrentPosition = ConvertGroupChilds (exporterCollection,section,simpleContainer);
FillRow(simpleContainer,childNavigator);
FireRowRendering(simpleContainer,childNavigator);
PrepareContainerForConverting(section,simpleContainer);
// FireRowRendering(simpleContainer,childNavigator);
base.CurrentPosition = ConvertStandardRow(exporterCollection,simpleContainer);
CheckForPageBreak(section,exporterCollection);
Console.WriteLine("");
}
while ( childNavigator.MoveNext());
// GroupFooter
base.ConvertGroupFooter(section,section,exporterCollection);
base.ConvertGroupFooter(section,exporterCollection);
base.PageBreakAfterGroupChange(section,exporterCollection);
@ -120,15 +121,15 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -120,15 +121,15 @@ namespace ICSharpCode.Reports.Core.Exporter
else
{
// No Grouping at all, the first item in section.items is the DetailRow
Console.WriteLine("");
Size containerSize = section.Items[0].Size;
base.FillRow(simpleContainer);
base.CurrentPosition = ConvertStandardRow (exporterCollection,section,simpleContainer);
base.FireRowRendering(simpleContainer,base.DataNavigator);
FillRow(simpleContainer,base.DataNavigator);
FireRowRendering(simpleContainer,base.DataNavigator);
base.PrepareContainerForConverting(section,simpleContainer);
// FireRowRendering(simpleContainer,base.DataNavigator);
base.CurrentPosition = ConvertStandardRow (exporterCollection,simpleContainer);
section.Size = base.RestoreSectionSize;
section.Items[0].Size = containerSize;
Console.WriteLine("");
}
CheckForPageBreak (section,exporterCollection);
ShouldDrawBorder (section,exporterCollection);
@ -185,10 +186,11 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -185,10 +186,11 @@ namespace ICSharpCode.Reports.Core.Exporter
AfterConverting (list);
retVal = new Point (DefaultLeftPosition,offset.Y + groupCollection[0].Size.Height + 20 + (3 *GlobalValues.GapBetweenContainer));
} else {
FillRow(groupedRows[0]);
FillRow(groupedRows[0],base.DataNavigator);
rowSize = groupedRows[0].Size;
retVal = ConvertStandardRow(exportList,section,groupedRows[0]);
base.FireGroupHeaderRendering(groupedRows[0]);
retVal = ConvertStandardRow(exportList,groupedRows[0]);
groupedRows[0].Size = rowSize;
}
return retVal;

43
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/Converters/GroupedTableConverter.cs

@ -38,7 +38,7 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -38,7 +38,7 @@ namespace ICSharpCode.Reports.Core.Exporter
ExporterCollection mylist = base.Convert(parent,item);
this.table = (BaseTableItem)item ;
this.table.Parent = parent;
this.table.DataNavigator = base.DataNavigator;
// this.table.DataNavigator = base.DataNavigator;
return ConvertInternal(mylist);
}
@ -95,7 +95,14 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -95,7 +95,14 @@ namespace ICSharpCode.Reports.Core.Exporter
childNavigator.Reset();
childNavigator.MoveNext();
/*
---- GroupTableConverter.cs Zeile 151:
FillRow(simpleContainer,base.DataNavigator);
FireRowRendering(simpleContainer,base.DataNavigator);
base.PrepareContainerForConverting(section,simpleContainer);
----
*/
//Convert children
if (childNavigator != null) {
do
@ -104,10 +111,12 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -104,10 +111,12 @@ namespace ICSharpCode.Reports.Core.Exporter
simpleContainer = table.Items[2] as ISimpleContainer;
containerSize = simpleContainer.Size;
childNavigator.Fill(simpleContainer.Items);
base.CurrentPosition = ConvertGroupChilds (exporterCollection,section,simpleContainer);
FillRow(simpleContainer,childNavigator);
// PrepareContainerForConverting(section,simpleContainer);
FireRowRendering(simpleContainer,childNavigator);
PrepareContainerForConverting(section,simpleContainer);
base.CurrentPosition = ConvertStandardRow(exporterCollection,simpleContainer);
simpleContainer.Size = containerSize;
CheckForPageBreak(section,simpleContainer,headerRow,exporterCollection);
@ -115,7 +124,7 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -115,7 +124,7 @@ namespace ICSharpCode.Reports.Core.Exporter
while ( childNavigator.MoveNext());
// GroupFooter
base.ConvertGroupFooter(section,table,exporterCollection);
base.ConvertGroupFooter(table,exporterCollection);
base.PageBreakAfterGroupChange(section,exporterCollection);
base.Evaluator.SinglePage.IDataNavigator = base.DataNavigator;
@ -131,22 +140,22 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -131,22 +140,22 @@ namespace ICSharpCode.Reports.Core.Exporter
simpleContainer = table.Items[1] as ISimpleContainer;
base.SaveSectionSize(section.Size);
containerSize = simpleContainer.Size;
Console.WriteLine("datasection - NO grouping");
do {
Console.WriteLine("");
PrintHelper.AdjustSectionLocation(section);
CheckForPageBreak(section,simpleContainer,headerRow,exporterCollection);
FillRow(simpleContainer);
base.CurrentPosition = ConvertStandardRow (exporterCollection,section,simpleContainer);
FillRow(simpleContainer,base.DataNavigator);
// base.PrepareContainerForConverting(section,simpleContainer);
FireRowRendering(simpleContainer,base.DataNavigator);
base.PrepareContainerForConverting(section,simpleContainer);
base.CurrentPosition = ConvertStandardRow (exporterCollection,simpleContainer);
simpleContainer.Size = containerSize;
section.Size = base.RestoreSectionSize;
Console.WriteLine("");
}
while (base.DataNavigator.MoveNext());
Console.WriteLine("");
Console.WriteLine("END of datasection - NO grouping");
base.DataNavigator.Reset();
base.DataNavigator.MoveNext();
SectionBounds.ReportFooterRectangle = new Rectangle(SectionBounds.ReportFooterRectangle.Left,
@ -168,7 +177,7 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -168,7 +177,7 @@ namespace ICSharpCode.Reports.Core.Exporter
{
base.CurrentPosition = ForcePageBreak(exporterCollection,section);
base.CurrentPosition = ConvertStandardRow (exporterCollection,section,headerRow);
base.CurrentPosition = ConvertStandardRow (exporterCollection,headerRow);
}
}
@ -208,9 +217,11 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -208,9 +217,11 @@ namespace ICSharpCode.Reports.Core.Exporter
} else {
rowSize = groupedRow[0].Size;
FillRow(groupedRow[0],base.DataNavigator);
base.FireGroupHeaderRendering(groupedRow[0]);
retVal = ConvertStandardRow(exportList,section,groupedRow[0]);
retVal = ConvertStandardRow(exportList,groupedRow[0]);
groupedRow[0].Size = rowSize;
}
return retVal;

11
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/DataPageBuilder.cs

@ -19,8 +19,8 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -19,8 +19,8 @@ namespace ICSharpCode.Reports.Core.Exporter
#region Constructor
public static IReportCreator CreateInstance(IReportModel reportModel, IDataManager dataManager,ILayouter layouter)
public static IReportCreator CreateInstance(IReportModel reportModel, IDataManager dataManager)
// public static IReportCreator CreateInstance(IReportModel reportModel, IDataManager dataManager,ILayouter layouter)
{
if (reportModel == null) {
throw new ArgumentNullException("reportModel");
@ -28,15 +28,12 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -28,15 +28,12 @@ namespace ICSharpCode.Reports.Core.Exporter
if (dataManager == null) {
throw new ArgumentNullException("dataManager");
}
if (layouter == null) {
throw new ArgumentNullException("layouter");
}
DataPageBuilder instance = new DataPageBuilder(reportModel,dataManager,layouter);
DataPageBuilder instance = new DataPageBuilder(reportModel,dataManager);
return instance;
}
private DataPageBuilder (IReportModel reportModel,IDataManager dataManager,ILayouter layouter):base(reportModel,layouter)
private DataPageBuilder (IReportModel reportModel,IDataManager dataManager):base(reportModel)
{
this.dataManager = dataManager;
}

3
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportRenderer/BaseExportRenderer.cs

@ -11,6 +11,7 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer{ @@ -11,6 +11,7 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer{
/// </summary>
///
public class BaseExportRenderer{
PagesCollection pages;
public BaseExportRenderer ()
@ -46,6 +47,7 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer{ @@ -46,6 +47,7 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer{
{
}
public virtual void RenderOutput ()
{
}
@ -54,6 +56,7 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer{ @@ -54,6 +56,7 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer{
{
}
public PagesCollection Pages
{
get {if (this.pages == null) {

19
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportRenderer/PreviewRenderer.cs

@ -11,10 +11,8 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer @@ -11,10 +11,8 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer
/// </summary>
public class PreviewRenderer:BaseExportRenderer
internal class PreviewRenderer:BaseExportRenderer
{
Graphics graphics;
ExporterPage page;
#region Constructor
@ -29,23 +27,18 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer @@ -29,23 +27,18 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer
public override void RenderOutput(){
base.RenderOutput();
if (this.graphics != null) {
BaseExportRenderer.DrawItems(this.graphics,this.page.Items);
if (this.Graphics != null) {
BaseExportRenderer.DrawItems(this.Graphics,this.Page.Items);
} else {
return;
}
}
public Graphics Graphics {
get { return this.graphics;}
set { this.graphics = value;}
}
public Graphics Graphics {get;set;}
public ExporterPage Page {
get {return this.page;}
set { page = value; }
}
public ExporterPage Page {get;set;}
}
}

26
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/ExportRenderer/PrintRenderer.cs

@ -10,7 +10,7 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer{ @@ -10,7 +10,7 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer{
/// Description of PrintRenderer.
/// </summary>
public class PrintRenderer:BaseExportRenderer,IDisposable{
PrintDocument doc;
int currentPage;
PrinterSettings printerSettings;
@ -43,11 +43,14 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer{ @@ -43,11 +43,14 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer{
private PrintRenderer(PagesCollection pages):base(pages)
{
doc = new PrintDocument();
this.PrintDocument = new PrintDocument();
this.PrintDocument.PrinterSettings = new PrinterSettings();
// doc.QueryPageSettings += new QueryPageSettingsEventHandler(OnQueryPage);
doc.BeginPrint += new PrintEventHandler(OnBeginPrint);
doc.EndPrint += new PrintEventHandler(OnEndPrint);
doc.PrintPage += new PrintPageEventHandler(OnPrintPage);
this.PrintDocument.BeginPrint += new PrintEventHandler(OnBeginPrint);
this.PrintDocument.EndPrint += new PrintEventHandler(OnEndPrint);
this.PrintDocument.PrintPage += new PrintPageEventHandler(OnPrintPage);
}
#endregion
@ -87,22 +90,25 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer{ @@ -87,22 +90,25 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer{
{
base.RenderOutput();
if (this.printerSettings != null) {
doc.PrinterSettings = this.printerSettings;
this.PrintDocument.PrinterSettings = this.printerSettings;
}
doc.Print();
}
public override void End()
{
base.End();
}
public PrintDocument PrintDocument {get;private set;}
internal PrinterSettings PrinterSettings
{
set { printerSettings = value; }
}
#region IDisposable
public void Dispose()
@ -116,10 +122,10 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer{ @@ -116,10 +122,10 @@ namespace ICSharpCode.Reports.Core.Exporter.ExportRenderer{
if (disposing)
{
// free managed resources
if (this.doc != null)
if (this.PrintDocument != null)
{
doc.Dispose();
doc = null;
this.PrintDocument.Dispose();
this.PrintDocument = null;
}
}
}

7
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Exporter/FormPageBuilder.cs

@ -16,18 +16,17 @@ namespace ICSharpCode.Reports.Core.Exporter @@ -16,18 +16,17 @@ namespace ICSharpCode.Reports.Core.Exporter
#region Constructure
public static FormPageBuilder CreateInstance(IReportModel reportModel,ILayouter layouter)
public static FormPageBuilder CreateInstance(IReportModel reportModel)
{
if (reportModel == null) {
throw new ArgumentNullException("reportModel");
}
FormPageBuilder instance = new FormPageBuilder(reportModel,layouter);
FormPageBuilder instance = new FormPageBuilder(reportModel);
return instance;
}
private FormPageBuilder(IReportModel reportModel,ILayouter layouter):base(reportModel,layouter)
private FormPageBuilder(IReportModel reportModel):base(reportModel)
{
}

30
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Interfaces/IHierarchyInterfaces.cs

@ -1,30 +0,0 @@ @@ -1,30 +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)
//ToDo with NET2.0 change this Interface to the one provided by NET2.0
using System;
namespace ICSharpCode.Reports.Core {
public interface IHierarchyData{
IndexList GetChildren {
get;
}
bool HasChildren {
get;
}
object Item {
get;
}
string Path {
get;
}
string Type {
get;
}
}
}

56
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/Printing/ExtendedPrintController.cs

@ -1,56 +0,0 @@ @@ -1,56 +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.Drawing.Printing;
namespace ICSharpCode.Reports.Core
{
/// <summary>
/// Description of ExtendedPrintController.
/// </summary>
public class ExtendedPrintController:PrintController
{
PrintController controller;
public ExtendedPrintController(PrintController controller):base()
{
if (controller == null) {
throw new ArgumentNullException("controller");
}
this.controller = controller;
}
public override System.Drawing.Graphics OnStartPage(PrintDocument document, PrintPageEventArgs e)
{
System.Diagnostics.Trace.WriteLine("ExtPrintcontroller OnStartPage");
return this.controller.OnStartPage (document, e);
}
public override void OnStartPrint(PrintDocument document, PrintEventArgs e)
{
System.Diagnostics.Trace.WriteLine("ExtPrintcontroller OnStartPrint");
this.controller.OnStartPrint(document, e);
}
public override void OnEndPage(PrintDocument document, PrintPageEventArgs e)
{
System.Diagnostics.Trace.WriteLine("ExtPrintcontroller OnEndPage");
this.controller.OnEndPage (document, e);
}
public override void OnEndPrint(PrintDocument document, PrintEventArgs e)
{
System.Diagnostics.Trace.WriteLine("ExtPrintcontroller OnEndprint");
PreviewPrintController c = this.controller as PreviewPrintController;
if (c != null) {
PreviewPageInfo[] ppia = c.GetPreviewPageInfo();
}
this.controller.OnEndPrint(document,e);
}
}
}

15
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/ReportEngine.cs

@ -21,7 +21,6 @@ namespace ICSharpCode.Reports.Core { @@ -21,7 +21,6 @@ namespace ICSharpCode.Reports.Core {
public class ReportEngine : IDisposable
{
private PreviewControl previewControl;
// private IDataManager dataMan;
/// <summary>
/// This event is fired before a Section is Rendered, you can use
@ -470,13 +469,12 @@ namespace ICSharpCode.Reports.Core { @@ -470,13 +469,12 @@ namespace ICSharpCode.Reports.Core {
IReportModel reportModel = LoadReportModel (fileName);
IReportCreator builder = null;
Layouter layouter = new Layouter();
if (reportModel.DataModel == GlobalEnums.PushPullModel.FormSheet) {
builder = FormPageBuilder.CreateInstance(reportModel,layouter);
builder = FormPageBuilder.CreateInstance(reportModel);
} else {
CheckForParameters(reportModel,reportParameters);
IDataManager dataMan = DataManagerFactory.CreateDataManager(reportModel,reportParameters);
builder = DataPageBuilder.CreateInstance(reportModel, dataMan,layouter);
builder = DataPageBuilder.CreateInstance(reportModel, dataMan);
}
return builder;
}
@ -494,8 +492,7 @@ namespace ICSharpCode.Reports.Core { @@ -494,8 +492,7 @@ namespace ICSharpCode.Reports.Core {
throw new ArgumentNullException("reportModel");
}
IDataManager dataMan = DataManagerFactory.CreateDataManager(reportModel,(ReportParameters)null);
Layouter layouter = new Layouter();
IReportCreator builder = DataPageBuilder.CreateInstance(reportModel, dataMan,layouter);
IReportCreator builder = DataPageBuilder.CreateInstance(reportModel, dataMan);
return builder;
}
@ -544,8 +541,7 @@ namespace ICSharpCode.Reports.Core { @@ -544,8 +541,7 @@ namespace ICSharpCode.Reports.Core {
IDataManager dataMan = DataManager.CreateInstance(dataTable,reportModel.ReportSettings);
if (dataMan != null)
{
Layouter layouter = new Layouter();
return DataPageBuilder.CreateInstance(reportModel, dataMan,layouter);
return DataPageBuilder.CreateInstance(reportModel, dataMan);
} else {
throw new MissingDataManagerException();
}
@ -572,8 +568,7 @@ namespace ICSharpCode.Reports.Core { @@ -572,8 +568,7 @@ namespace ICSharpCode.Reports.Core {
ReportEngine.CheckForParameters(reportModel,reportParameters);
IDataManager dataMan = DataManager.CreateInstance(list,reportModel.ReportSettings);
if (dataMan != null) {
Layouter layouter = new Layouter();
return DataPageBuilder.CreateInstance(reportModel,dataMan,layouter);
return DataPageBuilder.CreateInstance(reportModel,dataMan);
} else {
throw new MissingDataManagerException();
}

11
src/AddIns/Misc/Reports/ICSharpCode.Reports.Core/Project/ReportViewer/ReportViewer.cs

@ -23,7 +23,7 @@ namespace ICSharpCode.Reports.Core.ReportViewer @@ -23,7 +23,7 @@ namespace ICSharpCode.Reports.Core.ReportViewer
public partial class PreviewControl
{
public event EventHandler <EventArgs> PreviewLayoutChanged;
// public event EventHandler<SectionRenderEventArgs> SectionRendering;
private float zoom;
@ -151,9 +151,7 @@ namespace ICSharpCode.Reports.Core.ReportViewer @@ -151,9 +151,7 @@ namespace ICSharpCode.Reports.Core.ReportViewer
private void RunFormSheet (ReportModel reportModel)
{
Layouter layouter = new Layouter();
IReportCreator reportCreator = FormPageBuilder.CreateInstance(reportModel,layouter);
IReportCreator reportCreator = FormPageBuilder.CreateInstance(reportModel);
reportCreator.SectionRendering += new EventHandler<SectionRenderEventArgs>(PushPrinting);
reportCreator.PageCreated += OnPageCreated;
reportCreator.BuildExportList();
@ -163,8 +161,7 @@ namespace ICSharpCode.Reports.Core.ReportViewer @@ -163,8 +161,7 @@ namespace ICSharpCode.Reports.Core.ReportViewer
private void RunDataReport (ReportModel reportModel,IDataManager data)
{
ILayouter layouter = new Layouter();
IReportCreator reportCreator = DataPageBuilder.CreateInstance(reportModel,data,layouter);
IReportCreator reportCreator = DataPageBuilder.CreateInstance(reportModel,data);
reportCreator.SectionRendering += new EventHandler<SectionRenderEventArgs>(PushPrinting);
reportCreator.GroupHeaderRendering += new EventHandler<GroupHeaderEventArgs>(GroupHeaderRendering);
reportCreator.GroupFooterRendering += GroupFooterRendering;
@ -195,7 +192,7 @@ namespace ICSharpCode.Reports.Core.ReportViewer @@ -195,7 +192,7 @@ namespace ICSharpCode.Reports.Core.ReportViewer
private void PushPrinting (object sender,SectionRenderEventArgs e)
{
string sectionName = e.Section.Name;
// string sectionName = e.Section.Name;
/*
if (sectionName == ReportSectionNames.ReportHeader) {
Console.WriteLine("PushPrinting :" + ReportSectionNames.ReportHeader);

2
src/AddIns/Misc/SearchAndReplace/Project/Engine/Search.cs

@ -145,7 +145,7 @@ namespace SearchAndReplace @@ -145,7 +145,7 @@ namespace SearchAndReplace
if (documentIterator.MoveForward()) {
info = documentIterator.Current;
// document is valid for searching -> set iterator & fileName
if (info != null && info.EndOffset >= 0 && info.EndOffset < info.Document.TextLength) {
if (info != null && info.EndOffset >= 0 && info.EndOffset <= info.Document.TextLength) {
textIterator = textIteratorBuilder.BuildTextIterator(info);
} else {
textIterator = null;

5
src/AddIns/Misc/SearchAndReplace/Project/Engine/SearchStrategy/BruteForceSearchStrategy.cs

@ -54,7 +54,10 @@ namespace SearchAndReplace @@ -54,7 +54,10 @@ namespace SearchAndReplace
int InternalFindNext(ITextIterator textIterator, int offset, int length)
{
while (textIterator.MoveAhead(1) && TextSelection.IsInsideRange(textIterator.Position, offset, length)) {
while (textIterator.MoveAhead(1)) {
if (textIterator.Position >= offset + length) {
textIterator.Position = offset;
}
if (SearchOptions.MatchCase ? MatchCaseSensitive(textIterator.Document, textIterator.Position, searchPattern) : MatchCaseInsensitive(textIterator.Document, textIterator.Position, searchPattern)) {
if (!SearchOptions.MatchWholeWord || IsWholeWordAt(textIterator.Document, textIterator.Position, searchPattern.Length)) {
if (TextSelection.IsInsideRange(textIterator.Position + searchPattern.Length - 1, offset, length)) {

5
src/AddIns/Misc/SearchAndReplace/Project/Engine/SearchStrategy/RegExSearchStrategy.cs

@ -58,7 +58,10 @@ namespace SearchAndReplace @@ -58,7 +58,10 @@ namespace SearchAndReplace
{
string document = textIterator.Document.GetText(0, textIterator.Document.TextLength);
while (textIterator.MoveAhead(1) && TextSelection.IsInsideRange(textIterator.Position, offset, length)) {
while (textIterator.MoveAhead(1)) {
if (textIterator.Position >= offset + length) {
textIterator.Position = offset;
}
Match m = regex.Match(document, textIterator.Position);
if (m == null || !m.Success) {
while (textIterator.Position < document.Length - 1) {

5
src/AddIns/Misc/SearchAndReplace/Project/Engine/SearchStrategy/WildcardSearchStrategy.cs

@ -145,7 +145,10 @@ namespace SearchAndReplace @@ -145,7 +145,10 @@ namespace SearchAndReplace
int InternalFindNext(ITextIterator textIterator, int offset, int length)
{
while (textIterator.MoveAhead(1) && TextSelection.IsInsideRange(textIterator.Position, offset, length)) {
while (textIterator.MoveAhead(1)) {
if (textIterator.Position >= offset + length) {
textIterator.Position = offset;
}
int position = textIterator.Position;
if (Match(textIterator.Document, position, !SearchOptions.MatchCase, 0)) {
if (!SearchOptions.MatchWholeWord || SearchReplaceUtilities.IsWholeWordAt(textIterator.Document, position, curMatchEndOffset - position)) {

35
src/Libraries/AvalonDock/AvalonDock.Themes/Themes/ExpressionDark.xaml

@ -414,7 +414,10 @@ @@ -414,7 +414,10 @@
<ControlTemplate.Triggers>
<Trigger Property ="CanAutohide" Value="False">
<Setter Property="Visibility" Value="Collapsed" TargetName="btnPinAutoHide"/>
</Trigger>
</Trigger>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=SelectedItem.IsCloseable}" Value="false">
<Setter Property="Visibility" TargetName="PART_CloseButton" Value="Collapsed"/>
</DataTrigger>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=SelectedItem.State}" Value="AutoHide">
<Setter Property="LayoutTransform" TargetName="btnPinAutoHide">
<Setter.Value>
@ -428,6 +431,36 @@ @@ -428,6 +431,36 @@
</Setter>
</Style>
<!-- FloatingDockablePane -->
<Style x:Key="{x:Type ad:FloatingDockablePane}" TargetType="{x:Type ad:FloatingDockablePane}" >
<Setter Property="Background" Value="{DynamicResource {ComponentResourceKey {x:Type ad:DockingManager}, {x:Static ad:AvalonDockBrushes.DefaultBackgroundBrush}}}"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ad:DockablePane}">
<Border Focusable="False"
Background="{TemplateBinding Background}">
<Border Background="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=SelectedItem.Background}"
>
<ContentPresenter
x:Name="PART_SelectedContent"
Content="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=SelectedItem.Content}"
KeyboardNavigation.TabNavigation="Local"
KeyboardNavigation.DirectionalNavigation="Contained"
KeyboardNavigation.TabIndex="1"
/>
</Border>
</Border>
<ControlTemplate.Triggers>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!--DocumentTabItemStyle-->
<Style x:Key="DocumentTabItemStyle" TargetType="{x:Type ad:ManagedContent}">
<Setter Property="Template">

14
src/Libraries/AvalonDock/AvalonDock.Themes/Themes/dev2010.xaml

@ -388,7 +388,7 @@ @@ -388,7 +388,7 @@
</Setter>
</Style>
<!--DockablePane-->
<!--DockablePane -->
<Style x:Key="{x:Type ad:DockablePane}" TargetType="{x:Type ad:DockablePane}">
<Setter Property="Background" Value="{DynamicResource {ComponentResourceKey {x:Type ad:DockingManager}, {x:Static ad:AvalonDockBrushes.DefaultBackgroundBrush}}}"/>
<Setter Property="Template">
@ -410,7 +410,7 @@ @@ -410,7 +410,7 @@
CornerRadius="2,2,0,0"
Height="18">
<DockPanel LastChildFill="True">
<Button DockPanel.Dock="Right" Style="{StaticResource PaneHeaderCommandStyle}"
<Button x:Name="btnClose" DockPanel.Dock="Right" Style="{StaticResource PaneHeaderCommandStyle}"
Command="ad:ManagedContentCommands.Close"
ToolTip="{x:Static adRes:Resources.DockablePaneCommands_Close}"
CommandTarget="{TemplateBinding SelectedItem}"
@ -478,6 +478,9 @@ @@ -478,6 +478,9 @@
<Trigger Property ="HasSingleItem" Value="True">
<Setter Property="Visibility" Value="Collapsed" TargetName="PART_Tabs"/>
</Trigger>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=SelectedItem.IsCloseable}" Value="false">
<Setter Property="Visibility" TargetName="btnClose" Value="Collapsed"/>
</DataTrigger>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=SelectedItem.State}" Value="AutoHide">
<Setter Property="LayoutTransform" TargetName="btnPinAutoHide">
<Setter.Value>
@ -490,7 +493,12 @@ @@ -490,7 +493,12 @@
</Setter.Value>
</Setter>
</Style>
<!-- FloatingDockablePane -->
<Style x:Key="{x:Type ad:FloatingDockablePane}" TargetType="{x:Type ad:FloatingDockablePane}" BasedOn="{StaticResource {x:Type ad:DockablePane}}">
</Style>
<!--DocumentTabItemStyle-->
<Style x:Key="DocumentTabItemStyle" TargetType="{x:Type ad:ManagedContent}">
<Setter Property="Template">

70
src/Libraries/AvalonDock/AvalonDock/DockingManager.cs

@ -993,33 +993,6 @@ namespace AvalonDock @@ -993,33 +993,6 @@ namespace AvalonDock
}
#endregion
//#region Commands
//private static object syncRoot = new object();
//private static RoutedUICommand showNavigatorCommand = null;
///// <summary>
///// Get the command to show navigator window
///// </summary>
//public static RoutedUICommand ShowNavigatorWindowCommand
//{
// get
// {
// lock (syncRoot)
// {
// if (null == showNavigatorCommand)
// {
// showNavigatorCommand = new RoutedUICommand("S_how navigator window", "Navigator", typeof(DockingManager));
// showNavigatorCommand.InputGestures.Add(new KeyGesture(Key.Tab, ModifierKeys.Control));
// }
// }
// return showNavigatorCommand;
// }
//}
NavigatorWindow navigatorWindow = null;
void ShowNavigatorWindow()
@ -1942,7 +1915,8 @@ namespace AvalonDock @@ -1942,7 +1915,8 @@ namespace AvalonDock
//refresh arrangements traversing bottom-up visual tree
FrameworkElement parentElement = pane.Parent as FrameworkElement;
while (parentElement != null)
// Daniel Grunwald 2010/12/19: stop at 'this' to fix SD-1786
while (parentElement != null && parentElement != this)
{
parentElement.InvalidateMeasure();
parentElement = parentElement.Parent as FrameworkElement;
@ -1954,42 +1928,6 @@ namespace AvalonDock @@ -1954,42 +1928,6 @@ namespace AvalonDock
#endregion
#region Hide/Show contents
// #region HiddenContents
// /// <summary>
// /// HiddenContents Read-Only Dependency Property
// /// </summary>
// private static readonly DependencyPropertyKey HiddenContentsPropertyKey
// = DependencyProperty.RegisterReadOnly("HiddenContents", typeof(ManagedContentCollection<DockableContent>), typeof(DockingManager),
// new FrameworkPropertyMetadata((ManagedContentCollection<DockableContent>)null));
// public static readonly DependencyProperty HiddenContentsProperty
// = HiddenContentsPropertyKey.DependencyProperty;
// /// <summary>
// /// Gets the HiddenContents property. This dependency property
// /// returns the list of <see cref="DockableContent"/> object that are in hidden state.
// /// </summary>
// public ManagedContentCollection<DockableContent> HiddenContents
// {
// get { return (ManagedContentCollection<DockableContent>)GetValue(HiddenContentsProperty); }
// protected set { SetValue(HiddenContentsPropertyKey, value); }
// }
// #endregion
//#if DEBUG
// internal void CheckHiddenState(DockableContent contentToCheck)
// {
// if (contentToCheck.State == DockableContentState.Hidden)
// Debug.Assert(HiddenContents.Contains(contentToCheck));
// else
// Debug.Assert(!HiddenContents.Contains(contentToCheck));
// }
//#endif
/// <summary>
/// Hide a dockable content removing it from its container <see cref="Pane"/>
/// </summary>
@ -2539,10 +2477,6 @@ namespace AvalonDock @@ -2539,10 +2477,6 @@ namespace AvalonDock
}
#endregion
//#if DEBUG
// CheckHiddenState(content);
//#endif
}
#endregion

7
src/Libraries/AvalonDock/AvalonDock/DocumentPane.cs

@ -419,14 +419,15 @@ namespace AvalonDock @@ -419,14 +419,15 @@ namespace AvalonDock
{
if (Items.Count == 0)
{
bool isMainDocPaneToBeClose = IsMainDocumentPane.HasValue &&
bool isMainDocPaneToBeClosed = IsMainDocumentPane.HasValue &&
IsMainDocumentPane.Value;
if (isMainDocPaneToBeClose)
if (isMainDocPaneToBeClosed)
{
DockingManager manager = GetManager();
DocumentPane candidateNewMainDocPane = manager.FindAnotherLogicalChildContained<DocumentPane>(this);
if (candidateNewMainDocPane != null)
if (candidateNewMainDocPane != null &&
candidateNewMainDocPane.GetManager() == this.GetManager())
{
ResizingPanel containerPanel = Parent as ResizingPanel;
if (containerPanel != null)

2
src/Libraries/AvalonDock/AvalonDock/FloatingDockablePane.cs

@ -37,7 +37,7 @@ namespace AvalonDock @@ -37,7 +37,7 @@ namespace AvalonDock
{
static FloatingDockablePane()
{
//DefaultStyleKeyProperty.OverrideMetadata(typeof(FloatingDockablePane), new FrameworkPropertyMetadata(typeof(FloatingDockablePane)));
DefaultStyleKeyProperty.OverrideMetadata(typeof(FloatingDockablePane), new FrameworkPropertyMetadata(typeof(FloatingDockablePane)));
//by design avoid style change
Pane.ShowHeaderProperty.OverrideMetadata(typeof(FloatingDockablePane), new FrameworkPropertyMetadata(false));

54
src/Libraries/AvalonDock/AvalonDock/FloatingWindow.cs

@ -56,8 +56,6 @@ namespace AvalonDock @@ -56,8 +56,6 @@ namespace AvalonDock
{
Window.ShowInTaskbarProperty.OverrideMetadata(typeof(FloatingWindow), new FrameworkPropertyMetadata(false));
Window.WindowStyleProperty.OverrideMetadata(typeof(FloatingWindow), new FrameworkPropertyMetadata(WindowStyle.ToolWindow));
//DefaultStyleKeyProperty.OverrideMetadata(typeof(FloatingWindow), new FrameworkPropertyMetadata(typeof(FloatingWindow)));
}
@ -142,56 +140,6 @@ namespace AvalonDock @@ -142,56 +140,6 @@ namespace AvalonDock
}
#endregion
//#region HostedPane
///// <summary>
///// HostedPane Read-Only Dependency Property
///// </summary>
//private static readonly DependencyPropertyKey HostedPanePropertyKey
// = DependencyProperty.RegisterReadOnly("HostedPane", typeof(Pane), typeof(FloatingWindow),
// new FrameworkPropertyMetadata((Pane)null,
// new PropertyChangedCallback(OnHostedPaneChanged)));
//public static readonly DependencyProperty HostedPaneProperty
// = HostedPanePropertyKey.DependencyProperty;
///// <summary>
///// Gets the HostedPane property. This dependency property
///// indicates the hosted pane contained into the floating window (an hosted pane can be of type <see cref="FloatingDocumentPane"/> or type <see cref="FloatingDockablePane"/>.
///// </summary>
//public Pane HostedPane
//{
// get { return (Pane)GetValue(HostedPaneProperty); }
//}
///// <summary>
///// Provides a secure method for setting the HostedPane property.
///// This dependency property indicates the hosted pane contained into the floating window (an hosted pane can be of type <see cref="FloatingDocumentPane"/> or type <see cref="FloatingDockablePane"/>.
///// </summary>
///// <param name="value">The new value for the property.</param>
//protected void SetHostedPane(Pane value)
//{
// SetValue(HostedPanePropertyKey, value);
//}
///// <summary>
///// Handles changes to the HostedPane property.
///// </summary>
//private static void OnHostedPaneChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
//{
// ((FloatingWindow)d).OnHostedPaneChanged(e);
//}
///// <summary>
///// Provides derived classes an opportunity to handle changes to the HostedPane property.
///// </summary>
//protected virtual void OnHostedPaneChanged(DependencyPropertyChangedEventArgs e)
//{
//}
//#endregion
protected override void OnInitialized(EventArgs e)
{
@ -595,8 +543,6 @@ namespace AvalonDock @@ -595,8 +543,6 @@ namespace AvalonDock
}
#endregion
internal void CheckContents()
{
if (HostedPane == null)

16
src/Libraries/AvalonDock/AvalonDock/FlyoutPaneWindow.cs

@ -645,7 +645,7 @@ namespace AvalonDock @@ -645,7 +645,7 @@ namespace AvalonDock
Height = 0.0;
animTimer.Stop();
if (!IsClosed)
ClosePane();
Close();
IsClosing = false;
}
};
@ -900,12 +900,20 @@ namespace AvalonDock @@ -900,12 +900,20 @@ namespace AvalonDock
if (!fl.IsVisible)
continue;
//Issue 11545, thx to SrdjanPolic
Rect flRect = new Rect(
PointFromScreen(new Point(fl.Left, fl.Top)),
PointFromScreen(new Point(fl.Left + fl.Width, fl.Top + fl.Height)));
PointFromScreen(new Point(fl.Left, fl.Top)),
PointFromScreen(new Point(fl.Left + fl.RestoreBounds.Width, fl.Top + fl.RestoreBounds.Height)));
if (flRect.IntersectsWith(wndRect))
if (flRect.IntersectsWith(wndRect) && fl.AllowsTransparency == false)
otherRects.Add(Rect.Intersect(flRect, wndRect));
//Rect flRect = new Rect(
// PointFromScreen(new Point(fl.Left, fl.Top)),
// PointFromScreen(new Point(fl.Left + fl.Width, fl.Top + fl.Height)));
//if (flRect.IntersectsWith(wndRect))
// otherRects.Add(Rect.Intersect(flRect, wndRect));
}
IntPtr hDestRegn = InteropHelper.CreateRectRgn(

3
src/Libraries/AvalonDock/AvalonDock/LogicalTreeAdapter.cs

@ -42,6 +42,9 @@ namespace AvalonDock @@ -42,6 +42,9 @@ namespace AvalonDock
{
foreach (var child in adapter.Children())
{
if (child.Item is DockingManager)
continue;
yield return child;
foreach (var grandChild in child.Descendants())

32
src/Libraries/AvalonDock/AvalonDock/NavigatorWindow.cs

@ -186,6 +186,9 @@ namespace AvalonDock @@ -186,6 +186,9 @@ namespace AvalonDock
DockableContents.MoveCurrentTo(null);
Loaded += new RoutedEventHandler(NavigatorWindow_Loaded);
if (Documents.IsEmpty)
MoveToOtherList();
}
#endregion
@ -221,35 +224,6 @@ namespace AvalonDock @@ -221,35 +224,6 @@ namespace AvalonDock
return false;
}
//protected override void OnPreviewKeyDown(KeyEventArgs e)
//{
// if (e.Key == Key.Tab)
// {
// e.Handled = true;
// MoveToNextContent();
// }
// else
// Hide();
// base.OnKeyDown(e);
//}
//protected override void OnPreviewKeyUp(KeyEventArgs e)
//{
// if (e.Key == Key.Tab)
// {
// e.Handled = true;
// }
// else
// {
// var docSelected = (Documents.CurrentItem as NavigatorWindowDocumentItem).ItemContent as DocumentContent;
// docSelected.Activate();
// Hide();
// }
// base.OnPreviewKeyUp(e);
//}
internal static bool IsKeyHandled(Key key)
{
return key == Key.Tab || key == Key.Down ||

4
src/Libraries/AvalonDock/AvalonDock/Properties/AssemblyInfo.cs

@ -51,5 +51,5 @@ using System.Windows; @@ -51,5 +51,5 @@ using System.Windows;
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.3.3571")]
[assembly: AssemblyFileVersion("1.3.3571")]
[assembly: AssemblyVersion("1.3.3585")]
[assembly: AssemblyFileVersion("1.3.3585")]

5
src/Libraries/AvalonDock/AvalonDock/Resources/DockablePaneStyles.xaml

@ -229,4 +229,9 @@ @@ -229,4 +229,9 @@
</Setter.Value>
</Setter>
</Style>
<!-- FloatingDockablePane -->
<Style x:Key="{x:Type ad:FloatingDockablePane}" TargetType="{x:Type ad:FloatingDockablePane}" BasedOn="{StaticResource {x:Type ad:DockablePane}}">
</Style>
</ResourceDictionary>

14
src/Libraries/AvalonDock/AvalonDock/Themes/aero.normalcolor.xaml

@ -119,7 +119,7 @@ @@ -119,7 +119,7 @@
BorderBrush="DarkGray"
Height="18">
<DockPanel LastChildFill="True">
<Button DockPanel.Dock="Right" Style="{StaticResource PaneHeaderCommandStyle}" Command="ad:ManagedContentCommands.Close" CommandTarget="{TemplateBinding SelectedItem}"
<Button x:Name="btnClose" DockPanel.Dock="Right" Style="{StaticResource PaneHeaderCommandStyle}" Command="ad:ManagedContentCommands.Close" CommandTarget="{TemplateBinding SelectedItem}"
ToolTip="{x:Static adRes:Resources.DockablePaneCommands_Close}"
Width="15" Height="15" Margin="2,0,2,0" VerticalAlignment="Center">
<ad:ImageEx Source="/AvalonDock;component/resources/Images/PinClose.png" Width="13" />
@ -181,6 +181,9 @@ @@ -181,6 +181,9 @@
<Setter Property="Background" Value="{DynamicResource {ComponentResourceKey {x:Type ad:DockingManager}, {x:Static ad:AvalonDockBrushes.DockablePaneTitleBackgroundSelected}}}" TargetName="PART_Header"/>
<Setter Property="Foreground" Value="{DynamicResource {ComponentResourceKey {x:Type ad:DockingManager}, {x:Static ad:AvalonDockBrushes.DockablePaneTitleForegroundSelected}}}" TargetName="paneTitle"/>
</DataTrigger>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=SelectedItem.IsCloseable}" Value="false">
<Setter Property="Visibility" TargetName="btnClose" Value="Collapsed"/>
</DataTrigger>
<Trigger Property ="ShowHeader" Value="False">
<Setter Property="Visibility" Value="Collapsed" TargetName="PART_Header"/>
<Setter Property="BorderThickness" Value="0" TargetName="intContentBorder"/>
@ -204,8 +207,13 @@ @@ -204,8 +207,13 @@
</Setter.Value>
</Setter>
</Style>
<!--DocumentTabItemStyle-->
<!-- FloatingDockablePane -->
<Style x:Key="{x:Type ad:FloatingDockablePane}" TargetType="{x:Type ad:FloatingDockablePane}" BasedOn="{StaticResource {x:Type ad:DockablePane}}">
</Style>
<!--DocumentTabItemStyle-->
<Style x:Key="DocumentTabItemStyle" TargetType="{x:Type ad:ManagedContent}">
<Setter Property="Background"
Value="Transparent"/>

10
src/Libraries/AvalonDock/AvalonDock/Themes/classic.xaml

@ -111,7 +111,7 @@ @@ -111,7 +111,7 @@
BorderBrush="DarkGray"
Height="18">
<DockPanel LastChildFill="True">
<Button DockPanel.Dock="Right" Style="{StaticResource PaneHeaderCommandStyle}" Command="ad:ManagedContentCommands.Close" CommandTarget="{TemplateBinding SelectedItem}"
<Button x:Name="btnClose" DockPanel.Dock="Right" Style="{StaticResource PaneHeaderCommandStyle}" Command="ad:ManagedContentCommands.Close" CommandTarget="{TemplateBinding SelectedItem}"
Width="15" Height="15" Margin="2,0,2,0" VerticalAlignment="Center">
<!--<ad:AlignedImage>-->
<ad:ImageEx x:Name="IMG_Close" Source="/AvalonDock;component/resources/Images/Classic/PinClose.png" Width="13" />
@ -185,6 +185,9 @@ @@ -185,6 +185,9 @@
<Trigger Property ="ShowTabs" Value="False">
<Setter Property="Visibility" Value="Collapsed" TargetName="PART_Tabs"/>
</Trigger>
<DataTrigger Binding="{Binding RelativeSource={RelativeSource Self}, Path=SelectedItem.IsCloseable}" Value="false">
<Setter Property="Visibility" TargetName="btnClose" Value="Collapsed"/>
</DataTrigger>
<Trigger Property ="HasSingleItem" Value="True">
<Setter Property="Visibility" Value="Collapsed" TargetName="PART_Tabs"/>
<Setter Property="Visibility" Value="Collapsed" TargetName="paneTabsPanel"/>
@ -202,6 +205,11 @@ @@ -202,6 +205,11 @@
</Setter>
</Style>
<!-- FloatingDockablePane -->
<Style x:Key="{x:Type ad:FloatingDockablePane}" TargetType="{x:Type ad:FloatingDockablePane}" BasedOn="{StaticResource {x:Type ad:DockablePane}}">
</Style>
<!--DocumentTabItemStyle-->
<Style x:Key="DocumentTabItemStyle" TargetType="{x:Type ad:ManagedContent}">
<Setter Property="Background"

29
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Document/ITextSource.cs

@ -43,6 +43,15 @@ namespace ICSharpCode.AvalonEdit.Document @@ -43,6 +43,15 @@ namespace ICSharpCode.AvalonEdit.Document
/// it doesn't require creating a String object.</remarks>
char GetCharAt(int offset);
/// <summary>
/// Gets the index of the first occurrence of any character in the specified array.
/// </summary>
/// <param name="anyOf"></param>
/// <param name="startIndex">Start index of the search.</param>
/// <param name="count">Length of the area to search.</param>
/// <returns>The first index where any character was found; or -1 if no occurrence was found.</returns>
int IndexOfAny(char[] anyOf, int startIndex, int count);
/// <summary>
/// Retrieves the text for a portion of the document.
/// </summary>
@ -148,6 +157,14 @@ namespace ICSharpCode.AvalonEdit.Document @@ -148,6 +157,14 @@ namespace ICSharpCode.AvalonEdit.Document
{
return CreateSnapshot().CreateReader();
}
/// <inheritdoc/>
public int IndexOfAny(char[] anyOf, int startIndex, int count)
{
int offset = viewedSegment.Offset;
int result = baseTextSource.IndexOfAny(anyOf, startIndex + offset, count);
return result >= 0 ? result - offset : result;
}
}
/// <summary>
@ -212,6 +229,12 @@ namespace ICSharpCode.AvalonEdit.Document @@ -212,6 +229,12 @@ namespace ICSharpCode.AvalonEdit.Document
{
return new StringTextSource(text.Substring(offset, length));
}
/// <inheritdoc/>
public int IndexOfAny(char[] anyOf, int startIndex, int count)
{
return text.IndexOfAny(anyOf, startIndex, count);
}
}
/// <summary>
@ -287,5 +310,11 @@ namespace ICSharpCode.AvalonEdit.Document @@ -287,5 +310,11 @@ namespace ICSharpCode.AvalonEdit.Document
{
return new RopeTextSource(rope.GetRange(offset, length));
}
/// <inheritdoc/>
public int IndexOfAny(char[] anyOf, int startIndex, int count)
{
return rope.IndexOfAny(anyOf, startIndex, count);
}
}
}

36
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Document/NewLineFinder.cs

@ -10,24 +10,21 @@ namespace ICSharpCode.AvalonEdit.Document @@ -10,24 +10,21 @@ namespace ICSharpCode.AvalonEdit.Document
{
static class NewLineFinder
{
static readonly char[] newline = { '\r', '\n' };
/// <summary>
/// Gets the location of the next new line character, or SimpleSegment.Invalid
/// if none is found.
/// </summary>
internal static SimpleSegment NextNewLine(string text, int offset)
{
for (int i = offset; i < text.Length; i++) {
switch (text[i]) {
case '\r':
if (i + 1 < text.Length) {
if (text[i + 1] == '\n') {
return new SimpleSegment(i, 2);
}
}
goto case '\n';
case '\n':
return new SimpleSegment(i, 1);
int pos = text.IndexOfAny(newline, offset);
if (pos >= 0) {
if (text[pos] == '\r') {
if (pos + 1 < text.Length && text[pos + 1] == '\n')
return new SimpleSegment(pos, 2);
}
return new SimpleSegment(pos, 1);
}
return SimpleSegment.Invalid;
}
@ -39,18 +36,13 @@ namespace ICSharpCode.AvalonEdit.Document @@ -39,18 +36,13 @@ namespace ICSharpCode.AvalonEdit.Document
internal static SimpleSegment NextNewLine(ITextSource text, int offset)
{
int textLength = text.TextLength;
for (int i = offset; i < textLength; i++) {
switch (text.GetCharAt(i)) {
case '\r':
if (i + 1 < textLength) {
if (text.GetCharAt(i + 1) == '\n') {
return new SimpleSegment(i, 2);
}
}
goto case '\n';
case '\n':
return new SimpleSegment(i, 1);
int pos = text.IndexOfAny(newline, offset, textLength - offset);
if (pos >= 0) {
if (text.GetCharAt(pos) == '\r') {
if (pos + 1 < textLength && text.GetCharAt(pos + 1) == '\n')
return new SimpleSegment(pos, 2);
}
return new SimpleSegment(pos, 1);
}
return SimpleSegment.Invalid;
}

6
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Document/OffsetChangeMap.cs

@ -110,8 +110,10 @@ namespace ICSharpCode.AvalonEdit.Document @@ -110,8 +110,10 @@ namespace ICSharpCode.AvalonEdit.Document
/// </summary>
public int GetNewOffset(int offset, AnchorMovementType movementType)
{
foreach (OffsetChangeMapEntry entry in this) {
offset = entry.GetNewOffset(offset, movementType);
IList<OffsetChangeMapEntry> items = this.Items;
int count = items.Count;
for (int i = 0; i < count; i++) {
offset = items[i].GetNewOffset(offset, movementType);
}
return offset;
}

6
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Document/TextDocument.cs

@ -155,6 +155,12 @@ namespace ICSharpCode.AvalonEdit.Document @@ -155,6 +155,12 @@ namespace ICSharpCode.AvalonEdit.Document
return GetText(segment.Offset, segment.Length);
}
int ITextSource.IndexOfAny(char[] anyOf, int startIndex, int count)
{
DebugVerifyAccess(); // frequently called (NewLineFinder), so must be fast in release builds
return rope.IndexOfAny(anyOf, startIndex, count);
}
/// <inheritdoc/>
public char GetCharAt(int offset)
{

9
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Editing/Caret.cs

@ -86,6 +86,15 @@ namespace ICSharpCode.AvalonEdit.Editing @@ -86,6 +86,15 @@ namespace ICSharpCode.AvalonEdit.Editing
}
}
/// <summary>
/// Gets the caret position without validating it.
/// </summary>
internal TextViewPosition NonValidatedPosition {
get {
return position;
}
}
/// <summary>
/// Gets/Sets the location of the caret.
/// The getter of this property is faster than <see cref="Position"/> because it doesn't have

6
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Editing/TextArea.cs

@ -320,7 +320,9 @@ namespace ICSharpCode.AvalonEdit.Editing @@ -320,7 +320,9 @@ namespace ICSharpCode.AvalonEdit.Editing
public RestoreCaretAndSelectionUndoAction(TextArea textArea)
{
this.textAreaReference = new WeakReference(textArea);
this.caretPosition = textArea.Caret.Position;
// Just save the old caret position, no need to validate here.
// If we restore it, we'll validate it anyways.
this.caretPosition = textArea.Caret.NonValidatedPosition;
this.selection = textArea.Selection;
}
@ -379,7 +381,7 @@ namespace ICSharpCode.AvalonEdit.Editing @@ -379,7 +381,7 @@ namespace ICSharpCode.AvalonEdit.Editing
if (value == null)
throw new ArgumentNullException("value");
if (!object.Equals(selection, value)) {
Debug.WriteLine("Selection change from " + selection + " to " + value);
//Debug.WriteLine("Selection change from " + selection + " to " + value);
if (textView != null) {
ISegment oldSegment = selection.SurroundingSegment;
ISegment newSegment = value.SurroundingSegment;

1
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Highlighting/DocumentHighlighter.cs

@ -114,6 +114,7 @@ namespace ICSharpCode.AvalonEdit.Highlighting @@ -114,6 +114,7 @@ namespace ICSharpCode.AvalonEdit.Highlighting
/// </summary>
/// <param name="line">The line to highlight.</param>
/// <returns>A <see cref="HighlightedLine"/> line object that represents the highlighted sections.</returns>
[ObsoleteAttribute("Use the (int lineNumber) overload instead")]
public HighlightedLine HighlightLine(DocumentLine line)
{
if (!document.Lines.Contains(line))

27
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Highlighting/HighlightingColorizer.cs

@ -68,7 +68,7 @@ namespace ICSharpCode.AvalonEdit.Highlighting @@ -68,7 +68,7 @@ namespace ICSharpCode.AvalonEdit.Highlighting
/// </summary>
protected virtual IHighlighter CreateHighlighter(TextView textView, TextDocument document)
{
return new TextViewDocumentHighlighter(textView, document, ruleSet);
return new TextViewDocumentHighlighter(this, textView, document, ruleSet);
}
/// <inheritdoc/>
@ -98,7 +98,9 @@ namespace ICSharpCode.AvalonEdit.Highlighting @@ -98,7 +98,9 @@ namespace ICSharpCode.AvalonEdit.Highlighting
// This is necessary in case the document gets modified above the FirstLineInView so that the highlighting state changes.
// We need to detect this case and issue a redraw (through TextViewDocumentHighligher.OnHighlightStateChanged)
// before the visual line construction reuses existing lines that were built using the invalid highlighting state.
highlighter.GetSpanStack(e.FirstLineInView.LineNumber - 1);
lineNumberBeingColorized = e.FirstLineInView.LineNumber - 1;
highlighter.GetSpanStack(lineNumberBeingColorized);
lineNumberBeingColorized = 0;
}
}
@ -116,18 +118,24 @@ namespace ICSharpCode.AvalonEdit.Highlighting @@ -116,18 +118,24 @@ namespace ICSharpCode.AvalonEdit.Highlighting
// (e.g. when the line ends with a fold marker).
// But even if we didn't highlight it, we'll have to update the highlighting state for it so that the
// proof inside TextViewDocumentHighlighter.OnHighlightStateChanged holds.
highlighter.GetSpanStack(context.VisualLine.LastDocumentLine.LineNumber);
lineNumberBeingColorized = context.VisualLine.LastDocumentLine.LineNumber;
highlighter.GetSpanStack(lineNumberBeingColorized);
lineNumberBeingColorized = 0;
}
}
this.lastColorizedLine = null;
}
int lineNumberBeingColorized;
/// <inheritdoc/>
protected override void ColorizeLine(DocumentLine line)
{
IHighlighter highlighter = CurrentContext.TextView.Services.GetService(typeof(IHighlighter)) as IHighlighter;
if (highlighter != null) {
HighlightedLine hl = highlighter.HighlightLine(line.LineNumber);
lineNumberBeingColorized = line.LineNumber;
HighlightedLine hl = highlighter.HighlightLine(lineNumberBeingColorized);
lineNumberBeingColorized = 0;
foreach (HighlightedSection section in hl.Sections) {
ChangeLinePart(section.Offset, section.Offset + section.Length,
visualLineElement => ApplyColorToElement(visualLineElement, section.Color));
@ -167,18 +175,27 @@ namespace ICSharpCode.AvalonEdit.Highlighting @@ -167,18 +175,27 @@ namespace ICSharpCode.AvalonEdit.Highlighting
/// </remarks>
sealed class TextViewDocumentHighlighter : DocumentHighlighter
{
readonly HighlightingColorizer colorizer;
readonly TextView textView;
public TextViewDocumentHighlighter(TextView textView, TextDocument document, HighlightingRuleSet baseRuleSet)
public TextViewDocumentHighlighter(HighlightingColorizer colorizer, TextView textView, TextDocument document, HighlightingRuleSet baseRuleSet)
: base(document, baseRuleSet)
{
Debug.Assert(colorizer != null);
Debug.Assert(textView != null);
this.colorizer = colorizer;
this.textView = textView;
}
protected override void OnHighlightStateChanged(DocumentLine line, int lineNumber)
{
base.OnHighlightStateChanged(line, lineNumber);
if (colorizer.lineNumberBeingColorized != lineNumber) {
// Ignore notifications for any line except the one we're interested in.
// This improves the performance as Redraw() can take quite some time when called repeatedly
// while scanning the document (above the visible area) for highlighting changes.
return;
}
if (textView.Document != this.Document) {
// May happen if document on text view was changed but some user code is still using the
// existing IHighlighter instance.

10
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/BackgroundGeometryBuilder.cs

@ -56,16 +56,16 @@ namespace ICSharpCode.AvalonEdit.Rendering @@ -56,16 +56,16 @@ namespace ICSharpCode.AvalonEdit.Rendering
foreach (Rect r in GetRectsForSegment(textView, segment)) {
if (AlignToWholePixels) {
AddRectangle(PixelSnapHelpers.Round(r.Left, pixelSize.Width),
PixelSnapHelpers.Round(r.Top, pixelSize.Height),
PixelSnapHelpers.Round(r.Top + 1, pixelSize.Height),
PixelSnapHelpers.Round(r.Right, pixelSize.Width),
PixelSnapHelpers.Round(r.Bottom, pixelSize.Height));
PixelSnapHelpers.Round(r.Bottom + 1, pixelSize.Height));
} else if (AlignToMiddleOfPixels) {
AddRectangle(PixelSnapHelpers.PixelAlign(r.Left, pixelSize.Width),
PixelSnapHelpers.PixelAlign(r.Top, pixelSize.Height),
PixelSnapHelpers.PixelAlign(r.Top + 1, pixelSize.Height),
PixelSnapHelpers.PixelAlign(r.Right, pixelSize.Width),
PixelSnapHelpers.PixelAlign(r.Bottom, pixelSize.Height));
PixelSnapHelpers.PixelAlign(r.Bottom + 1, pixelSize.Height));
} else {
AddRectangle(r.Left, r.Top, r.Right, r.Bottom);
AddRectangle(r.Left, r.Top + 1, r.Right, r.Bottom + 1);
}
}
}

2
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Rendering/VisualLineElement.cs

@ -60,7 +60,7 @@ namespace ICSharpCode.AvalonEdit.Rendering @@ -60,7 +60,7 @@ namespace ICSharpCode.AvalonEdit.Rendering
/// <see cref="VisualLineElementTextRunProperties"/> will affect only this
/// <see cref="VisualLineElement"/>.
/// </summary>
public VisualLineElementTextRunProperties TextRunProperties { get; set; }
public VisualLineElementTextRunProperties TextRunProperties { get; private set; }
internal void SetTextRunProperties(VisualLineElementTextRunProperties p)
{

50
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Utils/CharRope.cs

@ -93,16 +93,22 @@ namespace ICSharpCode.AvalonEdit.Utils @@ -93,16 +93,22 @@ namespace ICSharpCode.AvalonEdit.Utils
internal static RopeNode<char> InitFromString(string text)
{
char[] arr = text.ToCharArray();
return RopeNode<char>.CreateFromArray(arr, 0, arr.Length);
/*
if (text.Length == 0) {
return RopeNode<char>.emptyRopeNode;
}
RopeNode<char> node = RopeNode<char>.CreateNodes(text.Length);
// TODO: store data
FillNode(node, text, 0);
return node;
*/
}
static void FillNode(RopeNode<char> node, string text, int start)
{
if (node.contents != null) {
text.CopyTo(start, node.contents, 0, node.length);
} else {
FillNode(node.left, text, start);
FillNode(node.right, text, start + node.left.length);
}
}
internal static void WriteTo(this RopeNode<char> node, int index, StringBuilder output, int count)
@ -128,5 +134,39 @@ namespace ICSharpCode.AvalonEdit.Utils @@ -128,5 +134,39 @@ namespace ICSharpCode.AvalonEdit.Utils
}
}
}
/// <summary>
/// Gets the index of the first occurrence of any element in the specified array.
/// </summary>
/// <param name="rope">The target rope.</param>
/// <param name="anyOf">Array of characters being searched.</param>
/// <param name="startIndex">Start index of the search.</param>
/// <param name="length">Length of the area to search.</param>
/// <returns>The first index where any character was found; or -1 if no occurrence was found.</returns>
public static int IndexOfAny(this Rope<char> rope, char[] anyOf, int startIndex, int length)
{
if (rope == null)
throw new ArgumentNullException("rope");
if (anyOf == null)
throw new ArgumentNullException("anyOf");
rope.VerifyRange(startIndex, length);
while (length > 0) {
var entry = rope.FindNodeUsingCache(startIndex).UnsafePeek();
char[] contents = entry.node.contents;
int startWithinNode = startIndex - entry.nodeStartIndex;
int nodeLength = Math.Min(entry.node.length, startWithinNode + length);
for (int i = startIndex - entry.nodeStartIndex; i < nodeLength; i++) {
char element = contents[i];
foreach (char needle in anyOf) {
if (element == needle)
return entry.nodeStartIndex + i;
}
}
length -= nodeLength - startWithinNode;
startIndex = entry.nodeStartIndex + nodeLength;
}
return -1;
}
}
}

7
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Utils/ImmutableStack.cs

@ -3,6 +3,7 @@ @@ -3,6 +3,7 @@
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Text;
namespace ICSharpCode.AvalonEdit.Utils
@ -57,6 +58,12 @@ namespace ICSharpCode.AvalonEdit.Utils @@ -57,6 +58,12 @@ namespace ICSharpCode.AvalonEdit.Utils
return value;
}
internal T UnsafePeek()
{
Debug.Assert(!IsEmpty);
return value;
}
/// <summary>
/// Gets the stack with the top item removed.
/// </summary>

13
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Utils/Rope.cs

@ -407,7 +407,7 @@ namespace ICSharpCode.AvalonEdit.Utils @@ -407,7 +407,7 @@ namespace ICSharpCode.AvalonEdit.Utils
}
#region Caches / Changed event
struct RopeCacheEntry
internal struct RopeCacheEntry
{
internal readonly RopeNode<T> node;
internal readonly int nodeStartIndex;
@ -451,7 +451,7 @@ namespace ICSharpCode.AvalonEdit.Utils @@ -451,7 +451,7 @@ namespace ICSharpCode.AvalonEdit.Utils
if (unchecked((uint)index >= (uint)this.Length)) {
throw new ArgumentOutOfRangeException("index", index, "0 <= index < " + this.Length.ToString(CultureInfo.InvariantCulture));
}
RopeCacheEntry entry = FindNodeUsingCache(index).Peek();
RopeCacheEntry entry = FindNodeUsingCache(index).UnsafePeek();
return entry.node.contents[index - entry.nodeStartIndex];
}
set {
@ -500,7 +500,7 @@ namespace ICSharpCode.AvalonEdit.Utils @@ -500,7 +500,7 @@ namespace ICSharpCode.AvalonEdit.Utils
}
}
ImmutableStack<RopeCacheEntry> FindNodeUsingCache(int index)
internal ImmutableStack<RopeCacheEntry> FindNodeUsingCache(int index)
{
Debug.Assert(index >= 0 && index < this.Length);
@ -511,10 +511,10 @@ namespace ICSharpCode.AvalonEdit.Utils @@ -511,10 +511,10 @@ namespace ICSharpCode.AvalonEdit.Utils
if (stack == null) {
stack = ImmutableStack<RopeCacheEntry>.Empty.Push(new RopeCacheEntry(root, 0));
}
while (!stack.Peek().IsInside(index))
while (!stack.UnsafePeek().IsInside(index))
stack = stack.Pop();
while (true) {
RopeCacheEntry entry = stack.Peek();
RopeCacheEntry entry = stack.UnsafePeek();
// check if we've reached a leaf or function node
if (entry.node.height == 0) {
if (entry.node.contents == null) {
@ -622,9 +622,10 @@ namespace ICSharpCode.AvalonEdit.Utils @@ -622,9 +622,10 @@ namespace ICSharpCode.AvalonEdit.Utils
/// </remarks>
public int IndexOf(T item)
{
var comparer = EqualityComparer<T>.Default;
int index = 0;
foreach (T element in this) {
if (object.Equals(item, element))
if (comparer.Equals(item, element))
return index;
index++;
}

2
src/Libraries/AvalonEdit/ICSharpCode.AvalonEdit/Utils/RopeNode.cs

@ -121,7 +121,7 @@ namespace ICSharpCode.AvalonEdit.Utils @@ -121,7 +121,7 @@ namespace ICSharpCode.AvalonEdit.Utils
return node.StoreElements(0, arr, index, length);
}
static RopeNode<T> CreateNodes(int totalLength)
internal static RopeNode<T> CreateNodes(int totalLength)
{
int leafCount = (totalLength + NodeSize - 1) / NodeSize;
return CreateNodes(leafCount, totalLength);

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

Loading…
Cancel
Save