Browse Source

Merge pull request #2 from icsharpcode/master

Trying to update my fork ...
pull/631/head
Oleg Bevz 11 years ago
parent
commit
8de9d83366
  1. 72
      SharpDevelop.sln
  2. 279
      data/resources/StringResources.cz.resx
  3. 24
      data/resources/StringResources.fr.resx
  4. 151
      data/resources/StringResources.it.resx
  5. 6
      data/resources/StringResources.resx
  6. 42
      data/resources/StringResources.ru.resx
  7. 17
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/Src/Options/WpfEditorOptionPanel.xaml
  8. 35
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/Src/Options/WpfEditorOptionPanel.xaml.cs
  9. 40
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/Src/Options/WpfEditorOptions.cs
  10. 10
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/WpfDesign.AddIn.csproj
  11. 7
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/WpfDesign.addin
  12. 49
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/DesignPanel.cs
  13. 190
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/LineExtensionBase.cs
  14. 248
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/LineHandlerExtension.cs
  15. 49
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/MultiPointResizeThumb.cs
  16. 93
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/PointTrackerPlacementSupport.cs
  17. 450
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/PolyLineHandlerExtension.cs
  18. 5
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/WpfDesign.Designer.csproj
  19. 97
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.XamlDom/Project/MarkupExtensionWrapper.cs
  20. 43
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.XamlDom/Project/MarkupExtensionWrapperAttribute.cs
  21. 2
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.XamlDom/Project/WpfDesign.XamlDom.csproj
  22. 31
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign.XamlDom/Project/XamlObject.cs
  23. 17
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/Extensions/ExtensionForAttribute.cs
  24. 46
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/Extensions/ExtensionInterfaces.cs
  25. 42
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/Extensions/ExtensionManager.cs
  26. 1
      src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/WpfDesign.csproj
  27. 2
      src/Main/GlobalAssemblyInfo.cs.template

72
SharpDevelop.sln

@ -1,10 +1,10 @@ @@ -1,10 +1,10 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012
# SharpDevelop 5.0
VisualStudioVersion = 12.0.20827.3
MinimumVisualStudioVersion = 10.0.40219.1
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
# SharpDevelop 4.3
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Main", "Main", "{256F5C28-532C-44C0-8AB8-D8EC5E492E01}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.BuildWorker35", "src\Main\ICSharpCode.SharpDevelop.BuildWorker35\ICSharpCode.SharpDevelop.BuildWorker35.csproj", "{B5F54272-49F0-40DB-845A-8D837875D3BA}"
EndProject
@ -25,6 +25,8 @@ EndProject @@ -25,6 +25,8 @@ EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.BuildWorker120", "src\Main\ICSharpCode.SharpDevelop.BuildWorker120\ICSharpCode.SharpDevelop.BuildWorker120.csproj", "{6F273DA5-E10C-45A6-9071-7313ECD98C90}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Libraries", "Libraries", "{2A232EF1-EB95-41C6-B63A-C106E0C95D3C}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mono.Cecil", "src\Libraries\cecil\Mono.Cecil.csproj", "{D68133BD-1E63-496E-9EDE-4FBDBF77B486}"
EndProject
@ -54,14 +56,20 @@ EndProject @@ -54,14 +56,20 @@ EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Decompiler", "src\Libraries\ICSharpCode.Decompiler\ICSharpCode.Decompiler.csproj", "{984CC812-9470-4A13-AFF9-CC44068D666C}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AddIns", "AddIns", "{39327899-ED91-4F7F-988C-4FE4E17C014D}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Version Control", "Version Control", "{F208FF4F-E5D8-41D5-A7C7-B463976F156E}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GitAddIn", "src\AddIns\VersionControl\GitAddIn\GitAddIn.csproj", "{83F15BA7-8478-4664-81BB-A82F146D88B3}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SubversionAddIn", "src\AddIns\VersionControl\SubversionAddIn\SubversionAddIn.csproj", "{17F4D7E0-6933-4C2E-8714-FD7E98D625D5}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Language Bindings", "Language Bindings", "{E0646C25-36F2-4524-969F-FA621353AB94}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CSharpBinding", "src\AddIns\BackendBindings\CSharpBinding\Project\CSharpBinding.csproj", "{1F1AC7CD-D154-45BB-8EAF-804CA8055F5A}"
EndProject
@ -80,6 +88,8 @@ EndProject @@ -80,6 +88,8 @@ EndProject
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "VBBinding", "src\AddIns\BackendBindings\VBBinding\Project\VBBinding.vbproj", "{6D209CBB-D8C1-478A-BC30-D3FC87B7858F}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Misc", "Misc", "{F3662720-9EA2-4591-BBC6-97361DCE50A9}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SearchAndReplace", "src\AddIns\Misc\SearchAndReplace\Project\SearchAndReplace.csproj", "{9196DD8A-B4D4-4780-8742-C5762E547FC2}"
EndProject
@ -88,6 +98,8 @@ EndProject @@ -88,6 +98,8 @@ EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AddinScout", "src\AddIns\Misc\AddinScout\Project\AddinScout.csproj", "{4B8F0F98-8BE1-402B-AA8B-C8D548577B38}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "UsageDataCollector", "UsageDataCollector", "{59A30AA6-D600-41AB-B7A1-9543469DBE36}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UsageDataCollector", "src\AddIns\Misc\UsageDataCollector\UsageDataCollector\UsageDataCollector.csproj", "{6B1CFE35-DA17-4DEB-9C6E-227E5E251DA0}"
EndProject
@ -102,6 +114,8 @@ EndProject @@ -102,6 +114,8 @@ EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TextTemplating", "src\AddIns\Misc\TextTemplating\Project\TextTemplating.csproj", "{B5D8C3E6-42EC-4D4B-AD05-3644B32563EF}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "PackageManagement", "PackageManagement", "{87D549AF-8FCD-4E84-9C33-3DB6E42FEF6D}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PackageManagement", "src\AddIns\Misc\PackageManagement\Project\PackageManagement.csproj", "{AE4AB0FA-6087-4480-AF37-0FA1452B3DA1}"
EndProject
@ -114,12 +128,16 @@ EndProject @@ -114,12 +128,16 @@ EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AddInManager2", "src\AddIns\Misc\AddInManager2\Project\AddInManager2.csproj", "{60480C2F-F228-4D86-B98F-AF75A7DCEC34}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Reports", "Reports", "{4ABB8D1E-3439-44C8-ACCE-1FA678ABBFB3}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Reporting", "src\AddIns\Misc\Reporting\ICSharpCode.Reporting\ICSharpCode.Reporting.csproj", "{40CA84D4-ACFC-4646-9CDD-B87262D34093}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Reporting.Addin", "src\AddIns\Misc\Reporting\ICSharpCode.Reporting.Addin\ICSharpCode.Reporting.Addin.csproj", "{0502FCF7-72F4-4587-936B-D0238CD0E072}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Display Bindings", "Display Bindings", "{11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AvalonEdit.AddIn", "src\AddIns\DisplayBindings\AvalonEdit.AddIn\AvalonEdit.AddIn.csproj", "{0162E499-42D0-409B-AA25-EED21F75336B}"
EndProject
@ -134,6 +152,8 @@ EndProject @@ -134,6 +152,8 @@ EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SettingsEditor", "src\AddIns\DisplayBindings\SettingsEditor\Project\SettingsEditor.csproj", "{85226AFB-CE71-4851-9A75-7EEC663A8E8A}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Data", "Data", "{5FB020B2-B64B-4016-999A-CB8FD9274D72}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Data.Addin", "src\AddIns\DisplayBindings\Data\ICSharpCode.Data.Addin\ICSharpCode.Data.Addin.csproj", "{A9F12710-24E4-46D4-832C-6ECB395B9EAD}"
EndProject
@ -148,6 +168,8 @@ EndProject @@ -148,6 +168,8 @@ EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Data.SQLServer", "src\AddIns\DisplayBindings\Data\ICSharpCode.Data.SQLServer\ICSharpCode.Data.SQLServer.csproj", "{AFE34868-AFA1-4E1C-9450-47AB4BE329D5}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "WpfDesign", "WpfDesign", "{D54BEB89-8CBE-475C-8BB9-836D2FD71260}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WpfDesign", "src\AddIns\DisplayBindings\WpfDesign\WpfDesign\Project\WpfDesign.csproj", "{66A378A1-E9F4-4AD5-8946-D0EC06C2902F}"
EndProject
@ -162,6 +184,8 @@ EndProject @@ -162,6 +184,8 @@ EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ResourceEditor", "src\AddIns\DisplayBindings\ResourceEditor\Project\ResourceEditor.csproj", "{CBC6C247-747B-4908-B09A-4D2E0F640B6B}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Analysis", "Analysis", "{7019F43E-DFD7-4D1C-8C96-E75D55646DE7}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnitTesting", "src\AddIns\Analysis\UnitTesting\UnitTesting.csproj", "{1F261725-6318-4434-A1B1-6C70CE4CD324}"
EndProject
@ -176,6 +200,8 @@ EndProject @@ -176,6 +200,8 @@ EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CodeQuality", "src\AddIns\Analysis\CodeQuality\CodeQuality.csproj", "{3C532D80-32B4-40E5-B5FE-BC6BAE1A00E7}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Profiler", "Profiler", "{E9BF2761-031F-4CDC-A7E6-F66F3B347311}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Profiler.Controller", "src\AddIns\Analysis\Profiler\Controller\Profiler.Controller.csproj", "{72FFB35A-C9E2-4A31-B4FA-E3E3E28DED5F}"
EndProject
@ -186,6 +212,8 @@ EndProject @@ -186,6 +212,8 @@ EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Profiler.Controls", "src\AddIns\Analysis\Profiler\Frontend\Controls\Profiler.Controls.csproj", "{BDA49550-5ED1-4C6B-B648-657B2CACD8E0}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Debugger", "Debugger", "{49CE38B8-0460-46BF-9DFF-5B33A0F9EB5E}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Debugger.Core", "src\AddIns\Debugger\Debugger.Core\Debugger.Core.csproj", "{1D18D788-F7EE-4585-A23B-34DC8EC63CB8}"
EndProject
@ -523,20 +551,24 @@ Global @@ -523,20 +551,24 @@ Global
{6F273DA5-E10C-45A6-9071-7313ECD98C90} = {256F5C28-532C-44C0-8AB8-D8EC5E492E01}
{D68133BD-1E63-496E-9EDE-4FBDBF77B486} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C}
{E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C}
{3B2A5653-EC97-4001-BB9B-D90F1AF2C371} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865}
{53DCA265-3C3C-42F9-B647-F72BA678122B} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865}
{DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865}
{2B8F4F83-C2B3-4E84-A27B-8DEE1BE0E006} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865}
{2A705FC6-1A9E-4941-9E47-254D79F2D9D5} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865}
{2FF700C2-A38A-48BD-A637-8CAFD4FE6237} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C}
{6C55B776-26D4-4DB3-A6AB-87E783B2F3D1} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C}
{4139CCF6-FB49-4A9D-B2CF-331E9EA3198D} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C}
{DDE2A481-8271-4EAC-A330-8FA6A38D13D1} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C}
{984CC812-9470-4A13-AFF9-CC44068D666C} = {2A232EF1-EB95-41C6-B63A-C106E0C95D3C}
{3B2A5653-EC97-4001-BB9B-D90F1AF2C371} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865}
{53DCA265-3C3C-42F9-B647-F72BA678122B} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865}
{DC393B66-92ED-4CAD-AB25-CFEF23F3D7C6} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865}
{2B8F4F83-C2B3-4E84-A27B-8DEE1BE0E006} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865}
{2A705FC6-1A9E-4941-9E47-254D79F2D9D5} = {E5A0F4D8-37FD-4A30-BEB0-4409DC4E0865}
{F208FF4F-E5D8-41D5-A7C7-B463976F156E} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
{E0646C25-36F2-4524-969F-FA621353AB94} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
{F3662720-9EA2-4591-BBC6-97361DCE50A9} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
{11BF9245-88A3-4A0A-9A8A-EC9D98036B0F} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
{7019F43E-DFD7-4D1C-8C96-E75D55646DE7} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
{49CE38B8-0460-46BF-9DFF-5B33A0F9EB5E} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
{83F15BA7-8478-4664-81BB-A82F146D88B3} = {F208FF4F-E5D8-41D5-A7C7-B463976F156E}
{17F4D7E0-6933-4C2E-8714-FD7E98D625D5} = {F208FF4F-E5D8-41D5-A7C7-B463976F156E}
{E0646C25-36F2-4524-969F-FA621353AB94} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
{1F1AC7CD-D154-45BB-8EAF-804CA8055F5A} = {E0646C25-36F2-4524-969F-FA621353AB94}
{E954F3CB-A446-492F-A664-2B376EBC86E8} = {E0646C25-36F2-4524-969F-FA621353AB94}
{70966F84-74C9-4067-A379-0C674A929233} = {E0646C25-36F2-4524-969F-FA621353AB94}
@ -545,27 +577,25 @@ Global @@ -545,27 +577,25 @@ Global
{E1B288A2-08EE-4318-8BBB-8AB72C69E33E} = {E0646C25-36F2-4524-969F-FA621353AB94}
{7048AE18-EB93-4A84-82D0-DD60EB58ADBD} = {E0646C25-36F2-4524-969F-FA621353AB94}
{6D209CBB-D8C1-478A-BC30-D3FC87B7858F} = {E0646C25-36F2-4524-969F-FA621353AB94}
{F3662720-9EA2-4591-BBC6-97361DCE50A9} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
{9196DD8A-B4D4-4780-8742-C5762E547FC2} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
{7D5C266F-D6FF-4D14-B315-0C0FC6C4EF51} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
{4B8F0F98-8BE1-402B-AA8B-C8D548577B38} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
{59A30AA6-D600-41AB-B7A1-9543469DBE36} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
{6B1CFE35-DA17-4DEB-9C6E-227E5E251DA0} = {59A30AA6-D600-41AB-B7A1-9543469DBE36}
{0008FCE9-9EB4-4E2E-979B-553278E5BBA6} = {59A30AA6-D600-41AB-B7A1-9543469DBE36}
{D022A6CE-7438-41E8-AC64-F2DE18EC54C6} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
{80F76D10-0B44-4D55-B4BD-DAEB5464090C} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
{64A3E5E6-90BF-47F6-94DF-68C94B62C817} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
{B5D8C3E6-42EC-4D4B-AD05-3644B32563EF} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
{87D549AF-8FCD-4E84-9C33-3DB6E42FEF6D} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
{60480C2F-F228-4D86-B98F-AF75A7DCEC34} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
{4ABB8D1E-3439-44C8-ACCE-1FA678ABBFB3} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
{6B1CFE35-DA17-4DEB-9C6E-227E5E251DA0} = {59A30AA6-D600-41AB-B7A1-9543469DBE36}
{0008FCE9-9EB4-4E2E-979B-553278E5BBA6} = {59A30AA6-D600-41AB-B7A1-9543469DBE36}
{AE4AB0FA-6087-4480-AF37-0FA1452B3DA1} = {87D549AF-8FCD-4E84-9C33-3DB6E42FEF6D}
{A406803B-C584-43A3-BCEE-A0BB3132CB5F} = {87D549AF-8FCD-4E84-9C33-3DB6E42FEF6D}
{1B753D7F-7C77-4D5E-B928-02982690879C} = {87D549AF-8FCD-4E84-9C33-3DB6E42FEF6D}
{E0A5E80A-003B-4335-A9DC-A76E2E46D38D} = {87D549AF-8FCD-4E84-9C33-3DB6E42FEF6D}
{60480C2F-F228-4D86-B98F-AF75A7DCEC34} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
{4ABB8D1E-3439-44C8-ACCE-1FA678ABBFB3} = {F3662720-9EA2-4591-BBC6-97361DCE50A9}
{40CA84D4-ACFC-4646-9CDD-B87262D34093} = {4ABB8D1E-3439-44C8-ACCE-1FA678ABBFB3}
{0502FCF7-72F4-4587-936B-D0238CD0E072} = {4ABB8D1E-3439-44C8-ACCE-1FA678ABBFB3}
{11BF9245-88A3-4A0A-9A8A-EC9D98036B0F} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
{0162E499-42D0-409B-AA25-EED21F75336B} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
{E618A9CD-A39F-4925-A538-E8A3FEF24E54} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
{DCA2703D-250A-463E-A68A-07ED105AE6BD} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
@ -573,20 +603,19 @@ Global @@ -573,20 +603,19 @@ Global
{8AA421C8-D7AF-4957-9F43-5135328ACB24} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
{85226AFB-CE71-4851-9A75-7EEC663A8E8A} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
{5FB020B2-B64B-4016-999A-CB8FD9274D72} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
{D54BEB89-8CBE-475C-8BB9-836D2FD71260} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
{7D7E92DF-ACEB-4B69-92C8-8AC7A703CD57} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
{CBC6C247-747B-4908-B09A-4D2E0F640B6B} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
{A9F12710-24E4-46D4-832C-6ECB395B9EAD} = {5FB020B2-B64B-4016-999A-CB8FD9274D72}
{B7823AE9-4B43-4859-8796-2EBDC116FBB8} = {5FB020B2-B64B-4016-999A-CB8FD9274D72}
{BAD94D6E-4159-4CB6-B991-486F412D9BB6} = {5FB020B2-B64B-4016-999A-CB8FD9274D72}
{5C70D6AB-0A33-43F9-B8B5-54558C35BBB1} = {5FB020B2-B64B-4016-999A-CB8FD9274D72}
{EEF5E054-4192-4A57-8FBF-E860D808A51D} = {5FB020B2-B64B-4016-999A-CB8FD9274D72}
{AFE34868-AFA1-4E1C-9450-47AB4BE329D5} = {5FB020B2-B64B-4016-999A-CB8FD9274D72}
{D54BEB89-8CBE-475C-8BB9-836D2FD71260} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
{66A378A1-E9F4-4AD5-8946-D0EC06C2902F} = {D54BEB89-8CBE-475C-8BB9-836D2FD71260}
{9A9D6FD4-6A2E-455D-ACC3-DDA775FE9865} = {D54BEB89-8CBE-475C-8BB9-836D2FD71260}
{88DA149F-21B2-48AB-82C4-28FB6BDFD783} = {D54BEB89-8CBE-475C-8BB9-836D2FD71260}
{78CC29AC-CC79-4355-B1F2-97936DF198AC} = {D54BEB89-8CBE-475C-8BB9-836D2FD71260}
{7D7E92DF-ACEB-4B69-92C8-8AC7A703CD57} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
{CBC6C247-747B-4908-B09A-4D2E0F640B6B} = {11BF9245-88A3-4A0A-9A8A-EC9D98036B0F}
{7019F43E-DFD7-4D1C-8C96-E75D55646DE7} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
{1F261725-6318-4434-A1B1-6C70CE4CD324} = {7019F43E-DFD7-4D1C-8C96-E75D55646DE7}
{3EAA45A9-735C-4AC7-A799-947B93EA449D} = {7019F43E-DFD7-4D1C-8C96-E75D55646DE7}
{C16BEA37-FEE8-4792-B860-48F5BFBD39A9} = {7019F43E-DFD7-4D1C-8C96-E75D55646DE7}
@ -598,7 +627,6 @@ Global @@ -598,7 +627,6 @@ Global
{D294A12D-4B38-4F25-9AA6-3D4A6CE26E7B} = {E9BF2761-031F-4CDC-A7E6-F66F3B347311}
{FE88FE17-D9FB-4FCC-9A35-6BFFB6B26CC6} = {E9BF2761-031F-4CDC-A7E6-F66F3B347311}
{BDA49550-5ED1-4C6B-B648-657B2CACD8E0} = {E9BF2761-031F-4CDC-A7E6-F66F3B347311}
{49CE38B8-0460-46BF-9DFF-5B33A0F9EB5E} = {39327899-ED91-4F7F-988C-4FE4E17C014D}
{1D18D788-F7EE-4585-A23B-34DC8EC63CB8} = {49CE38B8-0460-46BF-9DFF-5B33A0F9EB5E}
{EC06F96A-AEEC-49D6-B03D-AB87C6EB674C} = {49CE38B8-0460-46BF-9DFF-5B33A0F9EB5E}
EndGlobalSection

279
data/resources/StringResources.cz.resx

@ -231,6 +231,171 @@ @@ -231,6 +231,171 @@
<data name="AddInManager.UnknownFileFormat" xml:space="preserve">
<value>Neznámý formát souboru:</value>
</data>
<data name="AddInManager2.AddInsView.InstallFromArchive" xml:space="preserve">
<value>Instalovat z archivu...</value>
</data>
<data name="AddInManager2.AddInsView.Repository" xml:space="preserve">
<value>Depozitář:</value>
</data>
<data name="AddInManager2.AddInsView.Search" xml:space="preserve">
<value>Vyhledat:</value>
</data>
<data name="AddInManager2.AddInsView.ShowPreinstalledAddIns" xml:space="preserve">
<value>Zobrazit předinstalované doplňky</value>
</data>
<data name="AddInManager2.AddInsView.ShowPrereleaseAddIns" xml:space="preserve">
<value>Zobrazit předběžné vezre</value>
</data>
<data name="AddInManager2.CannotRemoveAddInManager" xml:space="preserve">
<value>AddInManager nelze odinstalovat - je ho třeba k opětovné instalaci doplňků!</value>
</data>
<data name="AddInManager2.DefaultRepository" xml:space="preserve">
<value>Depozitář doplňků SharpDevelop</value>
</data>
<data name="AddInManager2.Details.CreatedBy" xml:space="preserve">
<value>Vytvořil:</value>
</data>
<data name="AddInManager2.Details.Dependencies" xml:space="preserve">
<value>Závislosti:</value>
</data>
<data name="AddInManager2.Details.DownloadCount" xml:space="preserve">
<value>Ke stažení:</value>
</data>
<data name="AddInManager2.Details.FileName" xml:space="preserve">
<value>Soubor:</value>
</data>
<data name="AddInManager2.Details.InstalledVersion" xml:space="preserve">
<value>Instalovaná verze:</value>
</data>
<data name="AddInManager2.Details.LastUpdated" xml:space="preserve">
<value>Poslední změna:</value>
</data>
<data name="AddInManager2.Details.MoreInformation" xml:space="preserve">
<value>Více informací</value>
</data>
<data name="AddInManager2.Details.NewVersion" xml:space="preserve">
<value>Nová verze:</value>
</data>
<data name="AddInManager2.Details.Rating" xml:space="preserve">
<value>Hodnocení:</value>
</data>
<data name="AddInManager2.Details.ReportAbuse" xml:space="preserve">
<value>Nahlásit zneužití</value>
</data>
<data name="AddInManager2.Details.Version" xml:space="preserve">
<value>Verze:</value>
</data>
<data name="AddInManager2.Details.ViewLicenseTerms" xml:space="preserve">
<value>Zobrazit licenční podmínky</value>
</data>
<data name="AddInManager2.DisableDependentWarning" xml:space="preserve">
<value>Následující nainstalované doplňky závisí na "{0}":
{1}
Pokud doplněk deaktivujete, přestanou fungovat. Myslíte to vážně?</value>
</data>
<data name="AddInManager2.InstallDependentMessage" xml:space="preserve">
<value>Balíček "{0}" potřebuje přinejmenším jeden další balíček, a to
{1}
Aplikace se vše potřebné také pokusí stáhnout a nainstalovat. Pokračovat?</value>
</data>
<data name="AddInManager2.InvalidPackage" xml:space="preserve">
<value>Vybraný balíček neobsahuje platný doplněk SharpDevelop.</value>
</data>
<data name="AddInManager2.LicenseAcceptance.AcceptButton" xml:space="preserve">
<value>&amp;Akceptuji</value>
</data>
<data name="AddInManager2.LicenseAcceptance.DeclineButton" xml:space="preserve">
<value>O&amp;dmítám</value>
</data>
<data name="AddInManager2.LicenseAcceptance.Explanation.Package" xml:space="preserve">
<value>Volbou "Akceptuji" vyjadřujete souhlas s licenčním ujednáním pro uvedený balíček. Pokud s licenčními podmínkami nesouhlasíte, zvolte "Odmítám".</value>
</data>
<data name="AddInManager2.LicenseAcceptance.Explanation.Packages" xml:space="preserve">
<value>Volbou "Akceptuji" vyjadřujete souhlas s licenčním ujednáním pro výše uvedený balíčky. Pokud s licenčními podmínkami nesouhlasíte, zvolte "Odmítám".</value>
</data>
<data name="AddInManager2.LicenseAcceptance.Introduction.Package" xml:space="preserve">
<value>Následující balíček vyžaduje potvrdit licenční podmínky:</value>
</data>
<data name="AddInManager2.LicenseAcceptance.Introduction.Packages" xml:space="preserve">
<value>Následující balíčky vyžadují potvrdit licenční podmínky:</value>
</data>
<data name="AddInManager2.LicenseAcceptance.Title" xml:space="preserve">
<value>Licenční ujednání</value>
</data>
<data name="AddInManager2.OptionPanel.Add" xml:space="preserve">
<value>Přidat</value>
</data>
<data name="AddInManager2.OptionPanel.AutoCheckForUpdates" xml:space="preserve">
<value>Automaticky vyhledávat aktualizace</value>
</data>
<data name="AddInManager2.OptionPanel.MoveDown" xml:space="preserve">
<value>Posunout dolů</value>
</data>
<data name="AddInManager2.OptionPanel.MoveUp" xml:space="preserve">
<value>Posunout nahoru</value>
</data>
<data name="AddInManager2.OptionPanel.Name" xml:space="preserve">
<value>Jméno:</value>
</data>
<data name="AddInManager2.OptionPanel.Remove" xml:space="preserve">
<value>Odstranit</value>
</data>
<data name="AddInManager2.OptionPanel.Source" xml:space="preserve">
<value>Zdroj:</value>
</data>
<data name="AddInManager2.OptionPanel.Tree.AddIns" xml:space="preserve">
<value>Doplňky</value>
</data>
<data name="AddInManager2.OptionPanel.Tree.General" xml:space="preserve">
<value>Obecné</value>
</data>
<data name="AddInManager2.OptionPanel.Tree.Repositories" xml:space="preserve">
<value>Depozitáře</value>
</data>
<data name="AddInManager2.RemoveDependentWarning" xml:space="preserve">
<value>Následující instalované doplňky závisí na "{0}":
{1}
Ty přestanou fungovat, pokud první doplněk odstraníte! Skutečně to chcete udělat?</value>
</data>
<data name="AddInManager2.SDAddInFileFilter" xml:space="preserve">
<value>Doplňky SharpDevelop |*.sdaddin;*.addin|Všechny soubory|*.*</value>
</data>
<data name="AddInManager2.UpdateNotifier.BubbleText" xml:space="preserve">
<value>Klikněte pro zobrazení aktualizací.</value>
</data>
<data name="AddInManager2.UpdateNotifier.BubbleTitle" xml:space="preserve">
<value>Jsou k dispozici aktualizace SharpDevelop</value>
</data>
<data name="AddInManager2.Views.Available" xml:space="preserve">
<value>K dispozici</value>
</data>
<data name="AddInManager2.Views.Installed" xml:space="preserve">
<value>Nainstalováno</value>
</data>
<data name="AddInManager2.Views.Updates" xml:space="preserve">
<value>Aktualizace</value>
</data>
<data name="AddIns.AvalonEdit.InconsistentNewlines.Description" xml:space="preserve">
<value>Soubor obsahuje nekonzistentní znaky konce řádku.</value>
</data>
<data name="AddIns.AvalonEdit.InconsistentNewlines.Header" xml:space="preserve">
<value>Nekonzistentní odřádkování</value>
</data>
<data name="AddIns.AvalonEdit.InconsistentNewlines.Normalize" xml:space="preserve">
<value>Normalizovat</value>
</data>
<data name="AddIns.AvalonEdit.SearchPanel.ErrorText" xml:space="preserve">
<value>Chyba:</value>
</data>
<data name="AddIns.AvalonEdit.SearchPanel.FindNextText" xml:space="preserve">
<value>Najít další</value>
</data>
<data name="AddIns.AvalonEdit.SearchPanel.FindPreviousText" xml:space="preserve">
<value>Najít předchozí</value>
</data>
<data name="AddIns.AvalonEdit.SearchPanel.UseRegexText" xml:space="preserve">
<value>Použít regulární výrazy</value>
</data>
<data name="AddIns.ClassDiagram.ShowClassDiagram" xml:space="preserve">
<value>Ukázat diagram třídy</value>
</data>
@ -243,6 +408,57 @@ @@ -243,6 +408,57 @@
<data name="AddIns.HelpViewer.DisplayContentsCommand" xml:space="preserve">
<value>Zobrazit Obsah</value>
</data>
<data name="AddIns.HelpViewer.DisplaySearchCommand" xml:space="preserve">
<value>Vyhledat</value>
</data>
<data name="AddIns.HelpViewer.HelpLibraryRootTitle" xml:space="preserve">
<value>Knihovna nápovědy</value>
</data>
<data name="AddIns.HelpViewer.HelpModeLabel" xml:space="preserve">
<value>Nastavit předvolby nápovědy</value>
</data>
<data name="AddIns.HelpViewer.HLMNoActiveCatalogError" xml:space="preserve">
<value>Nelze spustit Správce nápovědy, protože nebyl nainstalován nebo zvolen žadý katalog nápovědy. Zkontrolujte nastavení nápovědy (Nástroje &gt; Volby &gt; Nástroje &gt; Microsoft Help Viewer).</value>
</data>
<data name="AddIns.HelpViewer.HLMNotAvailableDownloadWinSDK" xml:space="preserve">
<value>Správce nápovědy nebyl nalezen. Chcete-li používat funkce nápovědy SharpDevelop, stáhněte si a nainstalujte MS Windows SDK 7.1.</value>
</data>
<data name="AddIns.HelpViewer.HLMNotFound" xml:space="preserve">
<value>Správce nápovědy (Help Library Manager) nebyl nalezen. Zkontrolujte, zda byl správně nainstalován.</value>
</data>
<data name="AddIns.HelpViewer.InstalledHelpCatalogsLabel" xml:space="preserve">
<value>Instalované katalogy nápovědy</value>
</data>
<data name="AddIns.HelpViewer.LaunchHelpLibraryManagerCommand" xml:space="preserve">
<value>Spustit správce nápovědy</value>
</data>
<data name="AddIns.HelpViewer.MicrosoftHelpViewerTitle" xml:space="preserve">
<value>Prohlížeč nápovědy Microsoft</value>
</data>
<data name="AddIns.HelpViewer.OfflineFeatureRequestMsg" xml:space="preserve">
<value>Požadujete offline funkcionality v online módu. Aby byla použitelná, musíte změnit mód.</value>
</data>
<data name="AddIns.HelpViewer.SearchDoSearchButton" xml:space="preserve">
<value>Vyhledat</value>
</data>
<data name="AddIns.HelpViewer.SearchLookForLabel" xml:space="preserve">
<value>Hledat:</value>
</data>
<data name="AddIns.HelpViewer.SearchPadTitle" xml:space="preserve">
<value>Hledání</value>
</data>
<data name="AddIns.HelpViewer.ShowErrorHelpTitle" xml:space="preserve">
<value>Ukázat nápovědu</value>
</data>
<data name="AddIns.HelpViewer.UseExternalHelp" xml:space="preserve">
<value>Užívat externí prohlížeč nápovědy</value>
</data>
<data name="AddIns.HelpViewer.UseOfflineHelpLabel" xml:space="preserve">
<value>Chci používat lokální nápovědu</value>
</data>
<data name="AddIns.HelpViewer.UseOnlineHelpLabel" xml:space="preserve">
<value>Chci používat online nápovědu</value>
</data>
<data name="AddIns.HtmlHelp2.Back" xml:space="preserve">
<value>Zpět</value>
</data>
@ -273,6 +489,51 @@ @@ -273,6 +489,51 @@
<data name="AddIns.HtmlHelp2.Title" xml:space="preserve">
<value>Nadpis</value>
</data>
<data name="AddIns.Profiler.Commands.FindCallsOfSelected.TabTitle" xml:space="preserve">
<value>Výsledek</value>
</data>
<data name="AddIns.Profiler.Commands.SetAsRoot.TabTitle" xml:space="preserve">
<value>Zatříděné uzly</value>
</data>
<data name="AddIns.Profiler.Commands.ShowFunctions.TabTitle" xml:space="preserve">
<value>Všechny funkce pro {0}</value>
</data>
<data name="AddIns.Profiler.DatabaseTooNewError" xml:space="preserve">
<value>Vybraná SharpDevelop profiling session byla vytvořena novější verzí SharpDevelopu, tudíž bohužel nejde otevřít.</value>
</data>
<data name="AddIns.Profiler.FileExtensionDescription" xml:space="preserve">
<value>Profilovací seance SharpDevelop</value>
</data>
<data name="AddIns.Profiler.Messages.FileNotFound" xml:space="preserve">
<value>Projekt nemůže nastartovat, protože nebyl nalezen EXE. Zkontrolujte, zda projekt včetně všech závislostí byl korektně sestaven.</value>
</data>
<data name="AddIns.Profiler.Messages.NoStartableProjectFound" xml:space="preserve">
<value>Žádný projekt schopný startu nebyl nalezen. Zazvonil zvonec...</value>
</data>
<data name="AddIns.Profiler.Messages.NoStartableProjectWantToProfileStartupProject" xml:space="preserve">
<value>Projekt nelze nastartovat. Chcete místo toho profilovat StartUp projekt celého řešení?</value>
</data>
<data name="AddIns.Profiler.Messages.PreparingForAnalysis" xml:space="preserve">
<value>Příprava analýzy ...</value>
</data>
<data name="AddIns.Profiler.Messages.RegisterFailed" xml:space="preserve">
<value>Nelze zaregistrovat profiler v COM registry. Profilování nelze zahájit.</value>
</data>
<data name="AddIns.Profiler.Messages.UnregisterFailed" xml:space="preserve">
<value>Profiler nelze odebrat z COM registry!</value>
</data>
<data name="AddIns.Profiler.ProfileExecutable" xml:space="preserve">
<value>Volba EXE k profilování</value>
</data>
<data name="AddIns.Profiler.ProfileExecutable.ErrorMessage" xml:space="preserve">
<value>Neplatné údaje. Zkuste to znovu a lépe!</value>
</data>
<data name="AddIns.Profiler.ProfileExecutableForm.CmdLineArgsText" xml:space="preserve">
<value>Argumenty příkazového řádku:</value>
</data>
<data name="AddIns.Profiler.ProfileExecutableForm.DescriptionText" xml:space="preserve">
<value>Zvolte cestu k profilovanému EXE. Navíc můžete zvolit pracovní složku a parametry příkazového řádku.</value>
</data>
<data name="AddIns.SearchReplace.SearchProgressTitle" xml:space="preserve">
<value>Hledat...</value>
</data>
@ -339,12 +600,24 @@ @@ -339,12 +600,24 @@
<data name="AddIns.Subversion.EditConflicts" xml:space="preserve">
<value>Upravit konflikty</value>
</data>
<data name="AddIns.Subversion.ErrorDelete" xml:space="preserve">
<value>Chyba při mazání ${File}</value>
</data>
<data name="AddIns.Subversion.Export" xml:space="preserve">
<value>Export</value>
</data>
<data name="AddIns.Subversion.ForceDelete" xml:space="preserve">
<value>Smazat natvrdo</value>
</data>
<data name="AddIns.Subversion.History" xml:space="preserve">
<value>Historie</value>
</data>
<data name="AddIns.Subversion.ItemRemovedFromIgnoreList" xml:space="preserve">
<value>'{0}' odstraněn ze seznamu k ignoraci</value>
</data>
<data name="AddIns.Subversion.Lock" xml:space="preserve">
<value>Zámek pro get</value>
</data>
<data name="AddIns.Subversion.MarkConflictsAsResolved" xml:space="preserve">
<value>Označit konflikty za vyřešené</value>
</data>
@ -375,12 +648,18 @@ @@ -375,12 +648,18 @@
<data name="AddIns.Subversion.RemoveFromIgnoreList" xml:space="preserve">
<value>Odebrat ze seznamu ignorovaných</value>
</data>
<data name="AddIns.Subversion.RemoveMovedFile" xml:space="preserve">
<value>Sobor sem byl právě přesunut, chcete ho vážně zase smazat?</value>
</data>
<data name="AddIns.Subversion.RepositoryBrowser" xml:space="preserve">
<value>Průzkumník repository</value>
</data>
<data name="AddIns.Subversion.Revert" xml:space="preserve">
<value>Revert</value>
</data>
<data name="AddIns.Subversion.RevertLocalModifications" xml:space="preserve">
<value>Soubor má lokálni změny. Skutečně ho chcete odstranit?</value>
</data>
<data name="AddIns.Subversion.RevisionGraph" xml:space="preserve">
<value>Graf revizí</value>
</data>

24
data/resources/StringResources.fr.resx

@ -405,6 +405,27 @@ Ils ne fonctionneront plus si vous désinstallez cet Add-In! Souhaitez-vous cont @@ -405,6 +405,27 @@ Ils ne fonctionneront plus si vous désinstallez cet Add-In! Souhaitez-vous cont
<data name="AddIns.Debugger.Console.DeleteHistory" xml:space="preserve">
<value>Effacer l'historique</value>
</data>
<data name="AddIns.Git.DirectoryDoesNotContainGit" xml:space="preserve">
<value>'git.exe' est introuvable dans le dossier sélectionné!</value>
</data>
<data name="AddIns.Git.NoPathFoundStatus" xml:space="preserve">
<value>Git n'est pas installé.</value>
</data>
<data name="AddIns.Git.Options.FindGitPath" xml:space="preserve">
<value>Choisir l'emplacement de Git</value>
</data>
<data name="AddIns.Git.Options.GitPath" xml:space="preserve">
<value>Emplacement de Git</value>
</data>
<data name="AddIns.Git.Options.ResetGitPath" xml:space="preserve">
<value>Réinitialiser l'emplacement de Git.</value>
</data>
<data name="AddIns.Git.Options.Title" xml:space="preserve">
<value>Options Git</value>
</data>
<data name="AddIns.Git.PathAutoDetectStatus" xml:space="preserve">
<value>(détecté automatiquement)</value>
</data>
<data name="AddIns.Git.TortoiseGitRequired" xml:space="preserve">
<value>TortoiseGit doit être installé pour exécuter cette action.</value>
</data>
@ -4814,6 +4835,9 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace @@ -4814,6 +4835,9 @@ Soit ils n'existent pas, soit le document Wix n'est pas pour WiX 3.0 et l'espace
<data name="ICSharpCode.WixBinding.WixVisualStudioExtensionTitle" xml:space="preserve">
<value>Extension Visual Studio</value>
</data>
<data name="ICSharpCode.WpfDesign.AddIn.PressAltText" xml:space="preserve">
<value>Appuyer sur "Alt" pour saisir un Conteneur</value>
</data>
<data name="ICSharpCode.WpfDesign.AddIn.ThumbnailViewPad" xml:space="preserve">
<value>Vignettes du Concepteur WPF</value>
</data>

151
data/resources/StringResources.it.resx

@ -164,7 +164,7 @@ una riga a capo</value> @@ -164,7 +164,7 @@ una riga a capo</value>
<value>Il componente è stato installato due volte. Rimuovere una copia.</value>
</data>
<data name="AddInManager.AddInMustHaveIdentity" xml:space="preserve">
<value>L'AddIn deve avere un &lt;Identity&gt; per poter essere utilizzato dal gestore di AddIn.</value>
<value>Il componente deve avere un &lt;Identity&gt; per poter essere utilizzato dal gestore di AddIn.</value>
</data>
<data name="AddInManager.AddInRemoved" xml:space="preserve">
<value>Il componente sarà rimosso dopo il riavvio di SharpDevelop</value>
@ -173,7 +173,7 @@ una riga a capo</value> @@ -173,7 +173,7 @@ una riga a capo</value>
<value>Il componente sarà aggiornato dopo il riavvio di SharpDevelop</value>
</data>
<data name="AddInManager.AddInWillBeDisabled" xml:space="preserve">
<value>L'AddIn sarà disabilitato dopo il riavvio di SharpDevelop</value>
<value>Il componente sarà disabilitato dopo il riavvio di SharpDevelop</value>
</data>
<data name="AddInManager.CannotDisableAddInManager" xml:space="preserve">
<value>Impossibile disabilitare il gestore degli AddIn in quanto è necessario riabilitare gli AddIn !!!</value>
@ -182,13 +182,13 @@ una riga a capo</value> @@ -182,13 +182,13 @@ una riga a capo</value>
<value>Impossibile installare gli AddIn dentro la cartella ${ProductName}, essi verranno caricati come AddIn preinstallati automaticamente.</value>
</data>
<data name="AddInManager.DescriptionCancelDeinstallation" xml:space="preserve">
<value>Annulla rimozione del componente/i selezionato/i.</value>
<value>Annulla disinstallazione del/i componente/i selezionato/i.</value>
</data>
<data name="AddInManager.DescriptionCancelInstall" xml:space="preserve">
<value>Annulla l'installazione dei componenti selezionati</value>
<value>Annulla l'installazione del/i componente/i selezionato/i</value>
</data>
<data name="AddInManager.DescriptionCancelUpdate" xml:space="preserve">
<value>Annulla l'aggiornamento del componente/i selezionato/i</value>
<value>Annulla l'aggiornamento del/i componente/i selezionato/i</value>
</data>
<data name="AddInManager.DescriptionDisable" xml:space="preserve">
<value>Disabilita il componente/i selezionato/i.</value>
@ -197,20 +197,20 @@ una riga a capo</value> @@ -197,20 +197,20 @@ una riga a capo</value>
<value>Abilita il componente/i selezionato/i.</value>
</data>
<data name="AddInManager.DescriptionInconsistentSelection" xml:space="preserve">
<value>La selezione non è consistente, scegli solo AddIn con lo stesso status.</value>
<value>La selezione non è consistente, scegli solo Componenti con lo stesso status.</value>
</data>
<data name="AddInManager.FileAssociation" xml:space="preserve">
<value>Pacchetto Installazione Componente</value>
</data>
<data name="AddInManager.FileFilter" xml:space="preserve">
<value>AddIn di SharpDevelop|*.addin;*.sdaddin|Tutti i file|*.*</value>
<value>Componenti di SharpDevelop|*.addin;*.sdaddin|Tutti i file|*.*</value>
</data>
<data name="AddInManager.InstallButton" xml:space="preserve">
<value>&amp;Install Componente</value>
</data>
<data name="AddInManager.NoAddInsInstalled" xml:space="preserve">
<value>Nessun Componente installato.
Scaricare un componente da internet, poi cliccare 'Install AddIn' e selezionare il file scaricato per installarlo.</value>
Scaricare un componente da internet, poi cliccare 'Installa AddIn' e selezionare il file scaricato per installarlo.</value>
</data>
<data name="AddInManager.OpenWebsite" xml:space="preserve">
<value>Apri Sito web</value>
@ -225,10 +225,10 @@ Scaricare un componente da internet, poi cliccare 'Install AddIn' e selezionare @@ -225,10 +225,10 @@ Scaricare un componente da internet, poi cliccare 'Install AddIn' e selezionare
<value>Dipendenze richieste:</value>
</data>
<data name="AddInManager.ShowPreinstalledAddIns" xml:space="preserve">
<value>Mostra AddIn preinstallati</value>
<value>Mostra Componenti preinstallati</value>
</data>
<data name="AddInManager.Title" xml:space="preserve">
<value>Gestore AddIn</value>
<value>Gestore Componenti</value>
</data>
<data name="AddInManager.UnknownFileFormat" xml:space="preserve">
<value>Formato file sconosciuto:</value>
@ -243,7 +243,7 @@ Scaricare un componente da internet, poi cliccare 'Install AddIn' e selezionare @@ -243,7 +243,7 @@ Scaricare un componente da internet, poi cliccare 'Install AddIn' e selezionare
<value>Cerca:</value>
</data>
<data name="AddInManager2.AddInsView.ShowPreinstalledAddIns" xml:space="preserve">
<value>Visualizza AddIns preinstallati</value>
<value>Visualizza Componenti preinstallati</value>
</data>
<data name="AddInManager2.AddInsView.ShowPrereleaseAddIns" xml:space="preserve">
<value>Visualizza prereleases</value>
@ -252,7 +252,7 @@ Scaricare un componente da internet, poi cliccare 'Install AddIn' e selezionare @@ -252,7 +252,7 @@ Scaricare un componente da internet, poi cliccare 'Install AddIn' e selezionare
<value>Non puoi disinstallare il gestore AddIn perché ti serve per reinstallare gli AddIns!</value>
</data>
<data name="AddInManager2.DefaultRepository" xml:space="preserve">
<value>Lista SharpDevelop AddIn</value>
<value>Repository dei Componenti di SharpDevelop</value>
</data>
<data name="AddInManager2.Details.CreatedBy" xml:space="preserve">
<value>Creato da:</value>
@ -291,11 +291,11 @@ Scaricare un componente da internet, poi cliccare 'Install AddIn' e selezionare @@ -291,11 +291,11 @@ Scaricare un componente da internet, poi cliccare 'Install AddIn' e selezionare
<value>Mostra i Termini di Licenza</value>
</data>
<data name="AddInManager2.DisableDependentWarning" xml:space="preserve">
<value>I seguenti AddIns dipendono da "{0}":
<value>I seguenti Componenti dipendono da "{0}":
{1}
Smetteranno di funzionare dopo aver disabilitato questo AddIn! Sei sicuro di voler continuare?</value>
Smetteranno di funzionare dopo aver disabilitato questo Componente! Sei sicuro di voler continuare?</value>
</data>
<data name="AddInManager2.InstallDependentMessage" xml:space="preserve">
<value>"{0}" richiede almeno un pacchetto aggiuntivo:
@ -305,7 +305,7 @@ Smetteranno di funzionare dopo aver disabilitato questo AddIn! Sei sicuro di vol @@ -305,7 +305,7 @@ Smetteranno di funzionare dopo aver disabilitato questo AddIn! Sei sicuro di vol
L'applicazione tenterà di scaricarlo e installarlo. Sei sicuro di voler continuare?</value>
</data>
<data name="AddInManager2.InvalidPackage" xml:space="preserve">
<value>Il pacchetto selezionato non contiene un AddIn per SharpDevelop valido.</value>
<value>Il pacchetto selezionato non contiene un Componente valido per SharpDevelop.</value>
</data>
<data name="AddInManager2.LicenseAcceptance.AcceptButton" xml:space="preserve">
<value>&amp;Accetto</value>
@ -322,10 +322,10 @@ Se non accetti i termini di licenza clicca "Rifiuto".</value> @@ -322,10 +322,10 @@ Se non accetti i termini di licenza clicca "Rifiuto".</value>
Se non accetti i termini di licenza clicca "Rifiuto".</value>
</data>
<data name="AddInManager2.LicenseAcceptance.Introduction.Package" xml:space="preserve">
<value>Questo pacchetto richiede l'accettazione della licenza:</value>
<value>Il seguente pacchetto richiede l'accettazione della licenza:</value>
</data>
<data name="AddInManager2.LicenseAcceptance.Introduction.Packages" xml:space="preserve">
<value>I seguenti pacchetti richiedono un clic per accettare la licenza:</value>
<value>I seguenti pacchetti richiedono l'accettazione della licenza:</value>
</data>
<data name="AddInManager2.LicenseAcceptance.Title" xml:space="preserve">
<value>Condizioni di Licenza</value>
@ -352,7 +352,7 @@ Se non accetti i termini di licenza clicca "Rifiuto".</value> @@ -352,7 +352,7 @@ Se non accetti i termini di licenza clicca "Rifiuto".</value>
<value>Sorgente:</value>
</data>
<data name="AddInManager2.OptionPanel.Tree.AddIns" xml:space="preserve">
<value>AddIns</value>
<value>Componenti</value>
</data>
<data name="AddInManager2.OptionPanel.Tree.General" xml:space="preserve">
<value>Generale</value>
@ -361,14 +361,14 @@ Se non accetti i termini di licenza clicca "Rifiuto".</value> @@ -361,14 +361,14 @@ Se non accetti i termini di licenza clicca "Rifiuto".</value>
<value>Repositories</value>
</data>
<data name="AddInManager2.RemoveDependentWarning" xml:space="preserve">
<value>I seguenti AddIns dipendono da "{0}":
<value>I seguenti Componenti dipendono da "{0}":
{1}
Smetteranno di funzionare dopo la rimozione di questo AddIn! Sei sicuro di voler continuare?</value>
Smetteranno di funzionare dopo la rimozione di questo Componente! Sei sicuro di voler continuare?</value>
</data>
<data name="AddInManager2.SDAddInFileFilter" xml:space="preserve">
<value>SharpDevelop AddIns|*.sdaddin;*.addin|All files|*.*</value>
<value>Componenti di SharpDevelop|*.sdaddin;*.addin|All files|*.*</value>
</data>
<data name="AddInManager2.UpdateNotifier.BubbleText" xml:space="preserve">
<value>Clicca qui per visualizzare gli aggiornamenti.</value>
@ -413,7 +413,7 @@ Smetteranno di funzionare dopo la rimozione di questo AddIn! Sei sicuro di voler @@ -413,7 +413,7 @@ Smetteranno di funzionare dopo la rimozione di questo AddIn! Sei sicuro di voler
<value>Pulisci console</value>
</data>
<data name="AddIns.Debugger.Console.DeleteHistory" xml:space="preserve">
<value>Cancella storico</value>
<value>Cancella cronologia</value>
</data>
<data name="AddIns.Git.DirectoryDoesNotContainGit" xml:space="preserve">
<value>'git.exe' non è stato trovato nella cartella selezionata!</value>
@ -500,7 +500,7 @@ Smetteranno di funzionare dopo la rimozione di questo AddIn! Sei sicuro di voler @@ -500,7 +500,7 @@ Smetteranno di funzionare dopo la rimozione di questo AddIn! Sei sicuro di voler
<value>Numero di bytes per linea</value>
</data>
<data name="AddIns.HexEditor.Display" xml:space="preserve">
<value>Display</value>
<value>Visualizza</value>
</data>
<data name="AddIns.HexEditor.Display.Elements.Data" xml:space="preserve">
<value>Dati</value>
@ -554,7 +554,7 @@ Smetteranno di funzionare dopo la rimozione di questo AddIn! Sei sicuro di voler @@ -554,7 +554,7 @@ Smetteranno di funzionare dopo la rimozione di questo AddIn! Sei sicuro di voler
<value>Titolo</value>
</data>
<data name="AddIns.PackageManagement.ConsolePad.Title" xml:space="preserve">
<value>Console per la gestione del Pacchtto</value>
<value>Console per la gestione del Pacchetto</value>
</data>
<data name="AddIns.PackageManagement.Menu.ManagePackages" xml:space="preserve">
<value>Gestisce i Pacchetti...</value>
@ -584,7 +584,7 @@ Smetteranno di funzionare dopo la rimozione di questo AddIn! Sei sicuro di voler @@ -584,7 +584,7 @@ Smetteranno di funzionare dopo la rimozione di questo AddIn! Sei sicuro di voler
<value>Sessione di Profilazione SharpDevelop</value>
</data>
<data name="AddIns.Profiler.Messages.FileNotFound" xml:space="preserve">
<value>Il progetto non può essere avviato perché non è stato trovato l'eseguibile, verifica che il progetto e tutte le sue dipendenze siano stati compilati correttamente!</value>
<value>Il progetto non può essere avviato perché non è stato trovato l'eseguibile, verificare che il progetto e tutte le sue dipendenze siano stati compilati correttamente!</value>
</data>
<data name="AddIns.Profiler.Messages.NoStartableProjectFound" xml:space="preserve">
<value>Nessun progetto di avvio. Annullo...</value>
@ -641,7 +641,8 @@ Smetteranno di funzionare dopo la rimozione di questo AddIn! Sei sicuro di voler @@ -641,7 +641,8 @@ Smetteranno di funzionare dopo la rimozione di questo AddIn! Sei sicuro di voler
<value>Argomenti della linea di comando:</value>
</data>
<data name="AddIns.Profiler.ProfileExecutableForm.DescriptionText" xml:space="preserve">
<value>Seleziona il percorso dell'eseguibile che vuoi profilare. Puoi specificare anche una cartella di lavoro e gli argomenti da linea di comando.</value>
<value>Seleziona il percorso dell'eseguibile che vuoi profilare.
Puoi specificare anche una cartella di lavoro e gli argomenti da linea di comando.</value>
</data>
<data name="AddIns.Profiler.ProfileExecutableForm.ExePathText" xml:space="preserve">
<value>Percorso eseguibile:</value>
@ -905,7 +906,7 @@ Smetteranno di funzionare dopo la rimozione di questo AddIn! Sei sicuro di voler @@ -905,7 +906,7 @@ Smetteranno di funzionare dopo la rimozione di questo AddIn! Sei sicuro di voler
<value>Confronta</value>
</data>
<data name="AddIns.Subversion.Options.AutoAdd" xml:space="preserve">
<value>Aggiungi automaticamente i nuovi files</value>
<value>&amp;Aggiungi automaticamente i nuovi files</value>
</data>
<data name="AddIns.Subversion.Options.AutoDelete" xml:space="preserve">
<value>Rimuove automaticamente i file &amp;cancellati</value>
@ -951,7 +952,7 @@ Smetteranno di funzionare dopo la rimozione di questo AddIn! Sei sicuro di voler @@ -951,7 +952,7 @@ Smetteranno di funzionare dopo la rimozione di questo AddIn! Sei sicuro di voler
</data>
<data name="AddIns.Subversion.SVNRequiresSavingFiles" xml:space="preserve">
<value>L'operazione di controllo versione coinvolgerà file con modifiche non salvate.
Salva questi file prima di eseguire l'operazione.</value>
Salvare questi file prima di eseguire l'operazione.</value>
</data>
<data name="AddIns.Subversion.Switch" xml:space="preserve">
<value>Scambia</value>
@ -978,7 +979,8 @@ Salva questi file prima di eseguire l'operazione.</value> @@ -978,7 +979,8 @@ Salva questi file prima di eseguire l'operazione.</value>
<value>Non voglio partecipare</value>
</data>
<data name="AddIns.UsageDataCollector.Introduction" xml:space="preserve">
<value>Abbiamo bisogno del tuo aiuto! Per migliorare SharpDevelop abbiamo bisogno di sapere quali sono le funzionalità maggiormente usate. SharpDevelop può raccogliere queste informazioni e inviarle automaticamente.</value>
<value>Abbiamo bisogno del tuo aiuto! Per migliorare SharpDevelop abbiamo bisogno di sapere quali sono le funzionalità maggiormente usate.
SharpDevelop può raccogliere queste informazioni e inviarle automaticamente.</value>
</data>
<data name="AddIns.UsageDataCollector.PrivacyStatement" xml:space="preserve">
<value>Informativa sulla Privacy</value>
@ -1071,7 +1073,8 @@ Salva questi file prima di eseguire l'operazione.</value> @@ -1071,7 +1073,8 @@ Salva questi file prima di eseguire l'operazione.</value>
<value>Salva come UTF-8</value>
</data>
<data name="BackendBindings.ExecutionManager.CantExecuteDLLError" xml:space="preserve">
<value>Il Progetto è stato configurato come DLL e non è stato specificato nessun comando da eseguire. Se ne può specificare uno nelle opzioni del progetto.</value>
<value>Il Progetto è stato configurato come DLL e non è stato specificato nessun comando da eseguire.
Se ne può specificare uno nelle opzioni del progetto.</value>
</data>
<data name="BackendBindings.ExecutionManager.NoSingleFileCompilation" xml:space="preserve">
<value>La compilazione di un singolo file non è supportata, creare un progetto!</value>
@ -1664,6 +1667,9 @@ Premi Esc per annullare questa operazione.</value> @@ -1664,6 +1667,9 @@ Premi Esc per annullare questa operazione.</value>
<data name="Dialog.AdvancedService.Client.GenerateAsyncOperations" xml:space="preserve">
<value>Genera operazioni asincrone</value>
</data>
<data name="Dialog.AdvancedService.ClientHeader" xml:space="preserve">
<value>Client</value>
</data>
<data name="Dialog.Componnents.RichMenuItem.NoRecentFilesString" xml:space="preserve">
<value>file recenti</value>
</data>
@ -1735,7 +1741,7 @@ Premi Esc per annullare questa operazione.</value> @@ -1735,7 +1741,7 @@ Premi Esc per annullare questa operazione.</value>
</data>
<data name="Dialog.Goto.IntroText" xml:space="preserve">
<value>Inserire una espressione da raggiungere.
Inserire numero linea, nome classe e nome file.
Si possono usare numeri di linea, nomi di classi e nomi di file.
Ad esempio: "120", "MainClass", "Main.cs, 120".</value>
</data>
<data name="Dialog.HighlightingEditor.ColorDlg.Background" xml:space="preserve">
@ -1751,7 +1757,7 @@ Ad esempio: "120", "MainClass", "Main.cs, 120".</value> @@ -1751,7 +1757,7 @@ Ad esempio: "120", "MainClass", "Main.cs, 120".</value>
<value>Corsivo</value>
</data>
<data name="Dialog.HighlightingEditor.ColorDlg.Underline" xml:space="preserve">
<value>Indefinito</value>
<value>Sottolineato</value>
</data>
<data name="Dialog.HighlightingEditor.Export" xml:space="preserve">
<value>Esporta schema colori</value>
@ -2085,7 +2091,7 @@ Vuoi aggiungere il nuovo file al progetto ${CurrentProjectName}?</value> @@ -2085,7 +2091,7 @@ Vuoi aggiungere il nuovo file al progetto ${CurrentProjectName}?</value>
<value>Salva</value>
</data>
<data name="Dialog.Options.IDEOptions.CodeCompletion.TooltipLabel" xml:space="preserve">
<value>Impostazione suggerimenti</value>
<value>Impostazioni suggerimenti</value>
</data>
<data name="Dialog.Options.IDEOptions.CodeCompletion.TooltipLinkTarget" xml:space="preserve">
<value>I collegamenti nei suggerimenti dovrebbero andare a</value>
@ -2568,6 +2574,9 @@ Vuoi aggiungere il nuovo file al progetto ${CurrentProjectName}?</value> @@ -2568,6 +2574,9 @@ Vuoi aggiungere il nuovo file al progetto ${CurrentProjectName}?</value>
<data name="Dialog.Options.PrjOptions.Configuration.FolderBrowserDescription" xml:space="preserve">
<value>Seleziona la directory dove l'assembly verrà creato.</value>
</data>
<data name="Dialog.Options.ServicesReferencesText" xml:space="preserve">
<value>Riferimenti del Servizio</value>
</data>
<data name="Dialog.Options.TextEditorOptions.EditHighlighting.Title" xml:space="preserve">
<value>Evidenziazioni</value>
</data>
@ -2909,9 +2918,9 @@ Vuoi aggiungere il nuovo file al progetto ${CurrentProjectName}?</value> @@ -2909,9 +2918,9 @@ Vuoi aggiungere il nuovo file al progetto ${CurrentProjectName}?</value>
</data>
<data name="Dialog.ProjectOptions.StorageLocationHelp" xml:space="preserve">
<value>Con il bottone piccolo davanti ad ogni impostazione di configurazione, si sceglie dove l'impostazione è memorizzata.
"Specifiche della Configurazione" significa che le impostazioni possono avere valori differenti in ogni configurazione (debug/release)
"Specifiche della Configurazione" significa che le impostazioni possono avere valori differenti in ogni configurazione (Debug/Release)
"Specifiche della Piattaforma" significa che le impostazioni possono avere valori differenti a seconda della piattaforma
Puoi anche scegliere di memorizzare le impostazioni in un file .user invece che nel file di progetto, così che ogni sviluppatore possa utilizzare un valore differentesenza andare in conflitto con il sistema di controllo dei sorgenti.</value>
Puoi anche scegliere di memorizzare le impostazioni in un file .user invece che nel file di progetto, così che ogni sviluppatore possa utilizzare un valore differente senza andare in conflitto con il sistema di controllo dei sorgenti.</value>
</data>
<data name="Dialog.ProjectOptions.StoreInUserFile" xml:space="preserve">
<value>Memorizza in file .user</value>
@ -3619,7 +3628,7 @@ Puoi anche scegliere di memorizzare le impostazioni in un file .user invece che @@ -3619,7 +3628,7 @@ Puoi anche scegliere di memorizzare le impostazioni in un file .user invece che
<data name="ICSharpCode.NAntAddIn.AbstractRunNAntCommand.NAntExeNotFoundMessage" xml:space="preserve">
<value>Impossibile trovare NAnt '{0}'.
Configura il percorso di NAnt nelle opzioni di SharpDevelop.</value>
Configura il percorso di NAnt nelle Opzioni di SharpDevelop.</value>
</data>
<data name="ICSharpCode.NAntAddIn.AbstractRunNAntCommand.NAntStoppedMessage" xml:space="preserve">
<value>Build di NAnt arrestata.</value>
@ -3775,10 +3784,11 @@ Configura il percorso di NAnt nelle opzioni di SharpDevelop.</value> @@ -3775,10 +3784,11 @@ Configura il percorso di NAnt nelle opzioni di SharpDevelop.</value>
<value>Invia alla Console Ruby</value>
</data>
<data name="ICSharpCode.Services.FileUtilityService.CantLoadFileStandardText" xml:space="preserve">
<value>Non si può caricare il file ${FileNameWithoutPath} da ${Path}. Controllare i permessi e la presenza del file stesso.</value>
<value>Non si può caricare il file ${FileNameWithoutPath} da ${Path}.
Controllare i permessi e la presenza del file.</value>
</data>
<data name="ICSharpCode.Services.FileUtilityService.CantSaveFileStandardText" xml:space="preserve">
<value>non si può salvare il file ${FileNameWithoutPath} in ${Path}. Scegliere un altro nome o controllare se la cartella esiste e che si hanno i permessi di scrittura. (potrebbe essere attivata la protezione da scrittura ??).</value>
<value>Non si può salvare il file ${FileNameWithoutPath} in ${Path}. Scegliere un altro nome o controllare se la cartella esiste e che si hanno i permessi di scrittura. (potrebbe essere attivata la protezione da scrittura?)</value>
</data>
<data name="ICSharpCode.SharpDevelop.BrowserDisplayBinding.Browser" xml:space="preserve">
<value>Visualizzatore</value>
@ -3895,7 +3905,7 @@ Nota: Questa operazione non influenza i propri layout.</value> @@ -3895,7 +3905,7 @@ Nota: Questa operazione non influenza i propri layout.</value>
</data>
<data name="ICSharpCode.SharpDevelop.Commands.ReloadFile.ReloadFileQuestion" xml:space="preserve">
<value>Si vuole veramente ricaricare il file ?
Tutti i cambiamenti saranno persi.</value>
Tutte le modifiche andranno perse.</value>
</data>
<data name="ICSharpCode.SharpDevelop.Commands.RunCompile.LanguageBindingCantCompileFileError" xml:space="preserve">
<value>Il collegamento al linguaggio ${LanguageBinding} non può compilare ${FileName}.</value>
@ -3924,8 +3934,7 @@ Tutti i cambiamenti saranno persi.</value> @@ -3924,8 +3934,7 @@ Tutti i cambiamenti saranno persi.</value>
<data name="ICSharpCode.SharpDevelop.DefaultEditor.Gui.Editor.TextEditorDisplayBinding.FileAlteredMessage" xml:space="preserve">
<value>Il file
${File}
è stato cambiato esternamente. Vuoi ricaricarlo?
</value>
è stato cambiato da un'altra applicazione. Vuoi ricaricarlo?</value>
</data>
<data name="ICSharpCode.SharpDevelop.DefaultEditor.IncrementalSearch.ForwardsSearchStatusBarMessage" xml:space="preserve">
<value>Ricerca incrementale:</value>
@ -4168,7 +4177,7 @@ ${File} @@ -4168,7 +4177,7 @@ ${File}
<value>Stai tentanto di aggiungere un componente che risulta in una dipendenza ciclica.</value>
</data>
<data name="ICSharpCode.SharpDevelop.FormDesigner.Hosts.DefaultDesignerHost.ExceptionDuringComponentCreationError" xml:space="preserve">
<value>SI è verificata un'eccezione nella creazione del componente per il Forms Designer (Un componente ha genrato un'eccezione nel costruttore).
<value>SI è verificata un'eccezione nella creazione del componente per il Forms Designer (Un componente ha generato un'eccezione nel costruttore).
QUESTO NON INTERESSA IL CODICE SORGENTE.</value>
</data>
<data name="ICSharpCode.SharpDevelop.FormDesigner.LoadErrorCheckSourceCodeForErrors" xml:space="preserve">
@ -4180,7 +4189,7 @@ QUESTO NON INTERESSA IL CODICE SORGENTE.</value> @@ -4180,7 +4189,7 @@ QUESTO NON INTERESSA IL CODICE SORGENTE.</value>
<data name="ICSharpCode.SharpDevelop.FormDesigner.ToolboxProvider.CantLoadSidbarComponentLibraryWarning" xml:space="preserve">
<value>Impossibile caricare la barra laterale dei componenti.
Nessun componente Windows Forms trovato, configurare la barra laterale manualmente.
(Tasto destro sulla barra laterale-&gt;Configurare barra laterale)</value>
(Tasto destro sulla barra laterale-&gt;Personalizza barra laterale)</value>
</data>
<data name="ICSharpCode.SharpDevelop.FormDesigner.ToolboxProvider.CustomComponents" xml:space="preserve">
<value>Componenti personalizzati</value>
@ -4258,7 +4267,7 @@ Nessun componente Windows Forms trovato, configurare la barra laterale manualmen @@ -4258,7 +4267,7 @@ Nessun componente Windows Forms trovato, configurare la barra laterale manualmen
<value>Collega al Processo</value>
</data>
<data name="ICSharpCode.SharpDevelop.Gui.Dialogs.NewProjectDialog.CantCreateDirectoryError" xml:space="preserve">
<value>Impossibile creare la directory.
<value>Impossibile creare la directory di destinazione.
Controllare se si hanno i permessi richiesti.</value>
</data>
<data name="ICSharpCode.SharpDevelop.Gui.Dialogs.NewProjectDialog.IllegalProjectNameError" xml:space="preserve">
@ -4507,17 +4516,19 @@ Sono ammesse solo lettere, numeri, spazi, '.' o '_'.</value> @@ -4507,17 +4516,19 @@ Sono ammesse solo lettere, numeri, spazi, '.' o '_'.</value>
</data>
<data name="ICSharpCode.SharpDevelop.Project.UpgradeView.UpdateOnLoadDueToMissingMSBuild" xml:space="preserve">
<value>Il progetto '${ProjectName}' usa MSBuild ${OldToolsVersion}, ma questa versione non è installata.
Vuoi aggiornare il progetto a MSBuild ${NewToolsVersion}? Il progetto non può essere aperto senza essere aggiornato.</value>
Vuoi aggiornare il progetto a MSBuild ${NewToolsVersion}?
Il progetto non può essere aperto senza essere aggiornato.</value>
</data>
<data name="ICSharpCode.SharpDevelop.Project.UpgradeView.UpdateToMSBuildButton" xml:space="preserve">
<value>Aggiorna a MSBuild ${NewToolsVersion}</value>
</data>
<data name="ICSharpCode.SharpDevelop.Project.UpgradeView.UpgradeFromPreviousVersionDescription" xml:space="preserve">
<value>Questa soluzione è stata creata con una versione precedente di SharpDevelop. Potresti volerla aggiornare così da utilizzare le nuove funzionalità del linguaggio o del framework.</value>
<value>Questa soluzione è stata creata con una versione precedente di SharpDevelop.
Potresti volerla aggiornare così da utilizzare le nuove funzionalità del linguaggio o del framework.</value>
</data>
<data name="ICSharpCode.SharpDevelop.Services.AmbienceService.AmbienceNotFoundError" xml:space="preserve">
<value>Ambiente corrente non trovato.
Vai a 'Opzioni-&gt;Stile visuale' e cambia l'attuale ambiente di linguaggio.</value>
Vai a 'Opzioni-&gt;Stile visuale' e cambia l'attuale ambiente del linguaggio.</value>
</data>
<data name="ICSharpCode.TextEditor.Document.SearchReplaceManager.MarkAllDone" xml:space="preserve">
<value>Marcatori eseguiti</value>
@ -4847,6 +4858,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -4847,6 +4858,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<data name="ICSharpCode.WixBinding.WixVisualStudioExtensionTitle" xml:space="preserve">
<value>Estensione Visual Studio</value>
</data>
<data name="ICSharpCode.WpfDesign.AddIn.PressAltText" xml:space="preserve">
<value>Premere "Alt" per entrare nel Contenitore</value>
</data>
<data name="ICSharpCode.WpfDesign.AddIn.ThumbnailViewPad" xml:space="preserve">
<value>Anteprima WPF Designer</value>
</data>
@ -5079,7 +5093,7 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -5079,7 +5093,7 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<value>Generazione</value>
</data>
<data name="MainWindow.CompilerMessages.CompileVerb" xml:space="preserve">
<value>Compilazione in corso</value>
<value>Compilazione</value>
</data>
<data name="MainWindow.CompilerMessages.CreatingCOMInteropAssembly" xml:space="preserve">
<value>Generazione assembly di interoperabilità COM...</value>
@ -6471,7 +6485,8 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -6471,7 +6485,8 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<value>Tutti i formati di progetto conosciuti</value>
</data>
<data name="SharpDevelop.Solution.CannotLoadOldSolution" xml:space="preserve">
<value>Questa versione di SharpDevelop non riesce a caricare progetti creati con Visual Studio .NET 2003 (o precedenti). Prova ad usare SharpDevelop 3.2 per convertirli oppure crea un nuovo progetto e aggiungi i file esistenti.</value>
<value>Questa versione di SharpDevelop non riesce a caricare progetti creati con Visual Studio .NET 2003 (o precedenti).
Prova ad usare SharpDevelop 3.2 per convertirli oppure crea un nuovo progetto e aggiungi i file esistenti.</value>
</data>
<data name="SharpDevelop.Solution.CannotSave.IOException" xml:space="preserve">
<value>Non posso salvare {0}:\n{1}</value>
@ -6483,8 +6498,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -6483,8 +6498,9 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<value>Non posso salvare {0}:\n{1}\n\nAssicurati che il file sia scrivibile.</value>
</data>
<data name="SharpDevelop.Solution.ImportResourceWarning" xml:space="preserve">
<value>C'erano dei file di riorsa nel progetto.
SharpDevelop 2 compila le risorse differentemente: il nome della risorsa non è solo il nome del file, ma è prefissato con il nome del namespace radice e della cartella.</value>
<value>C'erano dei file di risorsa nel progetto.
SharpDevelop 2 compila le risorse differentemente: il nome della risorsa non è solo il nome del file, ma è prefissato con il nome del namespace radice e della cartella.
I files di risorsa sono stati di conseguenza rinominati/spostati.</value>
</data>
<data name="SharpDevelop.Solution.ImportResourceWarningErrorText" xml:space="preserve">
<value>I seguenti files non possono essere rinominati/spostati automaticamente:</value>
@ -6664,10 +6680,13 @@ SharpDevelop 2 compila le risorse differentemente: il nome della risorsa non è @@ -6664,10 +6680,13 @@ SharpDevelop 2 compila le risorse differentemente: il nome della risorsa non è
<value>Impostazioni base</value>
</data>
<data name="SharpReport.Wizard.BaseSettings,ReportType" xml:space="preserve">
<value>Tipo di Report</value>
<value>Tipo di Report :</value>
</data>
<data name="SharpReport.Wizard.BaseSettings.Description" xml:space="preserve">
<value>Impostazioni di base del report</value>
</data>
<data name="SharpReport.Wizard.BaseSettings.FileName" xml:space="preserve">
<value>Nome File</value>
<value>Nome File :</value>
</data>
<data name="SharpReport.Wizard.BaseSettings.GraphicsUnit" xml:space="preserve">
<value>Unità di misura Grafici</value>
@ -6685,10 +6704,10 @@ SharpDevelop 2 compila le risorse differentemente: il nome della risorsa non è @@ -6685,10 +6704,10 @@ SharpDevelop 2 compila le risorse differentemente: il nome della risorsa non è
<value>Inserisce Dato</value>
</data>
<data name="SharpReport.Wizard.BaseSettings.ReportName" xml:space="preserve">
<value>Nome del Report</value>
<value>Nome del Report :</value>
</data>
<data name="SharpReport.Wizard.BaseSettings.ReportType" xml:space="preserve">
<value>Tipo di Report</value>
<value>Tipo di Report :</value>
</data>
<data name="SharpReport.Wizard.Layout.Column" xml:space="preserve">
<value>Seleziona Colonne di Gruppo</value>
@ -6724,7 +6743,7 @@ SharpDevelop 2 compila le risorse differentemente: il nome della risorsa non è @@ -6724,7 +6743,7 @@ SharpDevelop 2 compila le risorse differentemente: il nome della risorsa non è
<value>Valori Disponibili</value>
</data>
<data name="SharpReport.Wizard.PushModel.NoProject" xml:space="preserve">
<value>Nessun progetto selezionato, prego inserire i nomi dei fils</value>
<value>Nessun progetto selezionato, prego inserire i nomi dei files</value>
</data>
<data name="SharpReport.Wizard.PushModel.SelectProject" xml:space="preserve">
<value>Classi nel progetto selezionato</value>
@ -7715,7 +7734,7 @@ SharpDevelop 2 compila le risorse differentemente: il nome della risorsa non è @@ -7715,7 +7734,7 @@ SharpDevelop 2 compila le risorse differentemente: il nome della risorsa non è
<value>&amp;Proprietà</value>
</data>
<data name="XML.MainMenu.FormatMenu.ShowTabOrder" xml:space="preserve">
<value>Mostra ordine $tabulazioni</value>
<value>Mostra ordine &amp;tabulazioni</value>
</data>
<data name="XML.MainMenu.FormatMenu.VerticalSpacingMenu" xml:space="preserve">
<value>Spaziatura &amp;Verticale</value>
@ -7790,7 +7809,7 @@ SharpDevelop 2 compila le risorse differentemente: il nome della risorsa non è @@ -7790,7 +7809,7 @@ SharpDevelop 2 compila le risorse differentemente: il nome della risorsa non è
<value>Compila il progetto o il buffer corrente (quando nessun progetto è aperto)(salva automaticamente)</value>
</data>
<data name="XML.MainMenu.RunMenu.Compile.StopDebuggingQuestion" xml:space="preserve">
<value>Devi interrompere il debugper generare il progetto.
<value>Devi interrompere il debugger generare il progetto.
Vuoi fermare il debug?</value>
</data>
<data name="XML.MainMenu.RunMenu.Compile.StopDebuggingTitle" xml:space="preserve">
@ -7800,16 +7819,16 @@ Vuoi fermare il debug?</value> @@ -7800,16 +7819,16 @@ Vuoi fermare il debug?</value>
<value>&amp;Esegui</value>
</data>
<data name="XML.MainMenu.RunMenu.Run.Description" xml:space="preserve">
<value>Esecuzione del compilato (ricompilazione)</value>
<value>Esecuzione del compilato (ricompila)</value>
</data>
<data name="XML.MainMenu.SearchMenu" xml:space="preserve">
<value>&amp;Cerca</value>
</data>
<data name="XML.MainMenu.SearchMenu.ClrBookmark" xml:space="preserve">
<value>&amp;Cancella Tutti i Segnalibri</value>
<value>&amp;Cancella Tutti i Segnalibro</value>
</data>
<data name="XML.MainMenu.SearchMenu.ClrBookmark.Description" xml:space="preserve">
<value>Cancella tutti i segnalibri nel buffer corrente</value>
<value>Cancella tutti i segnalibro nel buffer corrente</value>
</data>
<data name="XML.MainMenu.SearchMenu.Find" xml:space="preserve">
<value>&amp;Cerca...</value>
@ -7863,11 +7882,11 @@ Vuoi fermare il debug?</value> @@ -7863,11 +7882,11 @@ Vuoi fermare il debug?</value>
<value>&amp;Converti il codice in</value>
</data>
<data name="XML.MainMenu.ToolMenu.ExternalTools.EnterArguments" xml:space="preserve">
<value>Digitare argomenti per il tool:</value>
<value>Digitare argomenti per lo strumento:</value>
</data>
<data name="XML.MainMenu.ToolMenu.ExternalTools.ExecutionFailed" xml:space="preserve">
<value>Esecuzione programma esterno fallita.
Errore durante esecuzione:</value>
Errore durante l'avvio:</value>
</data>
<data name="XML.MainMenu.ToolMenu.ExternalTools.ExitedWithCode" xml:space="preserve">
<value>Interrotto con il codice:</value>
@ -7906,7 +7925,7 @@ Errore durante esecuzione:</value> @@ -7906,7 +7925,7 @@ Errore durante esecuzione:</value>
<value>Finestre</value>
</data>
<data name="XML.MainMenu.ViewMenu.SetupMenu.FilesMenu" xml:space="preserve">
<value>File</value>
<value>Files</value>
</data>
<data name="XML.MainMenu.ViewMenu.ShowStartPage" xml:space="preserve">
<value>Mo&amp;stra pagina iniziale</value>
@ -7945,7 +7964,7 @@ Errore durante esecuzione:</value> @@ -7945,7 +7964,7 @@ Errore durante esecuzione:</value>
<value>Opzioni dell'Editor</value>
</data>
<data name="XML.TextAreaContextMenu.CommentUncommentSelection" xml:space="preserve">
<value>Commenta la regione</value>
<value>Commenta la zona</value>
</data>
<data name="XML.TextAreaContextMenu.Copy" xml:space="preserve">
<value>&amp;Copia</value>
@ -7969,6 +7988,6 @@ Errore durante esecuzione:</value> @@ -7969,6 +7988,6 @@ Errore durante esecuzione:</value>
<value>Riformatta</value>
</data>
<data name="XML.TextAreaContextMenu.UncommentSelection" xml:space="preserve">
<value>Rimuovi commento regione</value>
<value>Rimuovi commento dalla zona</value>
</data>
</root>

6
data/resources/StringResources.resx

@ -8440,4 +8440,10 @@ Press Esc to cancel this operation.</value> @@ -8440,4 +8440,10 @@ Press Esc to cancel this operation.</value>
<data name="Dialog.ProjectOptions.AssemblyInfo.None" xml:space="preserve">
<value>None</value>
</data>
<data name="ICSharpCode.WpfDesign.AddIn.Options.Title" xml:space="preserve">
<value>WPF Editor</value>
</data>
<data name="ICSharpCode.WpfDesign.AddIn.Options.EnableAppXamlParsing" xml:space="preserve">
<value>Enable App.xaml parsing</value>
</data>
</root>

42
data/resources/StringResources.ru.resx

@ -1032,7 +1032,7 @@ @@ -1032,7 +1032,7 @@
<value>Шаблон имени для обработчика события:</value>
</data>
<data name="AddIns.XamlBinding.Options.HighlightingDescription" xml:space="preserve">
<value>Выберите цвета, которые должны использоваться в XAML подсветке:</value>
<value>Выберите цвета, которые должны использоваться в подсветке XAML:</value>
</data>
<data name="AddIns.XamlBinding.Options.HighlightingGroupLabel" xml:space="preserve">
<value>Подсветка</value>
@ -3289,7 +3289,7 @@ @@ -3289,7 +3289,7 @@
<value>Найти неиспользуемые ключи ресурсов</value>
</data>
<data name="Hornung.ResourceToolkit.Key" xml:space="preserve">
<value>Ключ</value>
<value>Клавиатура</value>
</data>
<data name="Hornung.ResourceToolkit.KeyLabel" xml:space="preserve">
<value>Ключ реестра:</value>
@ -3763,7 +3763,7 @@ @@ -3763,7 +3763,7 @@
<value>Результаты преобразования</value>
</data>
<data name="ICSharpCode.SharpDevelop.Commands.Convert.ConverterErrorCount" xml:space="preserve">
<value>${ErrorCount} ошибка(ок) преобразования ${FileName}:</value>
<value>Количество ошибок преобразования ${FileName}: ${ErrorCount}</value>
</data>
<data name="ICSharpCode.SharpDevelop.Commands.Convert.CorrectSourceCodeErrors" xml:space="preserve">
<value>Сначала исправьте ошибки в исходном коде (только правильный исходный код может быть преобразован).</value>
@ -3772,7 +3772,7 @@ @@ -3772,7 +3772,7 @@
<value>${FileName} не преобразован:</value>
</data>
<data name="ICSharpCode.SharpDevelop.Commands.Convert.ParserErrorCount" xml:space="preserve">
<value>При разборе найдено ${ErrorCount} ошибок(ки)</value>
<value>Количество ошибок при разборе: ${ErrorCount}</value>
</data>
<data name="ICSharpCode.SharpDevelop.Commands.Convert.ProjectConverter" xml:space="preserve">
<value>Преобразователь проекта SharpDevelop</value>
@ -4055,19 +4055,19 @@ @@ -4055,19 +4055,19 @@
<value>Добавлять комментарий "TODO" в обработчики новых событий</value>
</data>
<data name="ICSharpCode.SharpDevelop.FormDesigner.Gui.OptionPanels.LocalizationModelOptionsPanel.AssignmentRadioButton" xml:space="preserve">
<value>Связывание свойства (быстрее для небольшого числа свойств, но значительно хуже для большого числа свойств)</value>
<value>Назначение свойств (работает быстрее для небольшого количества свойств, но значительно хуже для большого числа свойств)</value>
</data>
<data name="ICSharpCode.SharpDevelop.FormDesigner.Gui.OptionPanels.LocalizationModelOptionsPanel.DefaultLocalizationModel" xml:space="preserve">
<value>Локализационная модель по умолчанию</value>
<value>Модель локализации по умолчанию</value>
</data>
<data name="ICSharpCode.SharpDevelop.FormDesigner.Gui.OptionPanels.LocalizationModelOptionsPanel.KeepModelCheckBox" xml:space="preserve">
<value>Разрешить локализационной модели существование неизменяемых форм</value>
<value>Не менять модель локализации для существующих форм</value>
</data>
<data name="ICSharpCode.SharpDevelop.FormDesigner.Gui.OptionPanels.LocalizationModelOptionsPanel.PanelName" xml:space="preserve">
<value>Модель локализации</value>
</data>
<data name="ICSharpCode.SharpDevelop.FormDesigner.Gui.OptionPanels.LocalizationModelOptionsPanel.ReflectionRadioButton" xml:space="preserve">
<value>Свойство отражения (медленнее во время выполнения для нескольких свойств, но значительно лучше при большом числе свойств, особенно со многими значениями по умолчанию)</value>
<value>Рефлексия свойств (работает медленнее во время выполнения программы для небольшого количества свойств, но значительно лучше при большом числе свойств, особенно со значениями по умолчанию)</value>
</data>
<data name="ICSharpCode.SharpDevelop.FormDesigner.Gui.OptionPanels.PanelName" xml:space="preserve">
<value>Дизайнер форм</value>
@ -4933,19 +4933,19 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -4933,19 +4933,19 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<value>Вывод XSLT</value>
</data>
<data name="ILSpyAddIn.ILSpyDoesNotExist" xml:space="preserve">
<value>Не удалось найти ILSpy в указанном месете, или у SharpDevelop не достаточно прав для доступа к нему.</value>
<value>Не удалось найти ILSpy в указанном месте, или у SharpDevelop недостаточно прав для доступа к нему.</value>
</data>
<data name="ILSpyAddIn.ILSpyPathNotSet" xml:space="preserve">
<value>Путь к ILSpy не указан.</value>
</data>
<data name="ILSpyAddIn.OpenILSpyCommand" xml:space="preserve">
<value>Открыть IlSpy</value>
<value>Открыть ILSpy</value>
</data>
<data name="ILSpyAddIn.SetILSpyPathDialog.ILSpyInfo" xml:space="preserve">
<value>Эта возможность требует наличия ILSpy. Если у вас он еще не установлен, вы можете бесплатно скачать его здесь:</value>
<value>Требуется наличие ILSpy. Если у Вас его ещё нет, Вы можете бесплатно скачать его здесь:</value>
</data>
<data name="ILSpyAddIn.SetILSpyPathDialog.PathToILSpyExe" xml:space="preserve">
<value>Полный путь к IlSpy.exe</value>
<value>Полный путь к ILSpy.exe</value>
</data>
<data name="ILSpyAddIn.SetILSpyPathDialogTitle" xml:space="preserve">
<value>Изменить путь к ILSpy</value>
@ -4999,7 +4999,7 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -4999,7 +4999,7 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<value>Выполнение главной компиляции...</value>
</data>
<data name="MainWindow.CompilerMessages.ProjectStatsOutput" xml:space="preserve">
<value>Сборка завершена: ${Errors} ошибок, ${Warnings} предупреждений</value>
<value>Сборка завершена -- ошибок: ${Errors}, предупреждений: ${Warnings}</value>
</data>
<data name="MainWindow.CompilerMessages.SkipProjectNoChanges" xml:space="preserve">
<value>Пропущено ${Name} (со стороны SharpDevelop не было изменений)</value>
@ -5119,7 +5119,7 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -5119,7 +5119,7 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<value>Рабочая область {0}</value>
</data>
<data name="MainWindow.Windows.ClassScoutLabel" xml:space="preserve">
<value>Окно классов</value>
<value>Классы</value>
</data>
<data name="MainWindow.Windows.CompilerMessageView.ClearAllButton.ToolTip" xml:space="preserve">
<value>Очистить все</value>
@ -5266,7 +5266,7 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -5266,7 +5266,7 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<value>Показать подробности об Исключении</value>
</data>
<data name="MainWindow.Windows.Debug.ExceptionForm.Terminate" xml:space="preserve">
<value>Прервать</value>
<value>Остановить</value>
</data>
<data name="MainWindow.Windows.Debug.ExceptionForm.Title" xml:space="preserve">
<value>Исключение</value>
@ -5494,7 +5494,7 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -5494,7 +5494,7 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<value>Ошибки</value>
</data>
<data name="MainWindow.Windows.ErrorList.ErrorButton.Label" xml:space="preserve">
<value>${TaskService.Errors} ошибок</value>
<value>Количество ошибок: ${TaskService.Errors}</value>
</data>
<data name="MainWindow.Windows.ErrorList.ErrorButton.ToolTip" xml:space="preserve">
<value>Включить отображение ошибок в списке.</value>
@ -6217,7 +6217,7 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -6217,7 +6217,7 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<value>Элемент в позиции каретки не может быть переименован.</value>
</data>
<data name="SharpDevelop.Refactoring.ClassesDerivingFrom" xml:space="preserve">
<value>Классы получаются из ${Name}</value>
<value>Классы, наследуемые от ${Name}</value>
</data>
<data name="SharpDevelop.Refactoring.ClipboardRingCommand" xml:space="preserve">
<value>Вставить из буфера обмена...</value>
@ -6256,7 +6256,7 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension< @@ -6256,7 +6256,7 @@ Microsoft.Tools.WindowsInstallerXml.Extensions.NetFxCompiler, WixNetFxExtension<
<value>Найти базовые классы</value>
</data>
<data name="SharpDevelop.Refactoring.FindBaseClassesOrMembersCommand" xml:space="preserve">
<value>Найти базовый</value>
<value>Найти базовые символы</value>
</data>
<data name="SharpDevelop.Refactoring.FindDerivedClassesCommand" xml:space="preserve">
<value>Найти полученные классы</value>
@ -7295,7 +7295,7 @@ SharpDevelop 2 иначе компилировал ресурсы: имя рес @@ -7295,7 +7295,7 @@ SharpDevelop 2 иначе компилировал ресурсы: имя рес
<value>Удалить все точки останова</value>
</data>
<data name="XML.MainMenu.DebugMenu.RunLastBuild" xml:space="preserve">
<value>Запустить последний билд</value>
<value>Запустить последнюю сборку</value>
</data>
<data name="XML.MainMenu.DebugMenu.RunWithoutDebug" xml:space="preserve">
<value>Запустить без отладчика</value>
@ -7517,7 +7517,7 @@ SharpDevelop 2 иначе компилировал ресурсы: имя рес @@ -7517,7 +7517,7 @@ SharpDevelop 2 иначе компилировал ресурсы: имя рес
<value>Сохранить как...</value>
</data>
<data name="XML.MainMenu.FileMenu.SaveWithEncoding" xml:space="preserve">
<value>Сохранить с декодированием...</value>
<value>Сохранить с кодировкой...</value>
</data>
<data name="XML.MainMenu.FormatMenu" xml:space="preserve">
<value>Формат</value>
@ -7777,7 +7777,7 @@ SharpDevelop 2 иначе компилировал ресурсы: имя рес @@ -7777,7 +7777,7 @@ SharpDevelop 2 иначе компилировал ресурсы: имя рес
<value>Вставить цвет...</value>
</data>
<data name="XML.MainMenu.ToolMenu.InsGUID" xml:space="preserve">
<value>Вставьте новый GUID</value>
<value>Вставить новый GUID</value>
</data>
<data name="XML.MainMenu.ToolMenu.Options" xml:space="preserve">
<value>Параметры...</value>

17
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/Src/Options/WpfEditorOptionPanel.xaml

@ -0,0 +1,17 @@ @@ -0,0 +1,17 @@
<gui:OptionPanel
x:Class="ICSharpCode.WpfDesign.AddIn.Options.WpfEditorOptionPanel"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sd="http://icsharpcode.net/sharpdevelop/core"
xmlns:core="clr-namespace:ICSharpCode.Core.Presentation;assembly=ICSharpCode.Core.Presentation"
xmlns:gui="clr-namespace:ICSharpCode.SharpDevelop.Gui;assembly=ICSharpCode.SharpDevelop"
xmlns:wpfdesign="clr-namespace:ICSharpCode.WpfDesign.AddIn.Options">
<Grid>
<CheckBox
Name="enableAppXamlParsingCheckBox"
Content="{core:Localize ICSharpCode.WpfDesign.AddIn.Options.EnableAppXamlParsing}"
IsChecked="{sd:OptionBinding wpfdesign:WpfEditorOptions.EnableAppXamlParsing}"
Margin="0,0,0,10" />
</Grid>
</gui:OptionPanel>

35
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/Src/Options/WpfEditorOptionPanel.xaml.cs

@ -0,0 +1,35 @@ @@ -0,0 +1,35 @@
// Copyright (c) 2014 AlphaSierraPapa for the SharpDevelop Team
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this
// software and associated documentation files (the "Software"), to deal in the Software
// without restriction, including without limitation the rights to use, copy, modify, merge,
// publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
// to whom the Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all copies or
// substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
// FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
using System;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Gui;
namespace ICSharpCode.WpfDesign.AddIn.Options
{
/// <summary>
/// Interaction logic for WpfEditorOptionPanel.xaml
/// </summary>
public partial class WpfEditorOptionPanel : OptionPanel
{
public WpfEditorOptionPanel()
{
InitializeComponent();
}
}
}

40
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.AddIn/Src/Options/WpfEditorOptions.cs

@ -0,0 +1,40 @@ @@ -0,0 +1,40 @@
// Copyright (c) 2014 AlphaSierraPapa for the SharpDevelop Team
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this
// software and associated documentation files (the "Software"), to deal in the Software
// without restriction, including without limitation the rights to use, copy, modify, merge,
// publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
// to whom the Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all copies or
// substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
// FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
using System;
using ICSharpCode.SharpDevelop;
namespace ICSharpCode.WpfDesign.AddIn.Options
{
/// <summary>
/// Manages options of WpfDesign AddIn.
/// </summary>
public static class WpfEditorOptions
{
const string EnableAppXamlParsingOptionName = "WpfDesign.EnableAppXamlParsing";
public static bool EnableAppXamlParsing {
get {
return SD.PropertyService.Get(EnableAppXamlParsingOptionName, false);
}
set {
SD.PropertyService.Set(EnableAppXamlParsingOptionName, value);
}
}
}
}

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

@ -54,6 +54,10 @@ @@ -54,6 +54,10 @@
<Reference Include="WindowsBase" />
</ItemGroup>
<ItemGroup>
<Compile Include="Src\Options\WpfEditorOptionPanel.xaml.cs">
<DependentUpon>WpfEditorOptionPanel.xaml</DependentUpon>
<SubType>Code</SubType>
</Compile>
<Resource Include="Images\Icons.32x32.Error.png" />
<None Include="WpfDesign.addin">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
@ -68,6 +72,7 @@ @@ -68,6 +72,7 @@
<Compile Include="Src\Commands\Remove.cs" />
<Compile Include="Src\Commands\UndoRedo.cs" />
<Compile Include="Src\Commands\ViewXaml.cs" />
<Compile Include="Src\Options\WpfEditorOptions.cs" />
<Compile Include="Src\SharpDevelopTranslations.cs" />
<Compile Include="Src\ThumbnailViewPad.cs" />
<Compile Include="Src\FileUriContext.cs" />
@ -97,6 +102,7 @@ @@ -97,6 +102,7 @@
<Compile Include="Src\WpfViewContent.cs" />
</ItemGroup>
<ItemGroup>
<Page Include="Src\Options\WpfEditorOptionPanel.xaml" />
<Page Include="Src\WpfDocumentError.xaml" />
<ProjectReference Include="..\..\..\..\Libraries\NRefactory\ICSharpCode.NRefactory\ICSharpCode.NRefactory.csproj">
<Project>{3B2A5653-EC97-4001-BB9B-D90F1AF2C371}</Project>
@ -147,5 +153,7 @@ @@ -147,5 +153,7 @@
<Page Include="Src\ImageSourceEditor\ImageSourceEditor.xaml" />
<Page Include="Src\ObjectEditor.xaml" />
</ItemGroup>
<ItemGroup />
<ItemGroup>
<Folder Include="Src\Options" />
</ItemGroup>
</Project>

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

@ -72,4 +72,11 @@ @@ -72,4 +72,11 @@
<MenuItem id="properties" label="${res:ICSharpCode.WPFDesigner.ContextMenu.Properties}" icon="Icons.16x16.PropertiesIcon" shortcut="F4" class="ICSharpCode.WpfDesign.AddIn.Commands.Properties" />
<MenuItem id="outline" label="${res:ICSharpCode.WPFDesigner.ContextMenu.Outline}" icon="PadIcons.Toolbar" class="ICSharpCode.WpfDesign.AddIn.Commands.Outline" />
</Path>
<Path name="/SharpDevelop/Dialogs/OptionsDialog/TextEditorOptions">
<OptionPanel id = "WpfEditorOptionPanel"
insertafter = "XamlCompletionPanel"
label = "${res:ICSharpCode.WpfDesign.AddIn.Options.Title}"
class = "ICSharpCode.WpfDesign.AddIn.Options.WpfEditorOptionPanel" />
</Path>
</AddIn>

49
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/DesignPanel.cs

@ -34,6 +34,8 @@ using ICSharpCode.WpfDesign.Adorners; @@ -34,6 +34,8 @@ using ICSharpCode.WpfDesign.Adorners;
using ICSharpCode.WpfDesign.Designer.Controls;
using ICSharpCode.WpfDesign.Designer.UIExtensions;
using ICSharpCode.WpfDesign.Designer.Xaml;
using ICSharpCode.WpfDesign.Extensions;
using System.Linq;
namespace ICSharpCode.WpfDesign.Designer
{
@ -372,6 +374,21 @@ namespace ICSharpCode.WpfDesign.Designer @@ -372,6 +374,21 @@ namespace ICSharpCode.WpfDesign.Designer
int dx = 0;
int dy = 0;
/// <summary>
/// If interface implementing class sets this to false defaultkeyaction will be
/// </summary>
/// <param name="e"></param>
/// <returns></returns>
bool InvokeDefaultKeyDownAction(Extension e)
{
var keyDown = e as IKeyDown;
if (keyDown != null) {
return keyDown.InvokeDefaultAction;
}
return true;
}
private void DesignPanel_KeyUp(object sender, KeyEventArgs e)
{
if (e.Key == Key.Left || e.Key == Key.Right || e.Key == Key.Up || e.Key == Key.Down)
@ -383,10 +400,33 @@ namespace ICSharpCode.WpfDesign.Designer @@ -383,10 +400,33 @@ namespace ICSharpCode.WpfDesign.Designer
placementOp = null;
}
}
//pass the key event to the underlying objects if they have implemented IKeyUp interface
//OBS!!!! this call needs to be here, after the placementOp.Commit().
//In case the underlying object has a operation of its own this operation needs to be commited first
foreach (DesignItem di in Context.Services.Selection.SelectedItems.Reverse()) {
foreach (Extension ext in di.Extensions) {
var keyUp = ext as IKeyUp;
if (keyUp != null) {
keyUp.KeyUpAction(sender, e);
}
}
}
}
void DesignPanel_KeyDown(object sender, KeyEventArgs e)
{
//pass the key event down to the underlying objects if they have implemented IKeyUp interface
//OBS!!!! this call needs to be here, before the PlacementOperation.Start.
//In case the underlying object has a operation of its own this operation needs to be set first
foreach (DesignItem di in Context.Services.Selection.SelectedItems) {
foreach (Extension ext in di.Extensions) {
var keyDown = ext as IKeyDown;
if (keyDown != null) {
keyDown.KeyDownAction(sender, e);
}
}
}
if (e.Key == Key.Left || e.Key == Key.Right || e.Key == Key.Up || e.Key == Key.Down) {
e.Handled = true;
@ -398,9 +438,16 @@ namespace ICSharpCode.WpfDesign.Designer @@ -398,9 +438,16 @@ namespace ICSharpCode.WpfDesign.Designer
}
if (placementOp == null) {
//check if any objects don't want the default action to be invoked
List<DesignItem> placedItems = Context.Services.Selection.SelectedItems.Where(x => x.Extensions.All(InvokeDefaultKeyDownAction)).ToList();
//if no remaining objects, break
if (placedItems.Count < 1) return;
dx = 0;
dy = 0;
placementOp = PlacementOperation.Start(Context.Services.Selection.SelectedItems, placementType);
placementOp = PlacementOperation.Start(placedItems, placementType);
}
switch (e.Key) {

190
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/LineExtensionBase.cs

@ -0,0 +1,190 @@ @@ -0,0 +1,190 @@
/*
* Created by SharpDevelop.
* User: trubra
* Date: 2014-12-22
* Time: 11:00
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using ICSharpCode.WpfDesign.Designer.Controls;
using ICSharpCode.WpfDesign.Designer.Extensions;
using System.Windows.Shapes;
using ICSharpCode.WpfDesign;
using ICSharpCode.WpfDesign.Adorners;
using System.Windows;
using System.Windows.Controls;
using System;
using System.Collections;
using System.ComponentModel;
namespace ICSharpCode.WpfDesign.Designer.Extensions
{
/// <summary>
/// Description of LineExtensionBase.
/// </summary>
class Bounds
{
public double X, Y, Left, Top;
}
/// <summary>
/// base class for the Line, Polyline and Polygon extension classes
/// </summary>
public class LineExtensionBase : SelectionAdornerProvider
{
internal AdornerPanel adornerPanel;
internal IEnumerable resizeThumbs;
/// <summary>An array containing this.ExtendedItem as only element</summary>
internal readonly DesignItem[] extendedItemArray = new DesignItem[1];
internal IPlacementBehavior resizeBehavior;
internal PlacementOperation operation;
internal ChangeGroup changeGroup;
private Canvas _surface;
internal bool _isResizing;
private TextBlock _text;
//private DesignPanel designPanel;
/// <summary>
/// Gets whether this extension is resizing any element.
/// </summary>
public bool IsResizing
{
get { return _isResizing; }
}
/// <summary>
/// on creation add adornerlayer
/// </summary>
public LineExtensionBase()
{
_surface = new Canvas();
adornerPanel = new AdornerPanel();
adornerPanel.Order = AdornerOrder.Foreground;
adornerPanel.Children.Add(_surface);
Adorners.Add(adornerPanel);
}
#region eventhandlers
protected void OnPropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
{
UpdateAdornerVisibility();
}
protected override void OnRemove()
{
this.ExtendedItem.PropertyChanged -= OnPropertyChanged;
this.Services.Selection.PrimarySelectionChanged -= OnPrimarySelectionChanged;
DependencyPropertyDescriptor.FromProperty(FrameworkElement.HeightProperty, typeof (Shape))
.RemoveValueChanged(ExtendedItem.View, (s, ev) => ResetWidthHeightProperties());
base.OnRemove();
}
protected void OnPrimarySelectionChanged(object sender, EventArgs e)
{
bool isPrimarySelection = this.Services.Selection.PrimarySelection == this.ExtendedItem;
if (isPrimarySelection)
DependencyPropertyDescriptor.FromProperty(FrameworkElement.HeightProperty, typeof (Shape))
.AddValueChanged(ExtendedItem.View, (s, ev) => ResetWidthHeightProperties());
//foreach (ResizeThumb g in adornerPanel.Children)
//{
// g.IsPrimarySelection = isPrimarySelection;
//}
}
#endregion
protected void UpdateAdornerVisibility()
{
FrameworkElement fe = this.ExtendedItem.View as FrameworkElement;
foreach (ResizeThumb r in resizeThumbs)
{
bool isVisible = resizeBehavior != null &&
resizeBehavior.CanPlace(extendedItemArray, PlacementType.Resize, r.Alignment);
r.Visibility = isVisible ? Visibility.Visible : Visibility.Hidden;
}
}
/// <summary>
/// Places resize thumbs at their respective positions
/// and streches out thumbs which are at the center of outline to extend resizability across the whole outline
/// </summary>
/// <param name="resizeThumb"></param>
/// <param name="alignment"></param>
/// <param name="index">if using a polygon or multipoint adorner this is the index of the point in the Points array</param>
/// <returns></returns>
protected PointTrackerPlacementSupport Place(ref ResizeThumb resizeThumb, PlacementAlignment alignment, int index = -1)
{
PointTrackerPlacementSupport placement = new PointTrackerPlacementSupport(ExtendedItem.View as Shape, alignment, index);
return placement;
}
/// <summary>
/// forces redraw of shape
/// </summary>
protected void Invalidate()
{
Shape s = ExtendedItem.View as Shape;
if (s != null)
{
s.InvalidateVisual();
s.BringIntoView();
}
}
protected void SetSurfaceInfo(int x, int y, string s)
{
if (_text == null)
{
_text = new TextBlock();
_surface.Children.Add(_text);
}
AdornerPanel ap = _surface.Parent as AdornerPanel;
_surface.Width = ap.Width;
_surface.Height = ap.Height;
_text.Text = s;
Canvas.SetLeft(_text, x);
Canvas.SetTop(_text, y);
}
protected void HideSizeAndShowHandles()
{
SizeDisplayExtension sizeDisplay = null;
MarginHandleExtension marginDisplay = null;
foreach (var extension in ExtendedItem.Extensions)
{
if (extension is SizeDisplayExtension)
sizeDisplay = extension as SizeDisplayExtension;
if (extension is MarginHandleExtension)
marginDisplay = extension as MarginHandleExtension;
}
if (sizeDisplay != null)
{
sizeDisplay.HeightDisplay.Visibility = Visibility.Hidden;
sizeDisplay.WidthDisplay.Visibility = Visibility.Hidden;
}
if (marginDisplay != null)
{
marginDisplay.ShowHandles();
}
}
protected void ResetWidthHeightProperties()
{
ExtendedItem.Properties.GetProperty(FrameworkElement.HeightProperty).Reset();
ExtendedItem.Properties.GetProperty(FrameworkElement.WidthProperty).Reset();
}
}
}

248
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/LineHandlerExtension.cs

@ -0,0 +1,248 @@ @@ -0,0 +1,248 @@
/*
* Created by SharpDevelop.
* User: trubra
* Date: 2014-12-22
* Time: 10:34
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using ICSharpCode.WpfDesign.Extensions;
using ICSharpCode.WpfDesign;
using ICSharpCode.WpfDesign.Adorners;
using ICSharpCode.WpfDesign.Designer;
using ICSharpCode.WpfDesign.Designer.Controls;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Shapes;
using System.Windows;
using System.Windows.Controls;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
namespace ICSharpCode.WpfDesign.Designer.Extensions
{
/// <summary>
/// Description of LineHandlerExtension.
/// </summary>
[ExtensionFor(typeof(Line), OverrideExtensions = new Type[] { typeof(ResizeThumbExtension), typeof(SelectedElementRectangleExtension), typeof(CanvasPositionExtension), typeof(QuickOperationMenuExtension), typeof(RotateThumbExtension), typeof(RenderTransformOriginExtension), typeof(InPlaceEditorExtension) })]
internal class LineHandlerExtension : LineExtensionBase
{
//
private double CurrentX2;
private double CurrentY2;
private double CurrentLeft;
private double CurrentTop;
//Size oldSize;
ZoomControl zoom;
protected ResizeThumb CreateThumb(PlacementAlignment alignment, Cursor cursor)
{
ResizeThumb resizeThumb = new ResizeThumb { Alignment = alignment, Cursor = cursor, IsPrimarySelection = true};
AdornerPanel.SetPlacement(resizeThumb, Place(ref resizeThumb, alignment));
adornerPanel.Children.Add(resizeThumb);
DragListener drag = new DragListener(resizeThumb);
drag.Started += drag_Started;
drag.Changed += drag_Changed;
drag.Completed += drag_Completed;
return resizeThumb;
}
protected Bounds CalculateDrawing(double x, double y, double left, double top, double xleft, double xtop)
{
Double theta = (180 / Math.PI) * Math.Atan2(y, x);
double verticaloffset = Math.Abs(90 - Math.Abs(theta));
if (Keyboard.IsKeyDown(Key.LeftAlt) || Keyboard.IsKeyDown(Key.RightAlt))
{
if (Math.Abs(theta) < 45 || Math.Abs(theta) > 135)
{
y = 0;
top = xtop;
}
else if (verticaloffset < 45)
{
x = 0;
left = xleft;
}
}
else if (Keyboard.IsKeyDown(Key.LeftShift) || Keyboard.IsKeyDown(Key.RightShift))
{
if (verticaloffset < 10)
{
x = 0;
left = xleft;
}
else if (Math.Abs(theta) < 10 || Math.Abs(theta) > 170)
{
y = 0;
top = xtop;
}
}
SetSurfaceInfo(0, 0, Math.Round((180 / Math.PI) * Math.Atan2(y, x), 0).ToString());
return new Bounds { X = Math.Round(x, 1), Y = Math.Round(y, 1), Left = Math.Round(left, 1), Top = Math.Round(top, 1) };
}
#region eventhandlers
// TODO : Remove all hide/show extensions from here.
protected virtual void drag_Started(DragListener drag)
{
Line al = ExtendedItem.View as Line;
CurrentX2 = al.X2;
CurrentY2 = al.Y2;
CurrentLeft = (double)al.GetValue(Canvas.LeftProperty);
CurrentTop = (double)al.GetValue(Canvas.TopProperty);
var designPanel = ExtendedItem.Services.DesignPanel as DesignPanel;
if (designPanel != null)
{
var p = VisualTreeHelper.GetParent(designPanel);
while (p != null && !(p is ZoomControl))
{
p = VisualTreeHelper.GetParent(p);
}
zoom = p as ZoomControl;
}
if (resizeBehavior != null)
operation = PlacementOperation.Start(extendedItemArray, PlacementType.Resize);
else
{
changeGroup = this.ExtendedItem.Context.OpenGroup("Resize", extendedItemArray);
}
_isResizing = true;
(drag.Target as ResizeThumb).IsPrimarySelection = false;
}
protected virtual void drag_Changed(DragListener drag)
{
Line al = ExtendedItem.View as Line;
var alignment = (drag.Target as ResizeThumb).Alignment;
var info = operation.PlacedItems[0];
double dx = 0;
double dy = 0;
if (zoom != null)
{
dx = drag.Delta.X * (1 / zoom.CurrentZoom);
dy = drag.Delta.Y * (1 / zoom.CurrentZoom);
}
double top, left, x, y, xtop, xleft;
if (alignment == PlacementAlignment.TopLeft)
{
//normal values
x = CurrentX2 - dx;
y = CurrentY2 - dy;
top = CurrentTop + dy;
left = CurrentLeft + dx;
//values to use when keys are pressed
xtop = CurrentTop + CurrentY2;
xleft = CurrentLeft + CurrentX2;
}
else
{
x = CurrentX2 + dx;
y = CurrentY2 + dy;
top = xtop = CurrentTop;
left = xleft = CurrentLeft;
}
Bounds position = CalculateDrawing(x, y, left, top, xleft, xtop);
ExtendedItem.Properties.GetProperty(Line.X1Property).SetValue(0);
ExtendedItem.Properties.GetProperty(Line.Y1Property).SetValue(0);
ExtendedItem.Properties.GetProperty(Line.X2Property).SetValue(position.X);
ExtendedItem.Properties.GetProperty(Line.Y2Property).SetValue(position.Y);
if (operation != null)
{
var result = info.OriginalBounds;
result.X = position.Left;
result.Y = position.Top;
result.Width = Math.Abs(position.X);
result.Height = Math.Abs(position.Y);
info.Bounds = result.Round();
operation.CurrentContainerBehavior.BeforeSetPosition(operation);
operation.CurrentContainerBehavior.SetPosition(info);
}
(drag.Target as ResizeThumb).InvalidateArrange();
ResetWidthHeightProperties();
}
protected virtual void drag_Completed(DragListener drag)
{
if (operation != null)
{
if (drag.IsCanceled) operation.Abort();
else
{
ResetWidthHeightProperties();
operation.Commit();
}
operation = null;
}
else
{
if (drag.IsCanceled) changeGroup.Abort();
else changeGroup.Commit();
changeGroup = null;
}
_isResizing = false;
(drag.Target as ResizeThumb).IsPrimarySelection = true;
HideSizeAndShowHandles();
}
/// <summary>
/// is invoked whenever a line is selected on the canvas, remember that the adorners are created for each line object and never destroyed
/// </summary>
protected override void OnInitialized()
{
base.OnInitialized();
if (ExtendedItem.Properties.GetProperty(Line.StrokeProperty).ValueOnInstance == null)
{
ExtendedItem.Properties[Shape.StrokeProperty].SetValue(Colors.Black);
ExtendedItem.Properties[Shape.StrokeThicknessProperty].SetValue(2d);
ExtendedItem.Properties[Shape.StretchProperty].SetValue(Stretch.None);
ExtendedItem.Properties.GetProperty(Line.X1Property).SetValue(0);
ExtendedItem.Properties.GetProperty(Line.Y1Property).SetValue(0);
ExtendedItem.Properties.GetProperty(Line.X2Property).SetValue(20);
ExtendedItem.Properties.GetProperty(Line.Y2Property).SetValue(20);
(ExtendedItem.View as Line).BringIntoView();
}
resizeThumbs = new ResizeThumb[]
{
CreateThumb(PlacementAlignment.TopLeft, Cursors.SizeNWSE),
CreateThumb(PlacementAlignment.BottomRight, Cursors.SizeNWSE)
};
extendedItemArray[0] = this.ExtendedItem;
Invalidate();
//ResetWidthHeightProperties();
this.ExtendedItem.PropertyChanged += OnPropertyChanged;
this.Services.Selection.PrimarySelectionChanged += OnPrimarySelectionChanged;
resizeBehavior = PlacementOperation.GetPlacementBehavior(extendedItemArray);
UpdateAdornerVisibility();
OnPrimarySelectionChanged(null, null);
}
#endregion
}
}

49
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/MultiPointResizeThumb.cs

@ -0,0 +1,49 @@ @@ -0,0 +1,49 @@
/*
* Created by SharpDevelop.
* User: trubra
* Date: 2014-12-22
* Time: 11:06
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Windows;
using ICSharpCode.WpfDesign.Adorners;
using ICSharpCode.WpfDesign.Designer.Controls;
namespace ICSharpCode.WpfDesign.Designer.Extensions
{
/// <summary>
/// Description of MultiPointResizeThumb.
/// </summary>
sealed class MultiPointResizeThumb: ResizeThumb
{
private int _index;
public int Index
{
get { return _index; }
set
{
_index = value;
PointTrackerPlacementSupport p = AdornerPlacement as PointTrackerPlacementSupport;
if (p != null)
p.Index = value;
}
}
public void Invalidate()
{
PointTrackerPlacementSupport p = AdornerPlacement as PointTrackerPlacementSupport;
}
private AdornerPlacement _adornerPlacement;
public AdornerPlacement AdornerPlacement
{
get { return _adornerPlacement; }
set { _adornerPlacement = value; }
}
}
}

93
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/PointTrackerPlacementSupport.cs

@ -0,0 +1,93 @@ @@ -0,0 +1,93 @@
/*
* Created by SharpDevelop.
* User: trubra
* Date: 2014-12-22
* Time: 11:05
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Windows;
using System.Windows.Shapes;
using ICSharpCode.WpfDesign;
using ICSharpCode.WpfDesign.Adorners;
namespace ICSharpCode.WpfDesign.Designer.Extensions
{
public class PointTrackerPlacementSupport : AdornerPlacement
{
private Shape shape;
private PlacementAlignment alignment;
public int Index
{
get; set;
}
public PointTrackerPlacementSupport(Shape s, PlacementAlignment align, int index)
{
shape = s;
alignment = align;
Index = index;
}
public PointTrackerPlacementSupport(Shape s, PlacementAlignment align)
{
shape = s;
alignment = align;
Index = -1;
}
/// <summary>
/// Arranges the adorner element on the specified adorner panel.
/// </summary>
public override void Arrange(AdornerPanel panel, UIElement adorner, Size adornedElementSize)
{
Point p = new Point(0, 0);
double thumbsize = 7;
double distance = thumbsize / 2;
if (shape as Line != null)
{
Line s = shape as Line;
double x, y;
//will give you the angle of the line if more than 180 degrees it becomes negative from
Double theta = (180 / Math.PI) * Math.Atan2(s.Y2 - s.Y1, s.X2 - s.X1);
//this will give you the x offset from the line x point in parts of half the size of the thumb
double dx = Math.Cos(theta * (Math.PI / 180)) * distance;
//this will give you the y offset from the line y point in parts of half the size of the thumb
double dy = Math.Sin(theta * (Math.PI / 180)) * distance;
if (alignment == PlacementAlignment.BottomRight)
{
//x offset is linear
x = s.X2 - Math.Abs(theta) / (180 / thumbsize) + dx;
//y offset is angular
y = s.Y2 - ((.5 - Math.Sin(theta * (Math.PI / 180)) * .5) * thumbsize) + dy;
}
else
{
x = s.X1 - ((180 - Math.Abs(theta)) / (180 / thumbsize)) - dx;
y = s.Y1 - ((.5 - Math.Sin(theta * (Math.PI / 180) + Math.PI) * .5) * thumbsize) - dy;
}
p = new Point(x, y);
}
Polygon pg = shape as Polygon;
Polyline pl = shape as Polyline;
if (pg != null || pl != null)
{
if (Index > 0)
{
p = pl != null ? pl.Points[Index] : pg.Points[Index];
}
}
adorner.Arrange(new Rect(p, new Size(thumbsize, thumbsize)));
}
}
}

450
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/Extensions/PolyLineHandlerExtension.cs

@ -0,0 +1,450 @@ @@ -0,0 +1,450 @@
/*
* Created by SharpDevelop.
* User: trubra
* Date: 2014-12-22
* Time: 10:34
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using ICSharpCode.WpfDesign.Extensions;
using ICSharpCode.WpfDesign;
using ICSharpCode.WpfDesign.Adorners;
using ICSharpCode.WpfDesign.Designer;
using ICSharpCode.WpfDesign.Designer.Controls;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Shapes;
using System.Windows;
using System.Windows.Controls;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
namespace ICSharpCode.WpfDesign.Designer.Extensions
{
/// <summary>
/// Description of PolyLineHandlerExtension.
/// </summary>
[ExtensionFor(typeof(Polyline), OverrideExtensions = new Type[] { typeof(ResizeThumbExtension), typeof(SelectedElementRectangleExtension), typeof(CanvasPositionExtension), typeof(QuickOperationMenuExtension), typeof(RotateThumbExtension), typeof(RenderTransformOriginExtension), typeof(InPlaceEditorExtension), typeof(SizeDisplayExtension) })]
internal class PolyLineHandlerExtension : LineExtensionBase, IKeyDown, IKeyUp
{
private readonly Dictionary<int, Bounds> _selectedThumbs = new Dictionary<int, Bounds>();
private bool _isDragging;
ZoomControl _zoom;
#region thumb methods
protected ResizeThumb CreateThumb(PlacementAlignment alignment, Cursor cursor, int index)
{
ResizeThumb resizeThumb = new MultiPointResizeThumb { Index = index, Alignment = alignment, Cursor = cursor, IsPrimarySelection = true };
AdornerPlacement ap = Place(ref resizeThumb, alignment, index);
(resizeThumb as MultiPointResizeThumb).AdornerPlacement = ap;
AdornerPanel.SetPlacement(resizeThumb, ap);
adornerPanel.Children.Add(resizeThumb);
DragListener drag = new DragListener(resizeThumb);
WeakEventManager<ResizeThumb, MouseButtonEventArgs>.AddHandler(resizeThumb, "PreviewMouseLeftButtonDown", ResizeThumbOnMouseLeftButtonUp);
drag.Started += drag_Started;
drag.Changed += drag_Changed;
drag.Completed += drag_Completed;
return resizeThumb;
}
private void ResetThumbs()
{
foreach (FrameworkElement rt in adornerPanel.Children)
{
if (rt is ResizeThumb)
(rt as ResizeThumb).IsPrimarySelection = true;
}
_selectedThumbs.Clear();
}
private void SelectThumb(MultiPointResizeThumb mprt)
{
PointCollection points = GetPointCollection();
Point p = points[mprt.Index];
_selectedThumbs.Add(mprt.Index, new Bounds { X = p.X, Y = p.Y });
mprt.IsPrimarySelection = false;
}
#endregion
#region eventhandlers
private void ResizeThumbOnMouseLeftButtonUp(object sender, MouseButtonEventArgs mouseButtonEventArgs)
{
//get current thumb
MultiPointResizeThumb mprt = sender as MultiPointResizeThumb;
if (mprt != null)
{
//shift+ctrl will remove selected point
if ((Keyboard.IsKeyDown(Key.LeftShift) || Keyboard.IsKeyDown(Key.RightShift)) &&
(Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl)))
{
//unselect all points
ResetThumbs();
PointCollection points = GetPointCollection();
//iterate thumbs to lower index of remaining thumbs
foreach (MultiPointResizeThumb m in adornerPanel.Children)
{
if (m.Index > mprt.Index)
m.Index--;
}
//remove point and thumb
points.RemoveAt(mprt.Index);
adornerPanel.Children.Remove(mprt);
Invalidate();
}
else
{
//if not keyboard ctrl is pressed and selected point is not previously selected, clear selection
if (!_selectedThumbs.ContainsKey(mprt.Index) & !Keyboard.IsKeyDown(Key.LeftCtrl) &
!Keyboard.IsKeyDown(Key.RightCtrl))
{
ResetThumbs();
}
//add selected thumb, if ctrl pressed this could be all points in poly
if (!_selectedThumbs.ContainsKey(mprt.Index))
SelectThumb(mprt);
_isDragging = false;
}
}
}
// TODO : Remove all hide/show extensions from here.
protected void drag_Started(DragListener drag)
{
//get current thumb
MultiPointResizeThumb mprt = (drag.Target as MultiPointResizeThumb);
if (mprt != null)
{
SetOperation();
}
}
void SetOperation()
{
var designPanel = ExtendedItem.Services.DesignPanel as DesignPanel;
if (designPanel != null)
{
var p = VisualTreeHelper.GetParent(designPanel);
while (p != null && !(p is ZoomControl))
{
p = VisualTreeHelper.GetParent(p);
}
_zoom = p as ZoomControl;
}
if (resizeBehavior != null)
operation = PlacementOperation.Start(extendedItemArray, PlacementType.Resize);
else
{
changeGroup = ExtendedItem.Context.OpenGroup("Resize", extendedItemArray);
}
_isResizing = true;
}
void ChangeOperation(PointCollection points)
{
//this is for SharpDevelop built in undo functionality
if (operation != null)
{
var info = operation.PlacedItems[0];
var result = info.OriginalBounds;
IEnumerable<double> xs = points.Select(x => x.X);
IEnumerable<double> ys = points.Select(y => y.Y);
result.X = (double)(info.Item.Properties.GetAttachedProperty(Canvas.LeftProperty).ValueOnInstance);
result.Y = (double)(info.Item.Properties.GetAttachedProperty(Canvas.TopProperty).ValueOnInstance);
result.Width = xs.Max() - xs.Min();
result.Height = ys.Max() - ys.Min();
info.Bounds = result.Round();
operation.CurrentContainerBehavior.BeforeSetPosition(operation);
operation.CurrentContainerBehavior.SetPosition(info);
}
ResetWidthHeightProperties();
}
void CommitOperation()
{
if (operation != null)
{
PointCollection points;
Polygon pg = ExtendedItem.View as Polygon;
Polyline pl = ExtendedItem.View as Polyline;
if (pl == null)
{
points = pg.Points;
}
else
{
points = pl.Points;
}
foreach (int i in _selectedThumbs.Keys)
{
_selectedThumbs[i].X = points[i].X;
_selectedThumbs[i].Y = points[i].Y;
}
ExtendedItem.Properties.GetProperty(pl != null ? Polyline.PointsProperty : Polygon.PointsProperty).SetValue(points);
ResetWidthHeightProperties();
operation.Commit();
operation = null;
}
else
{
changeGroup.Commit();
changeGroup = null;
}
_isResizing = false;
ResetWidthHeightProperties();
Invalidate();
}
protected void drag_Changed(DragListener drag)
{
PointCollection points = GetPointCollection();
MultiPointResizeThumb mprt = drag.Target as MultiPointResizeThumb;
if (mprt != null)
{
double dx = 0;
double dy = 0;
//if has zoomed
if (_zoom != null)
{
dx = drag.Delta.X * (1 / _zoom.CurrentZoom);
dy = drag.Delta.Y * (1 / _zoom.CurrentZoom);
}
Double theta;
//if one point selected snapping angle is calculated in relation to previous point
if (_selectedThumbs.Count == 1)
{
theta = (180 / Math.PI) * Math.Atan2(_selectedThumbs[mprt.Index].Y + dy - points[mprt.Index - 1].Y, _selectedThumbs[mprt.Index].X + dx - points[mprt.Index - 1].X);
}
else//if multiple points snapping angle is calculated in relation to mouse dragging angle
{
theta = (180 / Math.PI) * Math.Atan2(dy, dx);
}
//snappingAngle is used for snapping function to horizontal or vertical plane in line drawing, and is activated by pressing ctrl or shift button
int? snapAngle = null;
//shift+alt gives a new point
if ((Keyboard.IsKeyDown(Key.LeftShift) || Keyboard.IsKeyDown(Key.RightShift)) && (Keyboard.IsKeyDown(Key.LeftAlt) || Keyboard.IsKeyDown(Key.RightAlt)))
{
//if dragging occurs on a point and that point is the only selected, a new node will be added.
//_isCtrlDragging is needed since this method is called for every x pixel that the mouse moves
//so it could be many thousands of times during a single dragging
if (!_isDragging && _selectedThumbs.Count == 1 && (Math.Abs(dx) > 0 || Math.Abs(dy) > 0))
{
//duplicate point that is selected
Point p = points[mprt.Index];
//insert duplicate
points.Insert(mprt.Index, p);
//create adorner marker
CreateThumb(PlacementAlignment.BottomRight, Cursors.SizeNWSE, mprt.Index);
//set index of all points that had a higher index than selected to +1
foreach (FrameworkElement rt in adornerPanel.Children)
{
if (rt is MultiPointResizeThumb)
{
MultiPointResizeThumb t = rt as MultiPointResizeThumb;
if (t.Index > mprt.Index)
t.Index++;
}
}
//set index of new point to old point index + 1
mprt.Index = mprt.Index + 1;
ResetThumbs();
SelectThumb(mprt);
}
snapAngle = 10;
}
//snapping occurs when mouse is within 10 degrees from horizontal or vertical plane if shift is pressed
else if (Keyboard.IsKeyDown(Key.LeftShift) || Keyboard.IsKeyDown(Key.RightShift))
{
snapAngle = 10;
}
//snapping occurs within 45 degree intervals that is line will always be horizontal or vertical if alt is pressed
else if (Keyboard.IsKeyDown(Key.LeftAlt) || Keyboard.IsKeyDown(Key.RightAlt))
{
snapAngle = 45;
}
_isDragging = true;
points = MovePoints(points, dx, dy, theta, snapAngle);
}
ChangeOperation(points);
(drag.Target as ResizeThumb).InvalidateArrange();
}
protected void drag_Completed(DragListener drag)
{
MultiPointResizeThumb mprt = drag.Target as MultiPointResizeThumb;
if (mprt != null)
{
if (operation != null && drag.IsCanceled)
{
operation.Abort();
}
else if (drag.IsCanceled)
{
changeGroup.Abort();
}
CommitOperation();
}
}
protected override void OnInitialized()
{
base.OnInitialized();
PointCollection points = GetPointCollection();
if (ExtendedItem.Properties[Shape.StrokeProperty].ValueOnInstance == null)
{
ExtendedItem.Properties[Shape.StrokeProperty].SetValue(Colors.Black);
ExtendedItem.Properties[Shape.StrokeThicknessProperty].SetValue(2d);
ExtendedItem.Properties[Shape.StretchProperty].SetValue(Stretch.None);
points.AddRange(new List<Point> { new Point(0, 0), new Point(20, 20) });
ExtendedItem.Properties.GetProperty(ExtendedItem.View as Polyline != null ? Polyline.PointsProperty : Polygon.PointsProperty).SetValue(points);
}
resizeThumbs = new List<ResizeThumb>();
for (int i = 1; i < points.Count; i++)
{
CreateThumb(PlacementAlignment.BottomRight, Cursors.SizeNWSE, i);
}
Invalidate();
ResetWidthHeightProperties();
ResetThumbs();
_isDragging = false;
extendedItemArray[0] = ExtendedItem;
ExtendedItem.PropertyChanged += OnPropertyChanged;
Services.Selection.PrimarySelectionChanged += OnPrimarySelectionChanged;
resizeBehavior = PlacementOperation.GetPlacementBehavior(extendedItemArray);
UpdateAdornerVisibility();
OnPrimarySelectionChanged(null, null);
}
#endregion
PointCollection GetPointCollection()
{
Polygon pg = ExtendedItem.View as Polygon;
Polyline pl = ExtendedItem.View as Polyline;
return pl == null ? pg.Points : pl.Points;
}
PointCollection MovePoints(PointCollection pc, double displacementX, double displacementY, double theta, int? snapangle)
{
//iterate all selected points
foreach (int i in _selectedThumbs.Keys)
{
Point p = pc[i];
//x and y is calculated from the currentl point
double x = _selectedThumbs[i].X + displacementX;
double y = _selectedThumbs[i].Y + displacementY;
//if snap is applied
if (snapangle != null)
{
if (_selectedThumbs.Count > 0)
{
//horizontal snap
if (Math.Abs(theta) < snapangle || 180 - Math.Abs(theta) < snapangle)
{
//if one point selected use point before as snap point, else snap to movement
y = _selectedThumbs.Count == 1 ? pc[i - 1].Y : y - displacementY;
}
else if (Math.Abs(90 - Math.Abs(theta)) < snapangle)//vertical snap
{
//if one point selected use point before as snap point, else snap to movement
x = _selectedThumbs.Count == 1 ? pc[i - 1].X : x - displacementX;
}
}
}
p.X = x;
p.Y = y;
pc[i] = p;
}
return pc;
}
#region IKeyDown
public bool InvokeDefaultAction
{
get { return _selectedThumbs.Count == 0 || _selectedThumbs.Count == GetPointCollection().Count - 1; }
}
int _movingDistance;
public void KeyDownAction(object sender, KeyEventArgs e)
{
Debug.WriteLine("KeyDown");
if (IsArrowKey(e.Key))
if (operation == null)
{
SetOperation();
_movingDistance = 0;
}
var dx1 = (e.Key == Key.Left) ? Keyboard.IsKeyDown(Key.LeftShift) ? _movingDistance - 10 : _movingDistance - 1 : 0;
var dy1 = (e.Key == Key.Up) ? Keyboard.IsKeyDown(Key.LeftShift) ? _movingDistance - 10 : _movingDistance - 1 : 0;
var dx2 = (e.Key == Key.Right) ? Keyboard.IsKeyDown(Key.LeftShift) ? _movingDistance + 10 : _movingDistance + 1 : 0;
var dy2 = (e.Key == Key.Down) ? Keyboard.IsKeyDown(Key.LeftShift) ? _movingDistance + 10 : _movingDistance + 1 : 0;
ChangeOperation(MovePoints(GetPointCollection(), dx1 + dx2, dy1 + dy2, 0, null));
_movingDistance = (dx1 + dx2 + dy1 + dy2);
}
public void KeyUpAction(object sender, KeyEventArgs e)
{
Debug.WriteLine("Keyup");
if (IsArrowKey(e.Key))
CommitOperation();
}
bool IsArrowKey(Key key)
{
return (key == Key.Left || key == Key.Right || key == Key.Up || key == Key.Down);
}
#endregion
}
}

5
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.Designer/Project/WpfDesign.Designer.csproj

@ -91,10 +91,15 @@ @@ -91,10 +91,15 @@
<SubType>Code</SubType>
</Compile>
<Compile Include="Extensions\DefaultCommandsContextMenuExtension.cs" />
<Compile Include="Extensions\LineExtensionBase.cs" />
<Compile Include="Extensions\LineHandlerExtension.cs" />
<Compile Include="Extensions\MultiPointResizeThumb.cs" />
<Compile Include="Extensions\PartialPanelSelectionHandler.cs" />
<Compile Include="Extensions\EditStyleContextMenu.xaml.cs">
<DependentUpon>EditStyleContextMenu.xaml</DependentUpon>
</Compile>
<Compile Include="Extensions\PointTrackerPlacementSupport.cs" />
<Compile Include="Extensions\PolyLineHandlerExtension.cs" />
<Compile Include="Extensions\TextBlockRightClickContextMenu.xaml.cs">
<DependentUpon>TextBlockRightClickContextMenu.xaml</DependentUpon>
</Compile>

97
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.XamlDom/Project/MarkupExtensionWrapper.cs

@ -0,0 +1,97 @@ @@ -0,0 +1,97 @@
// Copyright (c) 2014 AlphaSierraPapa for the SharpDevelop Team
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this
// software and associated documentation files (the "Software"), to deal in the Software
// without restriction, including without limitation the rights to use, copy, modify, merge,
// publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
// to whom the Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all copies or
// substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
// FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
using System;
using System.Collections.Generic;
using System.Windows.Markup;
namespace ICSharpCode.WpfDesign.XamlDom
{
/// <summary>
/// A wrapper for markup extensions if custom behavior of <see cref="System.Windows.Markup.MarkupExtension.ProvideValue"/> is needed in the designer.
/// </summary>
public abstract class MarkupExtensionWrapper
{
/// <summary>
/// Initializes a new instance.
/// </summary>
/// <param name="xamlObject">The <see cref="XamlObject"/> object that represents the markup extension.</param>
protected MarkupExtensionWrapper(XamlObject xamlObject)
{
if (xamlObject == null) {
throw new ArgumentNullException("xamlObject");
}
XamlObject = xamlObject;
}
/// <summary>
/// Gets the <see cref="XamlObject"/> object that represents the markup extension.
/// </summary>
public XamlObject XamlObject { get; private set; }
/// <summary>
/// Returns an object that should be used as the value of the target property in the designer.
/// </summary>
/// <returns>An object that should be used as the value of the target property in the designer.</returns>
public abstract object ProvideValue();
static readonly Dictionary<Type, Type> s_MarkupExtensionWrappers = new Dictionary<Type, Type>();
/// <summary>
/// Registers a markup extension wrapper.
/// </summary>
/// <param name="markupExtensionType">The type of the markup extension.</param>
/// <param name="markupExtensionWrapperType">The type of the markup extension wrapper.</param>
public static void RegisterMarkupExtensionWrapper(Type markupExtensionType, Type markupExtensionWrapperType)
{
if (markupExtensionType == null) {
throw new ArgumentNullException("markupExtensionType");
}
if (!markupExtensionType.IsSubclassOf(typeof(MarkupExtension))) {
throw new ArgumentException("The specified type must derive from MarkupExtension.", "markupExtensionType");
}
if (markupExtensionWrapperType == null) {
throw new ArgumentNullException("markupExtensionWrapperType");
}
if (!markupExtensionWrapperType.IsSubclassOf(typeof(MarkupExtensionWrapper))) {
throw new ArgumentException("The specified type must derive from MarkupExtensionWrapper.", "markupExtensionWrapperType");
}
s_MarkupExtensionWrappers.Add(markupExtensionType, markupExtensionWrapperType);
}
internal static MarkupExtensionWrapper CreateWrapper(Type markupExtensionWrapperType, XamlObject xamlObject)
{
return Activator.CreateInstance(markupExtensionWrapperType, xamlObject) as MarkupExtensionWrapper;
}
internal static MarkupExtensionWrapper TryCreateWrapper(Type markupExtensionType, XamlObject xamlObject)
{
Type markupExtensionWrapperType;
if (s_MarkupExtensionWrappers.TryGetValue(markupExtensionType, out markupExtensionWrapperType)) {
return CreateWrapper(markupExtensionWrapperType, xamlObject);
}
return null;
}
}
}

43
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.XamlDom/Project/MarkupExtensionWrapperAttribute.cs

@ -0,0 +1,43 @@ @@ -0,0 +1,43 @@
// Copyright (c) 2014 AlphaSierraPapa for the SharpDevelop Team
//
// Permission is hereby granted, free of charge, to any person obtaining a copy of this
// software and associated documentation files (the "Software"), to deal in the Software
// without restriction, including without limitation the rights to use, copy, modify, merge,
// publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons
// to whom the Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in all copies or
// substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
// PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
// FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE.
using System;
namespace ICSharpCode.WpfDesign.XamlDom
{
/// <summary>
/// Apply this to markup extensions that needs custom behavior of <see cref="System.Windows.Markup.MarkupExtension.ProvideValue"/> in the designer.
/// </summary>
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false, Inherited = false)]
public class MarkupExtensionWrapperAttribute : Attribute
{
/// <summary>
/// Initializes a new instance of <see cref="MarkupExtensionWrapperAttribute"/>.
/// </summary>
/// <param name="markupExtensionWrapperType">The wrapper type.</param>
public MarkupExtensionWrapperAttribute(Type markupExtensionWrapperType)
{
MarkupExtensionWrapperType = markupExtensionWrapperType;
}
/// <summary>
/// Gets the wrapper type.
/// </summary>
public Type MarkupExtensionWrapperType { get; private set; }
}
}

2
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.XamlDom/Project/WpfDesign.XamlDom.csproj

@ -75,6 +75,8 @@ @@ -75,6 +75,8 @@
<Compile Include="MarkupCompatibilityProperties.cs" />
<Compile Include="MarkupExtensionParser.cs" />
<Compile Include="MarkupExtensionPrinter.cs" />
<Compile Include="MarkupExtensionWrapper.cs" />
<Compile Include="MarkupExtensionWrapperAttribute.cs" />
<Compile Include="NameScopeHelper.cs" />
<Compile Include="PositionXmlDocument.cs" />
<Compile Include="TemplateHelper.cs" />

31
src/AddIns/DisplayBindings/WpfDesign/WpfDesign.XamlDom/Project/XamlObject.cs

@ -569,12 +569,19 @@ namespace ICSharpCode.WpfDesign.XamlDom @@ -569,12 +569,19 @@ namespace ICSharpCode.WpfDesign.XamlDom
void CreateWrapper()
{
if (Instance is BindingBase) {
wrapper = new BindingWrapper();
wrapper = new BindingWrapper(this);
} else if (Instance is StaticResourceExtension) {
wrapper = new StaticResourceWrapper();
wrapper = new StaticResourceWrapper(this);
}
if (wrapper != null) {
wrapper.XamlObject = this;
if (wrapper == null && IsMarkupExtension) {
var markupExtensionWrapperAttribute = Instance.GetType().GetCustomAttributes(typeof(MarkupExtensionWrapperAttribute), false).FirstOrDefault() as MarkupExtensionWrapperAttribute;
if(markupExtensionWrapperAttribute != null) {
wrapper = MarkupExtensionWrapper.CreateWrapper(markupExtensionWrapperAttribute.MarkupExtensionWrapperType, this);
}
else {
wrapper = MarkupExtensionWrapper.TryCreateWrapper(Instance.GetType(), this);
}
}
}
@ -608,14 +615,13 @@ namespace ICSharpCode.WpfDesign.XamlDom @@ -608,14 +615,13 @@ namespace ICSharpCode.WpfDesign.XamlDom
public event EventHandler NameChanged;
}
abstract class MarkupExtensionWrapper
{
public XamlObject XamlObject { get; set; }
public abstract object ProvideValue();
}
class BindingWrapper : MarkupExtensionWrapper
{
public BindingWrapper(XamlObject xamlObject)
: base(xamlObject)
{
}
public override object ProvideValue()
{
var target = XamlObject.Instance as BindingBase;
@ -661,6 +667,11 @@ namespace ICSharpCode.WpfDesign.XamlDom @@ -661,6 +667,11 @@ namespace ICSharpCode.WpfDesign.XamlDom
class StaticResourceWrapper : MarkupExtensionWrapper
{
public StaticResourceWrapper(XamlObject xamlObject)
: base(xamlObject)
{
}
public override object ProvideValue()
{
var target = XamlObject.Instance as StaticResourceExtension;

17
src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/Extensions/ExtensionForAttribute.cs

@ -17,7 +17,7 @@ @@ -17,7 +17,7 @@
// DEALINGS IN THE SOFTWARE.
using System;
using System.Collections.Generic;
namespace ICSharpCode.WpfDesign.Extensions
{
/// <summary>
@ -28,6 +28,7 @@ namespace ICSharpCode.WpfDesign.Extensions @@ -28,6 +28,7 @@ namespace ICSharpCode.WpfDesign.Extensions
{
Type _designedItemType;
Type _overrideExtension;
List<Type> _overrideExtensions = new List<Type>();
/// <summary>
/// Gets the type of the item that is designed using this extension.
@ -36,6 +37,18 @@ namespace ICSharpCode.WpfDesign.Extensions @@ -36,6 +37,18 @@ namespace ICSharpCode.WpfDesign.Extensions
get { return _designedItemType; }
}
/// <summary>
/// Gets/Sets the types of another extension that this extension is overriding.
/// </summary>
public Type[] OverrideExtensions
{
get { return _overrideExtensions.ToArray(); }
set
{
_overrideExtensions.AddRange(value);
}
}
/// <summary>
/// Gets/Sets the type of another extension that this extension is overriding.
/// </summary>
@ -47,6 +60,8 @@ namespace ICSharpCode.WpfDesign.Extensions @@ -47,6 +60,8 @@ namespace ICSharpCode.WpfDesign.Extensions
if (!typeof(Extension).IsAssignableFrom(value)) {
throw new ArgumentException("OverrideExtension must specify the type of an Extension.");
}
if(!_overrideExtensions.Contains(value))
_overrideExtensions.Add(value);
}
}
}

46
src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/Extensions/ExtensionInterfaces.cs

@ -0,0 +1,46 @@ @@ -0,0 +1,46 @@
/*
* Created by SharpDevelop.
* User: trubra
* Date: 2014-11-06
* Time: 11:45
*
* To change this template use Tools | Options | Coding | Edit Standard Headers.
*/
using System;
using System.Windows.Input;
namespace ICSharpCode.WpfDesign.Extensions
{
/// <summary>
/// interface that can be implemented if a control is to be alerted of KeyDown Event on DesignPanel
/// </summary>
public interface IKeyDown
{
/// <summary>
/// Action to be performed on keydown on specific control
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void KeyDownAction(object sender, KeyEventArgs e);
/// <summary>
/// if that control wants the default DesignPanel action to be suppressed, let this return false
/// </summary>
bool InvokeDefaultAction { get; }
}
/// <summary>
/// interface that can be implemented if a control is to be alerted of KeyUp Event on DesignPanel
/// </summary>
public interface IKeyUp
{
/// <summary>
/// Action to be performed on keyup on specific control
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void KeyUpAction(object sender, KeyEventArgs e);
}
}

42
src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/Extensions/ExtensionManager.cs

@ -64,15 +64,23 @@ namespace ICSharpCode.WpfDesign.Extensions @@ -64,15 +64,23 @@ namespace ICSharpCode.WpfDesign.Extensions
{
internal readonly Type ExtensionType;
internal readonly ExtensionServer Server;
internal readonly Type OverriddenExtensionType;
internal readonly List<Type> OverriddenExtensionTypes = new List<Type>();
internal readonly int Order;
public ExtensionEntry(Type extensionType, ExtensionServer server, Type overriddenExtensionType, int Order)
public ExtensionEntry(Type extensionType, ExtensionServer server, Type overriddenExtensionType, int order)
{
this.ExtensionType = extensionType;
this.Server = server;
this.OverriddenExtensionType = overriddenExtensionType;
this.Order = Order;
this.OverriddenExtensionTypes.Add(overriddenExtensionType);
this.Order = order;
}
public ExtensionEntry(Type extensionType, ExtensionServer server, List<Type> overriddenExtensionTypes, int order)
{
this.ExtensionType = extensionType;
this.Server = server;
this.OverriddenExtensionTypes = overriddenExtensionTypes;
this.Order = order;
}
}
@ -89,20 +97,14 @@ namespace ICSharpCode.WpfDesign.Extensions @@ -89,20 +97,14 @@ namespace ICSharpCode.WpfDesign.Extensions
List<ExtensionEntry> GetExtensionEntries(Type extendedItemType)
{
List<ExtensionEntry> result;
if (extendedItemType.BaseType != null)
result = GetExtensionEntries(extendedItemType.BaseType);
else
result = new List<ExtensionEntry>();
List<ExtensionEntry> list;
if (_extensions.TryGetValue(extendedItemType, out list)) {
foreach (ExtensionEntry entry in list) {
if (entry.OverriddenExtensionType != null) {
result.RemoveAll(delegate(ExtensionEntry oldEntry) {
return oldEntry.ExtensionType == entry.OverriddenExtensionType;
});
}
List<ExtensionEntry> result = new List<ExtensionEntry>();
List<Type> overriddenExtensions = new List<Type>();
IEnumerable<ExtensionEntry> ie = _extensions.Where(x => x.Key.IsAssignableFrom(extendedItemType)).SelectMany(x => x.Value);
foreach (ExtensionEntry entry in ie) {
if (!overriddenExtensions.Contains(entry.ExtensionType)) {
overriddenExtensions.AddRange(entry.OverriddenExtensionTypes);
result.RemoveAll(x => overriddenExtensions.Contains(x.ExtensionType));
result.Add(entry);
}
}
@ -190,7 +192,7 @@ namespace ICSharpCode.WpfDesign.Extensions @@ -190,7 +192,7 @@ namespace ICSharpCode.WpfDesign.Extensions
foreach (ExtensionForAttribute designerFor in extensionForAttributes) {
ExtensionServer server = GetServerForExtension(type);
ExtensionAttribute extensionAttribute = type.GetCustomAttributes(typeof(ExtensionAttribute), false).FirstOrDefault() as ExtensionAttribute;
AddExtensionEntry(designerFor.DesignedItemType, new ExtensionEntry(type, server, designerFor.OverrideExtension, extensionAttribute != null ? extensionAttribute.Order : 0));
AddExtensionEntry(designerFor.DesignedItemType, new ExtensionEntry(type, server, designerFor.OverrideExtensions.ToList(), extensionAttribute != null ? extensionAttribute.Order : 0));
}
}
}

1
src/AddIns/DisplayBindings/WpfDesign/WpfDesign/Project/WpfDesign.csproj

@ -75,6 +75,7 @@ @@ -75,6 +75,7 @@
<Compile Include="Adorners\RelativePlacement.cs" />
<Compile Include="ExtensionMethods.cs" />
<Compile Include="Extensions\ExtensionAttribute.cs" />
<Compile Include="Extensions\ExtensionInterfaces.cs" />
<Compile Include="HitTestType.cs" />
<Compile Include="Metadata.cs" />
<Compile Include="PlacementInformation.cs" />

2
src/Main/GlobalAssemblyInfo.cs.template

@ -46,7 +46,7 @@ internal static class RevisionClass @@ -46,7 +46,7 @@ internal static class RevisionClass
public const string Minor = "1";
public const string Build = "0";
public const string Revision = "$INSERTREVISION$";
public const string VersionName = null; // "" is not valid for no version name, you have to use null if you don't want a version name (eg "Beta 1")
public const string VersionName = "Beta"; // "" is not valid for no version name, you have to use null if you don't want a version name (eg "Beta 1")
public const string FullVersion = Major + "." + Minor + "." + Build + ".$INSERTREVISION$$INSERTBRANCHPOSTFIX$$INSERTVERSIONNAMEPOSTFIX$";
}

Loading…
Cancel
Save