From 6f84d20c7f75979f1db7d190716660a8ce259211 Mon Sep 17 00:00:00 2001 From: Curtis Wensley Date: Mon, 18 Nov 2019 20:17:14 -0800 Subject: [PATCH 1/7] Update projects to sdk-style - Remove AssemblyInfo/GlobalAssemblyInfo where necessary - Use Eto from nuget packages - Use msbuild targets to embed assemblies - Update SharpCompress to latest version - Add Windows .msi installer using WiX Toolset - Use a single version identifier - Remove obsolete macbuild script and other obsolete files --- .gitmodules | 3 - Libraries/Eto | 1 - Source/Directory.Build.props | 17 + Source/Directory.Build.targets | 49 ++ Source/EmbedReferences.targets | 148 ++++ Source/GlobalAssemblyInfo.cs | 11 - Source/Pablo Desktop.sln | 305 ++----- Source/Pablo.Interface/Pablo.Interface.csproj | 130 +-- Source/Pablo.Interface/PabloApplication.cs | 7 - .../Properties/AssemblyInfo.cs | 8 - Source/Pablo.mdw | 6 - Source/Pablo/IO/SharpZipLibDirectoryInfo.cs | 2 +- Source/Pablo/IO/UnRarDirectoryInfo.cs | 2 +- Source/Pablo/Info.plist | 8 - Source/Pablo/Pablo.csproj | 773 +----------------- Source/Pablo/Properties/AssemblyInfo.cs | 10 - Source/Pablo/Sauce.zip | Bin 18540 -> 0 bytes Source/Pablo/SharpCompressDirectoryInfo.cs | 13 +- Source/Pablo/XmlExtensions.base.cs | 586 ------------- Source/Pablo/XmlExtensions.drawing.cs | 193 ----- Source/Pablo/packages.config | 5 - Source/PabloDraw.Console/.gitignore | 2 - Source/PabloDraw.Console/App.config | 2 +- .../EmbeddedAssemblyLoader.cs | 98 --- .../PabloDraw.Console.csproj | 188 +---- .../Properties/AssemblyInfo.cs | 10 - Source/PabloDraw.Console/Startup.cs | 8 +- Source/PabloDraw.Mac/Info.plist | 140 ++-- Source/PabloDraw.Mac/PabloDraw.Mac.csproj | 169 +++- .../PabloDraw.WindowsInstaller.wixproj | 56 ++ Source/PabloDraw.WindowsInstaller/Product.wxs | 81 ++ Source/PabloDraw/.gitignore | 2 - Source/PabloDraw/EmbeddedAssemblyLoader.cs | 92 --- Source/PabloDraw/Icon.icns | Bin 0 -> 245129 bytes Source/PabloDraw/PabloDraw.csproj | 518 +----------- Source/PabloDraw/Program.cs | 16 +- Source/PabloDraw/Properties/AssemblyInfo.cs | 10 - Source/PabloDraw/Properties/app.manifest | 54 -- Source/PabloDraw/Startup.cs | 2 +- Source/PabloDraw/app.config | 10 +- Source/macbuild | 71 -- 41 files changed, 731 insertions(+), 3075 deletions(-) delete mode 160000 Libraries/Eto create mode 100644 Source/Directory.Build.props create mode 100644 Source/Directory.Build.targets create mode 100644 Source/EmbedReferences.targets delete mode 100644 Source/GlobalAssemblyInfo.cs delete mode 100644 Source/Pablo.Interface/Properties/AssemblyInfo.cs delete mode 100644 Source/Pablo.mdw delete mode 100644 Source/Pablo/Info.plist delete mode 100644 Source/Pablo/Properties/AssemblyInfo.cs delete mode 100644 Source/Pablo/Sauce.zip delete mode 100644 Source/Pablo/XmlExtensions.base.cs delete mode 100644 Source/Pablo/XmlExtensions.drawing.cs delete mode 100644 Source/Pablo/packages.config delete mode 100644 Source/PabloDraw.Console/.gitignore delete mode 100644 Source/PabloDraw.Console/EmbeddedAssemblyLoader.cs delete mode 100644 Source/PabloDraw.Console/Properties/AssemblyInfo.cs create mode 100644 Source/PabloDraw.WindowsInstaller/PabloDraw.WindowsInstaller.wixproj create mode 100644 Source/PabloDraw.WindowsInstaller/Product.wxs delete mode 100644 Source/PabloDraw/.gitignore delete mode 100644 Source/PabloDraw/EmbeddedAssemblyLoader.cs create mode 100644 Source/PabloDraw/Icon.icns delete mode 100644 Source/PabloDraw/Properties/AssemblyInfo.cs delete mode 100644 Source/PabloDraw/Properties/app.manifest delete mode 100755 Source/macbuild diff --git a/.gitmodules b/.gitmodules index 71b77c6..58c6399 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,9 +1,6 @@ [submodule "Libraries/Mono.Nat"] path = Libraries/Mono.Nat url = https://github.com/cwensley/Mono.Nat.git -[submodule "Libraries/Eto"] - path = Libraries/Eto - url = https://github.com/picoe/Eto.git [submodule "Libraries/lidgren"] path = Libraries/lidgren url = https://github.com/lidgren/lidgren-network-gen3.git diff --git a/Libraries/Eto b/Libraries/Eto deleted file mode 160000 index 229f853..0000000 --- a/Libraries/Eto +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 229f853dbc53d2a62f2d919cc0cf5687403c7ead diff --git a/Source/Directory.Build.props b/Source/Directory.Build.props new file mode 100644 index 0000000..e135c03 --- /dev/null +++ b/Source/Directory.Build.props @@ -0,0 +1,17 @@ + + + Picoe Software Solutions + (c) 2006-2019 by Curtis Wensley aka Eto + 3.3.0-dev + + $(MSBuildThisFileDirectory)..\ + $(BasePath)Artifacts\ + + $(ArtifactsDir)obj\$(OS)\$(MSBuildProjectName)\ + bin + $(ArtifactsDir)$(OutputArtifactName)\ + $(ArtifactsDir)nuget\$(Configuration)\ + PackageReference + + + \ No newline at end of file diff --git a/Source/Directory.Build.targets b/Source/Directory.Build.targets new file mode 100644 index 0000000..72939ce --- /dev/null +++ b/Source/Directory.Build.targets @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + (?\d+)[.](?\d+)([.](?\d+)([.](?\d+))?)?)([-](?.+))?"); + +if (string.IsNullOrEmpty(AssemblyVersion)) AssemblyVersion = regex.Replace(Version, "${ver}"); +if (string.IsNullOrEmpty(AssemblyFileVersion)) AssemblyFileVersion = AssemblyFileVersion ?? regex.Replace(Version, "${ver}"); +if (string.IsNullOrEmpty(AssemblyInformationalVersion)) AssemblyInformationalVersion = Version; + +]]> + + + + + + <_ParseVersion Version="$(Version)"> + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/EmbedReferences.targets b/Source/EmbedReferences.targets new file mode 100644 index 0000000..24b38b6 --- /dev/null +++ b/Source/EmbedReferences.targets @@ -0,0 +1,148 @@ + + + + + True + + + + + false + References + False + + + <_GetCommonFiles Files="@(ReferencePath)" Names="$(EmbedReferences)" Condition="$(EmbedReferences) != 'True'"> + + + + + + + + + + + + + + + $(EmbedPrefix).%(FilesToEmbed.DestinationSubDirectory)%(FilesToEmbed.Filename)%(FilesToEmbed.Extension) + + + + + + + + + + + EmbedReferences.cs + false + + + + + + + /// Loads assemblies from embedded resources instead of from disk + /// + /// + /// This is useful when you want to create a single assembly/executable without having to ship referenced dll's + /// alongside your application. + /// + /// (c) 2012 by Curtis Wensley + /// See LICENSE for full terms + class EmbedReferences + { + readonly Dictionary loadedAssemblies = new Dictionary()%3b + + /// + /// Gets the assembly in which this loader will load assembly resources from + /// + public Assembly Assembly { get%3b private set%3b } + + /// + /// Gets the namespace in the to get the assembly resources from + /// + public string ResourceNamespace { get%3b private set%3b } + + /// + /// Registers the specified namespace for loading embedded assemblies + /// + /// Namespace of where the embedded assemblies should be loaded + /// Assembly to load the embedded assemblies from, or null to use the calling assembly + /// Application domain to load the assemblies in, or null to use the current app domain + /// A new instance of an EmbedReferences, registered for the specified namespace and assembly + public static EmbedReferences Init(string resourceNamespace = "References", Assembly assembly = null, AppDomain domain = null) + { + assembly = assembly ?? Assembly.GetCallingAssembly()%3b + var loader = new EmbedReferences(resourceNamespace, assembly)%3b + loader.Init(domain)%3b + return loader%3b + } + + /// + /// Initializes a new instance of the EmbedReferences + /// + /// Namespace of where the embedded assemblies should be loaded + /// Assembly to load the embedded assemblies from, or null to use the calling assembly + public EmbedReferences(string resourceNamespace, Assembly assembly = null) + { + this.Assembly = assembly ?? Assembly.GetCallingAssembly()%3b + this.ResourceNamespace = resourceNamespace%3b + } + + /// + /// Registers this loader for the specified + /// + /// App domain to register this loader for, or null to use the current domain + public void Init(AppDomain domain = null) + { + domain = domain ?? AppDomain.CurrentDomain%3b + domain.AssemblyResolve += (sender, args) => + { + var assemblyName = new AssemblyName(args.Name)%3b + if (assemblyName.Name.EndsWith(".resources", StringComparison.OrdinalIgnoreCase)) return null%3b + + string resourceName = ResourceNamespace + "." + assemblyName.Name + ".dll"%3b + Assembly loadedAssembly%3b + lock (loadedAssemblies) + { + if (!loadedAssemblies.TryGetValue(resourceName, out loadedAssembly)) + { + using (var stream = Assembly.GetManifestResourceStream(resourceName)) + { + if (stream != null) + { + using (var binaryReader = new BinaryReader(stream)) + { + loadedAssembly = Assembly.Load(binaryReader.ReadBytes((int)stream.Length))%3b + loadedAssemblies.Add(resourceName, loadedAssembly)%3b + } + } + } + } + } + return loadedAssembly%3b + }%3b + } + } + ]]> + + + + + + \ No newline at end of file diff --git a/Source/GlobalAssemblyInfo.cs b/Source/GlobalAssemblyInfo.cs deleted file mode 100644 index 29d8e45..0000000 --- a/Source/GlobalAssemblyInfo.cs +++ /dev/null @@ -1,11 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -[assembly: AssemblyCompany("Picoe Software Solutions Inc.")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("(c) 2013 by Curtis Wensley aka Eto")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - - -[assembly: AssemblyVersion("3.2.1.*")] diff --git a/Source/Pablo Desktop.sln b/Source/Pablo Desktop.sln index 9f7d483..91d0e25 100644 --- a/Source/Pablo Desktop.sln +++ b/Source/Pablo Desktop.sln @@ -1,264 +1,105 @@  Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27130.2010 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29424.173 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Pablo", "Pablo\Pablo.csproj", "{35DBE6BB-B46D-4AE9-8156-FBFC6EC2BB69}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PabloDraw", "PabloDraw\PabloDraw.csproj", "{9A72B697-8DA3-4A52-9E6B-05DEEEA23AD2}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Pablo.Interface", "Pablo.Interface\Pablo.Interface.csproj", "{3FAACC7E-D156-4599-B0D1-6177AD78E8B1}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Pablo", "Pablo\Pablo.csproj", "{35DBE6BB-B46D-4AE9-8156-FBFC6EC2BB69}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PabloDraw", "PabloDraw\PabloDraw.csproj", "{9A72B697-8DA3-4A52-9E6B-05DEEEA23AD2}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Pablo.Interface", "Pablo.Interface\Pablo.Interface.csproj", "{3FAACC7E-D156-4599-B0D1-6177AD78E8B1}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Mono.Nat", "..\Libraries\Mono.Nat\src\Mono.Nat\Mono.Nat.csproj", "{F5D74163-145F-47BF-83DC-D0E07249C6CA}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PabloDraw.Console", "PabloDraw.Console\PabloDraw.Console.csproj", "{0457895A-719B-47E9-84F3-356B2A1F8D3C}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Eto", "Eto", "{C8B59D00-6086-492E-9112-3DA8E5025FBB}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Eto - pcl", "..\Libraries\Eto\Source\Eto\Eto - pcl.csproj", "{35EF0A4E-2A1A-492C-8BED-106774EA09F2}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Eto.Direct2D - net45", "..\Libraries\Eto\Source\Eto.Direct2D\Eto.Direct2D - net45.csproj", "{330EF9FD-5947-4AC9-9796-950C7633695F}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Eto.Gtk2 - net45", "..\Libraries\Eto\Source\Eto.Gtk\Eto.Gtk2 - net45.csproj", "{80915A80-CA54-11E3-9C1A-0800200C9A66}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Eto.Gtk3 - net45", "..\Libraries\Eto\Source\Eto.Gtk\Eto.Gtk3 - net45.csproj", "{543B2F90-CA56-11E3-9C1A-0800200C9A66}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Eto.WinForms - net45", "..\Libraries\Eto\Source\Eto.WinForms\Eto.WinForms - net45.csproj", "{9F51798A-354C-47A1-9207-4BB7D7FC7FC4}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Eto.Wpf - net45", "..\Libraries\Eto\Source\Eto.Wpf\Eto.Wpf - net45.csproj", "{63137FA0-CA55-11E3-9C1A-0800200C9A66}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PabloDraw.Console", "PabloDraw.Console\PabloDraw.Console.csproj", "{0457895A-719B-47E9-84F3-356B2A1F8D3C}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{88CCB819-8E11-429C-94D7-D5A27A671129}" ProjectSection(SolutionItems) = preProject - Pablo Desktop.sln = Pablo Desktop.sln - Performance1.psess = Performance1.psess + Directory.Build.props = Directory.Build.props + Directory.Build.targets = Directory.Build.targets + EmbedReferences.targets = EmbedReferences.targets EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Lidgren.Network", "..\Libraries\lidgren\Lidgren.Network\Lidgren.Network.csproj", "{49BA1C69-6104-41AC-A5D8-B54FA9F696E8}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Eto.XamMac2 - net45", "..\Libraries\Eto\Source\Eto.Mac\Eto.XamMac2 - net45.csproj", "{856E8C70-2702-11E4-8C21-0800200C9A66}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PabloDraw.Mac", "PabloDraw.Mac\PabloDraw.Mac.csproj", "{5590729F-3176-4A91-94E3-54F75DA2EB9D}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Eto.Mac - net45", "..\Libraries\Eto\Source\Eto.Mac\Eto.Mac - net45.csproj", "{3E7995E0-C9EB-11E3-9C1A-0800200C9A66}" +Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "PabloDraw.WindowsInstaller", "PabloDraw.WindowsInstaller\PabloDraw.WindowsInstaller.wixproj", "{38A42F6D-A417-45B0-8EC8-A700F31CBE26}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution - Mac App Store|Any CPU = Mac App Store|Any CPU - Mac Debug|Any CPU = Mac Debug|Any CPU - Mac Developer|Any CPU = Mac Developer|Any CPU - Mac Release|Any CPU = Mac Release|Any CPU - Win Debug|Any CPU = Win Debug|Any CPU - Win Release|Any CPU = Win Release|Any CPU + Debug|Any CPU = Debug|Any CPU + Debug|Mac = Debug|Mac + Release|Any CPU = Release|Any CPU + Release|Mac = Release|Mac EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {35DBE6BB-B46D-4AE9-8156-FBFC6EC2BB69}.Mac App Store|Any CPU.ActiveCfg = Release-MAS|Any CPU - {35DBE6BB-B46D-4AE9-8156-FBFC6EC2BB69}.Mac App Store|Any CPU.Build.0 = Release-MAS|Any CPU - {35DBE6BB-B46D-4AE9-8156-FBFC6EC2BB69}.Mac Debug|Any CPU.ActiveCfg = Debug|Any CPU - {35DBE6BB-B46D-4AE9-8156-FBFC6EC2BB69}.Mac Debug|Any CPU.Build.0 = Debug|Any CPU - {35DBE6BB-B46D-4AE9-8156-FBFC6EC2BB69}.Mac Developer|Any CPU.ActiveCfg = Release|Any CPU - {35DBE6BB-B46D-4AE9-8156-FBFC6EC2BB69}.Mac Developer|Any CPU.Build.0 = Release|Any CPU - {35DBE6BB-B46D-4AE9-8156-FBFC6EC2BB69}.Mac Release|Any CPU.ActiveCfg = Release|Any CPU - {35DBE6BB-B46D-4AE9-8156-FBFC6EC2BB69}.Mac Release|Any CPU.Build.0 = Release|Any CPU - {35DBE6BB-B46D-4AE9-8156-FBFC6EC2BB69}.Win Debug|Any CPU.ActiveCfg = Debug|Any CPU - {35DBE6BB-B46D-4AE9-8156-FBFC6EC2BB69}.Win Debug|Any CPU.Build.0 = Debug|Any CPU - {35DBE6BB-B46D-4AE9-8156-FBFC6EC2BB69}.Win Release|Any CPU.ActiveCfg = Release|Any CPU - {35DBE6BB-B46D-4AE9-8156-FBFC6EC2BB69}.Win Release|Any CPU.Build.0 = Release|Any CPU - {3FAACC7E-D156-4599-B0D1-6177AD78E8B1}.Mac App Store|Any CPU.ActiveCfg = Release|Any CPU - {3FAACC7E-D156-4599-B0D1-6177AD78E8B1}.Mac App Store|Any CPU.Build.0 = Release|Any CPU - {3FAACC7E-D156-4599-B0D1-6177AD78E8B1}.Mac Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3FAACC7E-D156-4599-B0D1-6177AD78E8B1}.Mac Debug|Any CPU.Build.0 = Debug|Any CPU - {3FAACC7E-D156-4599-B0D1-6177AD78E8B1}.Mac Developer|Any CPU.ActiveCfg = Release|Any CPU - {3FAACC7E-D156-4599-B0D1-6177AD78E8B1}.Mac Developer|Any CPU.Build.0 = Release|Any CPU - {3FAACC7E-D156-4599-B0D1-6177AD78E8B1}.Mac Release|Any CPU.ActiveCfg = Release|Any CPU - {3FAACC7E-D156-4599-B0D1-6177AD78E8B1}.Mac Release|Any CPU.Build.0 = Release|Any CPU - {3FAACC7E-D156-4599-B0D1-6177AD78E8B1}.Win Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3FAACC7E-D156-4599-B0D1-6177AD78E8B1}.Win Debug|Any CPU.Build.0 = Debug|Any CPU - {3FAACC7E-D156-4599-B0D1-6177AD78E8B1}.Win Release|Any CPU.ActiveCfg = Release|Any CPU - {3FAACC7E-D156-4599-B0D1-6177AD78E8B1}.Win Release|Any CPU.Build.0 = Release|Any CPU - {9A72B697-8DA3-4A52-9E6B-05DEEEA23AD2}.Mac App Store|Any CPU.ActiveCfg = Release|Any CPU - {9A72B697-8DA3-4A52-9E6B-05DEEEA23AD2}.Mac App Store|Any CPU.Build.0 = Release|Any CPU - {9A72B697-8DA3-4A52-9E6B-05DEEEA23AD2}.Mac Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9A72B697-8DA3-4A52-9E6B-05DEEEA23AD2}.Mac Debug|Any CPU.Build.0 = Debug|Any CPU - {9A72B697-8DA3-4A52-9E6B-05DEEEA23AD2}.Mac Developer|Any CPU.ActiveCfg = Release|Any CPU - {9A72B697-8DA3-4A52-9E6B-05DEEEA23AD2}.Mac Developer|Any CPU.Build.0 = Release|Any CPU - {9A72B697-8DA3-4A52-9E6B-05DEEEA23AD2}.Mac Release|Any CPU.ActiveCfg = Release|Any CPU - {9A72B697-8DA3-4A52-9E6B-05DEEEA23AD2}.Mac Release|Any CPU.Build.0 = Release|Any CPU - {9A72B697-8DA3-4A52-9E6B-05DEEEA23AD2}.Win Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9A72B697-8DA3-4A52-9E6B-05DEEEA23AD2}.Win Debug|Any CPU.Build.0 = Debug|Any CPU - {9A72B697-8DA3-4A52-9E6B-05DEEEA23AD2}.Win Release|Any CPU.ActiveCfg = Release|Any CPU - {9A72B697-8DA3-4A52-9E6B-05DEEEA23AD2}.Win Release|Any CPU.Build.0 = Release|Any CPU - {F5D74163-145F-47BF-83DC-D0E07249C6CA}.Mac App Store|Any CPU.ActiveCfg = Release|Any CPU - {F5D74163-145F-47BF-83DC-D0E07249C6CA}.Mac App Store|Any CPU.Build.0 = Release|Any CPU - {F5D74163-145F-47BF-83DC-D0E07249C6CA}.Mac Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F5D74163-145F-47BF-83DC-D0E07249C6CA}.Mac Debug|Any CPU.Build.0 = Debug|Any CPU - {F5D74163-145F-47BF-83DC-D0E07249C6CA}.Mac Developer|Any CPU.ActiveCfg = Release|Any CPU - {F5D74163-145F-47BF-83DC-D0E07249C6CA}.Mac Developer|Any CPU.Build.0 = Release|Any CPU - {F5D74163-145F-47BF-83DC-D0E07249C6CA}.Mac Release|Any CPU.ActiveCfg = Release|Any CPU - {F5D74163-145F-47BF-83DC-D0E07249C6CA}.Mac Release|Any CPU.Build.0 = Release|Any CPU - {F5D74163-145F-47BF-83DC-D0E07249C6CA}.Win Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F5D74163-145F-47BF-83DC-D0E07249C6CA}.Win Debug|Any CPU.Build.0 = Debug|Any CPU - {F5D74163-145F-47BF-83DC-D0E07249C6CA}.Win Release|Any CPU.ActiveCfg = Release|Any CPU - {F5D74163-145F-47BF-83DC-D0E07249C6CA}.Win Release|Any CPU.Build.0 = Release|Any CPU - {0457895A-719B-47E9-84F3-356B2A1F8D3C}.Mac App Store|Any CPU.ActiveCfg = Release|Any CPU - {0457895A-719B-47E9-84F3-356B2A1F8D3C}.Mac App Store|Any CPU.Build.0 = Release|Any CPU - {0457895A-719B-47E9-84F3-356B2A1F8D3C}.Mac Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0457895A-719B-47E9-84F3-356B2A1F8D3C}.Mac Debug|Any CPU.Build.0 = Debug|Any CPU - {0457895A-719B-47E9-84F3-356B2A1F8D3C}.Mac Developer|Any CPU.ActiveCfg = Release|Any CPU - {0457895A-719B-47E9-84F3-356B2A1F8D3C}.Mac Developer|Any CPU.Build.0 = Release|Any CPU - {0457895A-719B-47E9-84F3-356B2A1F8D3C}.Mac Release|Any CPU.ActiveCfg = Release|Any CPU - {0457895A-719B-47E9-84F3-356B2A1F8D3C}.Mac Release|Any CPU.Build.0 = Release|Any CPU - {0457895A-719B-47E9-84F3-356B2A1F8D3C}.Win Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0457895A-719B-47E9-84F3-356B2A1F8D3C}.Win Debug|Any CPU.Build.0 = Debug|Any CPU - {0457895A-719B-47E9-84F3-356B2A1F8D3C}.Win Release|Any CPU.ActiveCfg = Release|Any CPU - {0457895A-719B-47E9-84F3-356B2A1F8D3C}.Win Release|Any CPU.Build.0 = Release|Any CPU - {35EF0A4E-2A1A-492C-8BED-106774EA09F2}.Mac App Store|Any CPU.ActiveCfg = Release|Any CPU - {35EF0A4E-2A1A-492C-8BED-106774EA09F2}.Mac App Store|Any CPU.Build.0 = Release|Any CPU - {35EF0A4E-2A1A-492C-8BED-106774EA09F2}.Mac Debug|Any CPU.ActiveCfg = Debug|Any CPU - {35EF0A4E-2A1A-492C-8BED-106774EA09F2}.Mac Debug|Any CPU.Build.0 = Debug|Any CPU - {35EF0A4E-2A1A-492C-8BED-106774EA09F2}.Mac Developer|Any CPU.ActiveCfg = Release|Any CPU - {35EF0A4E-2A1A-492C-8BED-106774EA09F2}.Mac Developer|Any CPU.Build.0 = Release|Any CPU - {35EF0A4E-2A1A-492C-8BED-106774EA09F2}.Mac Release|Any CPU.ActiveCfg = Release|Any CPU - {35EF0A4E-2A1A-492C-8BED-106774EA09F2}.Mac Release|Any CPU.Build.0 = Release|Any CPU - {35EF0A4E-2A1A-492C-8BED-106774EA09F2}.Win Debug|Any CPU.ActiveCfg = Debug|Any CPU - {35EF0A4E-2A1A-492C-8BED-106774EA09F2}.Win Debug|Any CPU.Build.0 = Debug|Any CPU - {35EF0A4E-2A1A-492C-8BED-106774EA09F2}.Win Release|Any CPU.ActiveCfg = Release|Any CPU - {35EF0A4E-2A1A-492C-8BED-106774EA09F2}.Win Release|Any CPU.Build.0 = Release|Any CPU - {330EF9FD-5947-4AC9-9796-950C7633695F}.Mac App Store|Any CPU.ActiveCfg = Release|Any CPU - {330EF9FD-5947-4AC9-9796-950C7633695F}.Mac App Store|Any CPU.Build.0 = Release|Any CPU - {330EF9FD-5947-4AC9-9796-950C7633695F}.Mac Debug|Any CPU.ActiveCfg = Debug|Any CPU - {330EF9FD-5947-4AC9-9796-950C7633695F}.Mac Debug|Any CPU.Build.0 = Debug|Any CPU - {330EF9FD-5947-4AC9-9796-950C7633695F}.Mac Developer|Any CPU.ActiveCfg = Release|Any CPU - {330EF9FD-5947-4AC9-9796-950C7633695F}.Mac Developer|Any CPU.Build.0 = Release|Any CPU - {330EF9FD-5947-4AC9-9796-950C7633695F}.Mac Release|Any CPU.ActiveCfg = Release|Any CPU - {330EF9FD-5947-4AC9-9796-950C7633695F}.Mac Release|Any CPU.Build.0 = Release|Any CPU - {330EF9FD-5947-4AC9-9796-950C7633695F}.Win Debug|Any CPU.ActiveCfg = Debug|Any CPU - {330EF9FD-5947-4AC9-9796-950C7633695F}.Win Debug|Any CPU.Build.0 = Debug|Any CPU - {330EF9FD-5947-4AC9-9796-950C7633695F}.Win Release|Any CPU.ActiveCfg = Release|Any CPU - {330EF9FD-5947-4AC9-9796-950C7633695F}.Win Release|Any CPU.Build.0 = Release|Any CPU - {80915A80-CA54-11E3-9C1A-0800200C9A66}.Mac App Store|Any CPU.ActiveCfg = Release|Any CPU - {80915A80-CA54-11E3-9C1A-0800200C9A66}.Mac App Store|Any CPU.Build.0 = Release|Any CPU - {80915A80-CA54-11E3-9C1A-0800200C9A66}.Mac Debug|Any CPU.ActiveCfg = Debug|Any CPU - {80915A80-CA54-11E3-9C1A-0800200C9A66}.Mac Debug|Any CPU.Build.0 = Debug|Any CPU - {80915A80-CA54-11E3-9C1A-0800200C9A66}.Mac Developer|Any CPU.ActiveCfg = Release|Any CPU - {80915A80-CA54-11E3-9C1A-0800200C9A66}.Mac Developer|Any CPU.Build.0 = Release|Any CPU - {80915A80-CA54-11E3-9C1A-0800200C9A66}.Mac Release|Any CPU.ActiveCfg = Release|Any CPU - {80915A80-CA54-11E3-9C1A-0800200C9A66}.Mac Release|Any CPU.Build.0 = Release|Any CPU - {80915A80-CA54-11E3-9C1A-0800200C9A66}.Win Debug|Any CPU.ActiveCfg = Debug|Any CPU - {80915A80-CA54-11E3-9C1A-0800200C9A66}.Win Debug|Any CPU.Build.0 = Debug|Any CPU - {80915A80-CA54-11E3-9C1A-0800200C9A66}.Win Release|Any CPU.ActiveCfg = Release|Any CPU - {80915A80-CA54-11E3-9C1A-0800200C9A66}.Win Release|Any CPU.Build.0 = Release|Any CPU - {543B2F90-CA56-11E3-9C1A-0800200C9A66}.Mac App Store|Any CPU.ActiveCfg = Release|Any CPU - {543B2F90-CA56-11E3-9C1A-0800200C9A66}.Mac App Store|Any CPU.Build.0 = Release|Any CPU - {543B2F90-CA56-11E3-9C1A-0800200C9A66}.Mac Debug|Any CPU.ActiveCfg = Debug|Any CPU - {543B2F90-CA56-11E3-9C1A-0800200C9A66}.Mac Debug|Any CPU.Build.0 = Debug|Any CPU - {543B2F90-CA56-11E3-9C1A-0800200C9A66}.Mac Developer|Any CPU.ActiveCfg = Release|Any CPU - {543B2F90-CA56-11E3-9C1A-0800200C9A66}.Mac Developer|Any CPU.Build.0 = Release|Any CPU - {543B2F90-CA56-11E3-9C1A-0800200C9A66}.Mac Release|Any CPU.ActiveCfg = Release|Any CPU - {543B2F90-CA56-11E3-9C1A-0800200C9A66}.Mac Release|Any CPU.Build.0 = Release|Any CPU - {543B2F90-CA56-11E3-9C1A-0800200C9A66}.Win Debug|Any CPU.ActiveCfg = Debug|Any CPU - {543B2F90-CA56-11E3-9C1A-0800200C9A66}.Win Debug|Any CPU.Build.0 = Debug|Any CPU - {543B2F90-CA56-11E3-9C1A-0800200C9A66}.Win Release|Any CPU.ActiveCfg = Release|Any CPU - {543B2F90-CA56-11E3-9C1A-0800200C9A66}.Win Release|Any CPU.Build.0 = Release|Any CPU - {9F51798A-354C-47A1-9207-4BB7D7FC7FC4}.Mac App Store|Any CPU.ActiveCfg = Release|Any CPU - {9F51798A-354C-47A1-9207-4BB7D7FC7FC4}.Mac App Store|Any CPU.Build.0 = Release|Any CPU - {9F51798A-354C-47A1-9207-4BB7D7FC7FC4}.Mac Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9F51798A-354C-47A1-9207-4BB7D7FC7FC4}.Mac Debug|Any CPU.Build.0 = Debug|Any CPU - {9F51798A-354C-47A1-9207-4BB7D7FC7FC4}.Mac Developer|Any CPU.ActiveCfg = Release|Any CPU - {9F51798A-354C-47A1-9207-4BB7D7FC7FC4}.Mac Developer|Any CPU.Build.0 = Release|Any CPU - {9F51798A-354C-47A1-9207-4BB7D7FC7FC4}.Mac Release|Any CPU.ActiveCfg = Release|Any CPU - {9F51798A-354C-47A1-9207-4BB7D7FC7FC4}.Mac Release|Any CPU.Build.0 = Release|Any CPU - {9F51798A-354C-47A1-9207-4BB7D7FC7FC4}.Win Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9F51798A-354C-47A1-9207-4BB7D7FC7FC4}.Win Debug|Any CPU.Build.0 = Debug|Any CPU - {9F51798A-354C-47A1-9207-4BB7D7FC7FC4}.Win Release|Any CPU.ActiveCfg = Release|Any CPU - {9F51798A-354C-47A1-9207-4BB7D7FC7FC4}.Win Release|Any CPU.Build.0 = Release|Any CPU - {63137FA0-CA55-11E3-9C1A-0800200C9A66}.Mac App Store|Any CPU.ActiveCfg = Release|Any CPU - {63137FA0-CA55-11E3-9C1A-0800200C9A66}.Mac App Store|Any CPU.Build.0 = Release|Any CPU - {63137FA0-CA55-11E3-9C1A-0800200C9A66}.Mac Debug|Any CPU.ActiveCfg = Debug|Any CPU - {63137FA0-CA55-11E3-9C1A-0800200C9A66}.Mac Debug|Any CPU.Build.0 = Debug|Any CPU - {63137FA0-CA55-11E3-9C1A-0800200C9A66}.Mac Developer|Any CPU.ActiveCfg = Release|Any CPU - {63137FA0-CA55-11E3-9C1A-0800200C9A66}.Mac Developer|Any CPU.Build.0 = Release|Any CPU - {63137FA0-CA55-11E3-9C1A-0800200C9A66}.Mac Release|Any CPU.ActiveCfg = Release|Any CPU - {63137FA0-CA55-11E3-9C1A-0800200C9A66}.Mac Release|Any CPU.Build.0 = Release|Any CPU - {63137FA0-CA55-11E3-9C1A-0800200C9A66}.Win Debug|Any CPU.ActiveCfg = Debug|Any CPU - {63137FA0-CA55-11E3-9C1A-0800200C9A66}.Win Debug|Any CPU.Build.0 = Debug|Any CPU - {63137FA0-CA55-11E3-9C1A-0800200C9A66}.Win Release|Any CPU.ActiveCfg = Release|Any CPU - {63137FA0-CA55-11E3-9C1A-0800200C9A66}.Win Release|Any CPU.Build.0 = Release|Any CPU - {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Mac App Store|Any CPU.ActiveCfg = Release|Any CPU - {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Mac App Store|Any CPU.Build.0 = Release|Any CPU - {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Mac Debug|Any CPU.ActiveCfg = Debug|Any CPU - {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Mac Debug|Any CPU.Build.0 = Debug|Any CPU - {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Mac Developer|Any CPU.ActiveCfg = Release|Any CPU - {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Mac Developer|Any CPU.Build.0 = Release|Any CPU - {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Mac Release|Any CPU.ActiveCfg = Release|Any CPU - {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Mac Release|Any CPU.Build.0 = Release|Any CPU - {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Win Debug|Any CPU.ActiveCfg = Debug|Any CPU - {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Win Debug|Any CPU.Build.0 = Debug|Any CPU - {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Win Release|Any CPU.ActiveCfg = Release|Any CPU - {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Win Release|Any CPU.Build.0 = Release|Any CPU - {856E8C70-2702-11E4-8C21-0800200C9A66}.Mac App Store|Any CPU.ActiveCfg = Release|Any CPU - {856E8C70-2702-11E4-8C21-0800200C9A66}.Mac App Store|Any CPU.Build.0 = Release|Any CPU - {856E8C70-2702-11E4-8C21-0800200C9A66}.Mac Debug|Any CPU.ActiveCfg = Debug|Any CPU - {856E8C70-2702-11E4-8C21-0800200C9A66}.Mac Debug|Any CPU.Build.0 = Debug|Any CPU - {856E8C70-2702-11E4-8C21-0800200C9A66}.Mac Developer|Any CPU.ActiveCfg = Release|Any CPU - {856E8C70-2702-11E4-8C21-0800200C9A66}.Mac Developer|Any CPU.Build.0 = Release|Any CPU - {856E8C70-2702-11E4-8C21-0800200C9A66}.Mac Release|Any CPU.ActiveCfg = Release|Any CPU - {856E8C70-2702-11E4-8C21-0800200C9A66}.Mac Release|Any CPU.Build.0 = Release|Any CPU - {856E8C70-2702-11E4-8C21-0800200C9A66}.Win Debug|Any CPU.ActiveCfg = Debug|Any CPU - {856E8C70-2702-11E4-8C21-0800200C9A66}.Win Release|Any CPU.ActiveCfg = Release|Any CPU - {5590729F-3176-4A91-94E3-54F75DA2EB9D}.Mac App Store|Any CPU.ActiveCfg = Release|Any CPU - {5590729F-3176-4A91-94E3-54F75DA2EB9D}.Mac App Store|Any CPU.Build.0 = Release|Any CPU - {5590729F-3176-4A91-94E3-54F75DA2EB9D}.Mac Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5590729F-3176-4A91-94E3-54F75DA2EB9D}.Mac Debug|Any CPU.Build.0 = Debug|Any CPU - {5590729F-3176-4A91-94E3-54F75DA2EB9D}.Mac Developer|Any CPU.ActiveCfg = Release|Any CPU - {5590729F-3176-4A91-94E3-54F75DA2EB9D}.Mac Developer|Any CPU.Build.0 = Release|Any CPU - {5590729F-3176-4A91-94E3-54F75DA2EB9D}.Mac Release|Any CPU.ActiveCfg = Release|Any CPU - {5590729F-3176-4A91-94E3-54F75DA2EB9D}.Mac Release|Any CPU.Build.0 = Release|Any CPU - {5590729F-3176-4A91-94E3-54F75DA2EB9D}.Win Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5590729F-3176-4A91-94E3-54F75DA2EB9D}.Win Release|Any CPU.ActiveCfg = Release|Any CPU - {3E7995E0-C9EB-11E3-9C1A-0800200C9A66}.Mac App Store|Any CPU.ActiveCfg = Release|Any CPU - {3E7995E0-C9EB-11E3-9C1A-0800200C9A66}.Mac App Store|Any CPU.Build.0 = Release|Any CPU - {3E7995E0-C9EB-11E3-9C1A-0800200C9A66}.Mac Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3E7995E0-C9EB-11E3-9C1A-0800200C9A66}.Mac Debug|Any CPU.Build.0 = Debug|Any CPU - {3E7995E0-C9EB-11E3-9C1A-0800200C9A66}.Mac Developer|Any CPU.ActiveCfg = Release|Any CPU - {3E7995E0-C9EB-11E3-9C1A-0800200C9A66}.Mac Developer|Any CPU.Build.0 = Release|Any CPU - {3E7995E0-C9EB-11E3-9C1A-0800200C9A66}.Mac Release|Any CPU.ActiveCfg = Release|Any CPU - {3E7995E0-C9EB-11E3-9C1A-0800200C9A66}.Mac Release|Any CPU.Build.0 = Release|Any CPU - {3E7995E0-C9EB-11E3-9C1A-0800200C9A66}.Win Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3E7995E0-C9EB-11E3-9C1A-0800200C9A66}.Win Debug|Any CPU.Build.0 = Debug|Any CPU - {3E7995E0-C9EB-11E3-9C1A-0800200C9A66}.Win Release|Any CPU.ActiveCfg = Release|Any CPU - {3E7995E0-C9EB-11E3-9C1A-0800200C9A66}.Win Release|Any CPU.Build.0 = Release|Any CPU + {9A72B697-8DA3-4A52-9E6B-05DEEEA23AD2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9A72B697-8DA3-4A52-9E6B-05DEEEA23AD2}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9A72B697-8DA3-4A52-9E6B-05DEEEA23AD2}.Debug|Mac.ActiveCfg = Debug|Any CPU + {9A72B697-8DA3-4A52-9E6B-05DEEEA23AD2}.Debug|Mac.Build.0 = Debug|Any CPU + {9A72B697-8DA3-4A52-9E6B-05DEEEA23AD2}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9A72B697-8DA3-4A52-9E6B-05DEEEA23AD2}.Release|Any CPU.Build.0 = Release|Any CPU + {9A72B697-8DA3-4A52-9E6B-05DEEEA23AD2}.Release|Mac.ActiveCfg = Release|Any CPU + {9A72B697-8DA3-4A52-9E6B-05DEEEA23AD2}.Release|Mac.Build.0 = Release|Any CPU + {35DBE6BB-B46D-4AE9-8156-FBFC6EC2BB69}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {35DBE6BB-B46D-4AE9-8156-FBFC6EC2BB69}.Debug|Any CPU.Build.0 = Debug|Any CPU + {35DBE6BB-B46D-4AE9-8156-FBFC6EC2BB69}.Debug|Mac.ActiveCfg = Debug|Any CPU + {35DBE6BB-B46D-4AE9-8156-FBFC6EC2BB69}.Debug|Mac.Build.0 = Debug|Any CPU + {35DBE6BB-B46D-4AE9-8156-FBFC6EC2BB69}.Release|Any CPU.ActiveCfg = Release|Any CPU + {35DBE6BB-B46D-4AE9-8156-FBFC6EC2BB69}.Release|Any CPU.Build.0 = Release|Any CPU + {35DBE6BB-B46D-4AE9-8156-FBFC6EC2BB69}.Release|Mac.ActiveCfg = Release|Any CPU + {35DBE6BB-B46D-4AE9-8156-FBFC6EC2BB69}.Release|Mac.Build.0 = Release|Any CPU + {3FAACC7E-D156-4599-B0D1-6177AD78E8B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3FAACC7E-D156-4599-B0D1-6177AD78E8B1}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3FAACC7E-D156-4599-B0D1-6177AD78E8B1}.Debug|Mac.ActiveCfg = Debug|Any CPU + {3FAACC7E-D156-4599-B0D1-6177AD78E8B1}.Debug|Mac.Build.0 = Debug|Any CPU + {3FAACC7E-D156-4599-B0D1-6177AD78E8B1}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3FAACC7E-D156-4599-B0D1-6177AD78E8B1}.Release|Any CPU.Build.0 = Release|Any CPU + {3FAACC7E-D156-4599-B0D1-6177AD78E8B1}.Release|Mac.ActiveCfg = Release|Any CPU + {3FAACC7E-D156-4599-B0D1-6177AD78E8B1}.Release|Mac.Build.0 = Release|Any CPU + {F5D74163-145F-47BF-83DC-D0E07249C6CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F5D74163-145F-47BF-83DC-D0E07249C6CA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F5D74163-145F-47BF-83DC-D0E07249C6CA}.Debug|Mac.ActiveCfg = Debug|Any CPU + {F5D74163-145F-47BF-83DC-D0E07249C6CA}.Debug|Mac.Build.0 = Debug|Any CPU + {F5D74163-145F-47BF-83DC-D0E07249C6CA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F5D74163-145F-47BF-83DC-D0E07249C6CA}.Release|Any CPU.Build.0 = Release|Any CPU + {F5D74163-145F-47BF-83DC-D0E07249C6CA}.Release|Mac.ActiveCfg = Release|Any CPU + {F5D74163-145F-47BF-83DC-D0E07249C6CA}.Release|Mac.Build.0 = Release|Any CPU + {0457895A-719B-47E9-84F3-356B2A1F8D3C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0457895A-719B-47E9-84F3-356B2A1F8D3C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0457895A-719B-47E9-84F3-356B2A1F8D3C}.Debug|Mac.ActiveCfg = Debug|Any CPU + {0457895A-719B-47E9-84F3-356B2A1F8D3C}.Debug|Mac.Build.0 = Debug|Any CPU + {0457895A-719B-47E9-84F3-356B2A1F8D3C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0457895A-719B-47E9-84F3-356B2A1F8D3C}.Release|Any CPU.Build.0 = Release|Any CPU + {0457895A-719B-47E9-84F3-356B2A1F8D3C}.Release|Mac.ActiveCfg = Release|Any CPU + {0457895A-719B-47E9-84F3-356B2A1F8D3C}.Release|Mac.Build.0 = Release|Any CPU + {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Debug|Any CPU.Build.0 = Debug|Any CPU + {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Debug|Mac.ActiveCfg = Debug|Any CPU + {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Debug|Mac.Build.0 = Debug|Any CPU + {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Release|Any CPU.ActiveCfg = Release|Any CPU + {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Release|Any CPU.Build.0 = Release|Any CPU + {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Release|Mac.ActiveCfg = Release|Any CPU + {49BA1C69-6104-41AC-A5D8-B54FA9F696E8}.Release|Mac.Build.0 = Release|Any CPU + {5590729F-3176-4A91-94E3-54F75DA2EB9D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {5590729F-3176-4A91-94E3-54F75DA2EB9D}.Debug|Mac.ActiveCfg = Debug|Any CPU + {5590729F-3176-4A91-94E3-54F75DA2EB9D}.Debug|Mac.Build.0 = Debug|Any CPU + {5590729F-3176-4A91-94E3-54F75DA2EB9D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {5590729F-3176-4A91-94E3-54F75DA2EB9D}.Release|Mac.ActiveCfg = Release|Any CPU + {5590729F-3176-4A91-94E3-54F75DA2EB9D}.Release|Mac.Build.0 = Release|Any CPU + {38A42F6D-A417-45B0-8EC8-A700F31CBE26}.Debug|Any CPU.ActiveCfg = Debug|x86 + {38A42F6D-A417-45B0-8EC8-A700F31CBE26}.Debug|Mac.ActiveCfg = Debug|x86 + {38A42F6D-A417-45B0-8EC8-A700F31CBE26}.Release|Any CPU.ActiveCfg = Release|x86 + {38A42F6D-A417-45B0-8EC8-A700F31CBE26}.Release|Any CPU.Build.0 = Release|x86 + {38A42F6D-A417-45B0-8EC8-A700F31CBE26}.Release|Mac.ActiveCfg = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {35EF0A4E-2A1A-492C-8BED-106774EA09F2} = {C8B59D00-6086-492E-9112-3DA8E5025FBB} - {330EF9FD-5947-4AC9-9796-950C7633695F} = {C8B59D00-6086-492E-9112-3DA8E5025FBB} - {80915A80-CA54-11E3-9C1A-0800200C9A66} = {C8B59D00-6086-492E-9112-3DA8E5025FBB} - {543B2F90-CA56-11E3-9C1A-0800200C9A66} = {C8B59D00-6086-492E-9112-3DA8E5025FBB} - {9F51798A-354C-47A1-9207-4BB7D7FC7FC4} = {C8B59D00-6086-492E-9112-3DA8E5025FBB} - {63137FA0-CA55-11E3-9C1A-0800200C9A66} = {C8B59D00-6086-492E-9112-3DA8E5025FBB} - {856E8C70-2702-11E4-8C21-0800200C9A66} = {C8B59D00-6086-492E-9112-3DA8E5025FBB} - {3E7995E0-C9EB-11E3-9C1A-0800200C9A66} = {C8B59D00-6086-492E-9112-3DA8E5025FBB} - EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {8F8DD3BA-3F1A-4B83-87FD-07C1D69CB86C} EndGlobalSection - GlobalSection(MonoDevelopProperties) = preSolution - Policies = $0 - $0.DotNetNamingPolicy = $1 - $1.DirectoryNamespaceAssociation = PrefixedHierarchical - $1.ResourceNamePolicy = MSBuild - $0.StandardHeader = $2 - $0.VersionControlPolicy = $3 - $0.ChangeLogPolicy = $4 - $4.UpdateMode = None - $4.MessageStyle = $5 - $5.LineAlign = 0 - $4.inheritsSet = Mono - $0.TextStylePolicy = $6 - version = - EndGlobalSection GlobalSection(Performance) = preSolution HasPerformanceSessions = true EndGlobalSection diff --git a/Source/Pablo.Interface/Pablo.Interface.csproj b/Source/Pablo.Interface/Pablo.Interface.csproj index 1b2d85e..b2acf54 100644 --- a/Source/Pablo.Interface/Pablo.Interface.csproj +++ b/Source/Pablo.Interface/Pablo.Interface.csproj @@ -1,132 +1,20 @@ - - + - Debug - AnyCPU - {3FAACC7E-D156-4599-B0D1-6177AD78E8B1} - Library - Pablo.Interface - Pablo.Interface - - - v4.5.1 - + netstandard2.0 + Pablo.Interface + Main Interface - - true - full - false - bin\Debug - DEBUG - prompt - 4 - false - false - - - pdbonly - true - bin\Release - prompt - 4 - false - true - false - - - - - - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - - - - Properties\GlobalAssemblyInfo.cs - - - - - - - - - - - - - - - - - - - - - + - - - + - - - - - - - - + - - {35EF0A4E-2A1A-492C-8BED-106774EA09F2} - Eto - pcl - - - {49BA1C69-6104-41AC-A5D8-B54FA9F696E8} - Lidgren.Network - - - {35DBE6BB-B46D-4AE9-8156-FBFC6EC2BB69} - Pablo - + + - \ No newline at end of file diff --git a/Source/Pablo.Interface/PabloApplication.cs b/Source/Pablo.Interface/PabloApplication.cs index 9e41b19..1bbe20e 100644 --- a/Source/Pablo.Interface/PabloApplication.cs +++ b/Source/Pablo.Interface/PabloApplication.cs @@ -23,13 +23,6 @@ public class PabloApplication : Eto.Forms.Application static Main main2; #endif -#if DEBUG - static PabloApplication () - { - Debug.Listeners.Clear(); - Debug.Listeners.Add (new TextWriterTraceListener (System.Console.Out)); - } -#endif public PabloApplication() : this(Platform.Detect) { diff --git a/Source/Pablo.Interface/Properties/AssemblyInfo.cs b/Source/Pablo.Interface/Properties/AssemblyInfo.cs deleted file mode 100644 index 51501bf..0000000 --- a/Source/Pablo.Interface/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,8 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// Information about this assembly is defined by the following attributes. -// Change them to the values specific to your project. - -[assembly: AssemblyTitle("Pablo.Interface")] -[assembly: AssemblyDescription("Main Interface")] diff --git a/Source/Pablo.mdw b/Source/Pablo.mdw deleted file mode 100644 index bf03df3..0000000 --- a/Source/Pablo.mdw +++ /dev/null @@ -1,6 +0,0 @@ - - - Pablo iOS.sln - Pablo Desktop.sln - - \ No newline at end of file diff --git a/Source/Pablo/IO/SharpZipLibDirectoryInfo.cs b/Source/Pablo/IO/SharpZipLibDirectoryInfo.cs index 2a47d5b..2f0a264 100644 --- a/Source/Pablo/IO/SharpZipLibDirectoryInfo.cs +++ b/Source/Pablo/IO/SharpZipLibDirectoryInfo.cs @@ -1,4 +1,4 @@ -#if !IOS +#if USE_SHARPZIPLIB using System; using System.Text.RegularExpressions; using System.Collections; diff --git a/Source/Pablo/IO/UnRarDirectoryInfo.cs b/Source/Pablo/IO/UnRarDirectoryInfo.cs index 9bfa83a..cf3b863 100644 --- a/Source/Pablo/IO/UnRarDirectoryInfo.cs +++ b/Source/Pablo/IO/UnRarDirectoryInfo.cs @@ -1,4 +1,4 @@ -#if !IOS +#if USE_UNRAR using System; using System.Text.RegularExpressions; using System.Collections; diff --git a/Source/Pablo/Info.plist b/Source/Pablo/Info.plist deleted file mode 100644 index 987e109..0000000 --- a/Source/Pablo/Info.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - MinimumOSVersion - 3.0 - - diff --git a/Source/Pablo/Pablo.csproj b/Source/Pablo/Pablo.csproj index 5761e0d..031466a 100644 --- a/Source/Pablo/Pablo.csproj +++ b/Source/Pablo/Pablo.csproj @@ -1,765 +1,32 @@ - - + - Local - {35DBE6BB-B46D-4AE9-8156-FBFC6EC2BB69} - Debug - AnyCPU - - - Pablo - JScript - Grid - IE50 - Library - - - Pablo - - - - - v4.5.1 - - - - true - 285212672 - - - TRACE;DESKTOP - 4096 - true - bin\Release-MAS\ - False - False - 4 - true - false - - - true - 285212672 - - - TRACE;DESKTOP - 4096 - true - bin\Release\ - False - False - 4 - true - false - - + netstandard2.0 + DESKTOP true - 285212672 - - - DEBUG;TRACE;DESKTOP - true - 4096 - false - bin\Debug\ - False - False - 4 - full - false + Pablo core + Pablo - - - - - ..\packages\sharpcompress.0.10.2\lib\net40\SharpCompress.dll - - - ..\packages\Newtonsoft.Json.5.0.8\lib\net40\Newtonsoft.Json.dll - + + + + + + + - - - Code - - - Code - - - Code - - - Code - - - Code - - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - - - - - - - - - - - - - - - - - - Properties\GlobalAssemblyInfo.cs - - - - - - - - Code - - - Code - - - Code - - - - - - - - - - Code - - - Code - - - - - - - - - - - - - - Code - - - Code - - - Code - - - Code - - - Code - - - - Code - - - - - - - Code - - - - - Code - - - Code - - - - - - Code - - - - - - - - - - - Code - - - Code - - - Code - - - - - - - - - - - - - - - - - - - - Code - - - - - - Code - - - - - - - - Code - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Code - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Code - - - - - - - Code - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Code - - - - Code - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Code - - - Code - - - - - - - - - - - - - - - + + + - - - - - - - - - pdbonly - true - bin\Release-MAS\ - TRACE;DESKTOP;MAS - 4 - False - true - - - 285212672 - 4096 - False - true - false - - - + + + - - - {35EF0A4E-2A1A-492C-8BED-106774EA09F2} - Eto - pcl - - - {49BA1C69-6104-41AC-A5D8-B54FA9F696E8} - Lidgren.Network - - - {f5d74163-145f-47bf-83dc-d0e07249c6ca} - Mono.Nat - + + - \ No newline at end of file diff --git a/Source/Pablo/Properties/AssemblyInfo.cs b/Source/Pablo/Properties/AssemblyInfo.cs deleted file mode 100644 index 083f659..0000000 --- a/Source/Pablo/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("Pablo core")] -[assembly: AssemblyDescription("Pablo")] diff --git a/Source/Pablo/Sauce.zip b/Source/Pablo/Sauce.zip deleted file mode 100644 index 7b78874198d1c8e4bfc263478fa157cac4101706..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18540 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 ReadEntries(Stream stream) } } /**/ - using (var archive = ArchiveFactory.Open(stream, SharpCompress.Common.Options.LookForHeader)) + using (var archive = ArchiveFactory.Open(stream, new ReaderOptions { LookForHeader = true })) { foreach (var entry in archive.Entries) { - yield return new VirtualFileEntry(entry.FilePath.TrimEnd(Path.DirectorySeparatorChar), entry.IsDirectory); + yield return new VirtualFileEntry(entry.Key.TrimEnd(Path.DirectorySeparatorChar), entry.IsDirectory); } } /**/ @@ -68,11 +69,11 @@ public override Stream OpenRead(string fileName) } /**/ using (var stream = FileInfo.OpenRead()) - using (var archive = ArchiveFactory.Open(stream, SharpCompress.Common.Options.None)) + using (var archive = ArchiveFactory.Open(stream)) { foreach (var entry in archive.Entries) { - if (!entry.IsDirectory && string.Equals(entry.FilePath, fileName, StringComparison.InvariantCultureIgnoreCase)) + if (!entry.IsDirectory && string.Equals(entry.Key, fileName, StringComparison.InvariantCultureIgnoreCase)) { ms = new MemoryStream((int)entry.Size); entry.WriteTo(ms); diff --git a/Source/Pablo/XmlExtensions.base.cs b/Source/Pablo/XmlExtensions.base.cs deleted file mode 100644 index a7eceb5..0000000 --- a/Source/Pablo/XmlExtensions.base.cs +++ /dev/null @@ -1,586 +0,0 @@ -using System; -using System.Xml; -using System.Collections.Generic; -using System.IO; -using System.Globalization; - -namespace Eto -{ - /// - /// Interface to declare an object that can serialize to/from xml - /// - /// - /// This interface is useful when you are reading/writing objects to xml - /// manually by using . - /// - /// There are methods to load/save a collection of child objects and singular - /// child objects when you implement this interface which makes reading/writing to xml - /// super easy. - /// - [Obsolete("No longer provided by this library")] - public interface IXmlReadable - { - /// - /// Reads/deserializes the xml element into the object - /// - /// Element that represents the object - void ReadXml(XmlElement element); - - /// - /// Writes/serializes the object into the xml element - /// - /// Element that will represent the object - void WriteXml(XmlElement element); - } - - /// - /// Delegate to create the specified object from an XmlElement - /// - /// - /// This is used for certain to create child objects when reading xml elements. - /// - /// The implementors of this delegate typically do not need to read the object from XML, just create the - /// instance of the object based on certain criteria (e.g. a type or ID) - /// - /// Type of object to create based on the element - /// Element to create the object from - /// A new instance of the specified type for the element - [Obsolete("No longer provided by this library")] - public delegate T CreateFromXml(XmlElement element); - - /// - /// Delegate to translate an attribute value to the specified type - /// - /// Type to translate to - /// Attribute value to translate from - /// Resulting value from the attribute type - /// True if the translation was sucessful, false otherwise - [Obsolete("No longer provided by this library")] - public delegate bool XmlToValue(string attribute, out T result); - - /// - /// Extensions for reading/writing xml values - /// - [Obsolete("No longer provided by this library")] - public static class XmlExtensions - { - /// - /// Gets a string attribute value from the specified element - /// - /// - /// This differs from the regular in that if the string is empty - /// it will return null. - /// - /// Element to read the attribute - /// Name of the attribute to read - /// A string value of the attribute, or null if it is empty or null - public static string GetStringAttribute(this XmlElement element, string name) - { - string attr = element.GetAttribute(name); - return string.IsNullOrEmpty(attr) ? null : attr; - } - - /// - /// Gets a boolean attribute value from the specified element. The value should be 'true', 'false' or empty. - /// - /// - /// This uses to parse the value. - /// - /// Element to read the attribute from - /// Name of the attribute - /// True or False if the value is a valid boolean value, null otherwise - public static bool? GetBoolAttribute(this XmlElement element, string name) - { - string attr = element.GetAttribute(name); - bool result; - if (!string.IsNullOrWhiteSpace(attr) && bool.TryParse(attr, out result)) return result; - return null; - } - - /// - /// Gets a enumeration attribute value from the specified element. - /// - /// - /// This uses to parse the value - /// - /// Type of enumeration to read - /// Element to read the attribute value from - /// Name of the attribute value - /// True to ignore case when parsing, false to be case sensitive - /// Value of the parsed enumeration, or null if it cannot be parsed - public static T? GetEnumAttribute(this XmlElement element, string name, bool ignoreCase = true) - where T: struct - { - string val = element.GetAttribute(name); - T result; - if (!string.IsNullOrEmpty(val) && Enum.TryParse(val, ignoreCase, out result)) return result; - return null; - } - - /// - /// Gets an integer attribute value from the specified element - /// - /// - /// This uses to parse the value. - /// - /// Element to read the attribute from - /// Name of the attribute - /// Integer value of the attribute, or null if it is invalid or missing - public static int? GetIntAttribute (this XmlElement element, string name) - { - string attr = element.GetAttribute(name); - int result; - if (!string.IsNullOrWhiteSpace(attr) && int.TryParse(attr, out result)) return result; - return null; - } - - /// - /// Gets a float attribute value from the specified element - /// - /// - /// This uses to parse the value. - /// - /// Element to read the attribute from - /// Name of the attribute - /// Float value of the attribute, or null if it is invalid or missing - public static float? GetFloatAttribute (this XmlElement element, string name) - { - string attr = element.GetAttribute(name); - float result; - if (!string.IsNullOrWhiteSpace(attr) && float.TryParse(attr, out result)) return result; - return null; - } - - /// - /// Gets a translated value of an attribute of the specified element - /// - /// Element to read the attribute from - /// Name of the attribute - /// Delegate used to translate the string value to the desired type - /// Value returned by the translate delegate, or null if the translate delegate returned false - public static T? GetAttribute (this XmlElement element, string name, XmlToValue translate) - where T: struct - { - string attr = element.GetAttribute(name); - T result; - if (!string.IsNullOrEmpty(attr) && translate(attr, out result)) return result; - return null; - } - - /// - /// Sets an attribute of the specified element to a value - /// - /// - /// This uses to translate the value to a string attribute value. - /// - /// Type of the value to set (usually inferred so you don't have to set it) - /// Element to set the attribute value - /// Name of the attribute to set - /// Value to set - public static void SetAttribute(this XmlElement element, string name, T value) - { - string attrValue = Convert.ToString(value, CultureInfo.InvariantCulture); - if (!string.IsNullOrEmpty(attrValue)) - element.SetAttribute(name, attrValue); - } - - /// - /// Adds a new element as a child to the specified element, if the child value is not null - /// - /// - /// This allows you to easily write child objects to xml, when they implement the interface. - /// - /// - /// - /// ("mychild"); - /// } - /// } - /// ]]> - /// - /// Type of child to write (must be ) - /// Element to add the child to - /// Name of the child element to create - /// Child value to translate to a new child element - public static void WriteChildXml(this XmlElement element, string childElementName, T child) - where T: IXmlReadable - { - if (EqualityComparer.Default.Equals(child, default(T))) return; - var childElement = element.OwnerDocument.CreateElement(childElementName); - child.WriteXml(childElement); - element.AppendChild(childElement); - } - - /// - /// Reads a single child xml element from the specified element as a given type - /// - /// - /// This is useful for reading a (singular) child element of an xml element into an object that implements - /// . - /// - /// If you want to use a class that requires certain parameters for construction or to create a different derived type - /// based on certain attributes of the child xml element, use instead. - /// - /// - /// - /// - /// ("mychild"); - /// } - /// } - /// ]]> - /// - /// Type of child to read (must be ) - /// Element to read the child node from - /// Name of the child element to read - /// A new instance of the specified type if the child element exists with properties read from xml, otherwise null - public static T ReadChildXml(this XmlElement element, string childElementName) - where T: IXmlReadable, new() - { - return ReadChildXml(element, childElementName, delegate { return new T();}); - } - - /// - /// Reads a single child xml element from the specified element as a given type, constructing the child programatically - /// - /// - /// This is useful for reading a (singular) child element of an xml element into an object that implements - /// . This also gives you a way to create the instance used for the child object - /// programatically. - /// - /// If your child class does not require special construction logic and has a default constructor, you can use instead. - /// - /// - /// - /// - /// ("mychild", MyChild.CreateFromXml); - /// } - /// } - /// ]]> - /// - /// Type of child to read (must be ) - /// Element to read the child node from - /// Name of the child element to read - /// Delegate to create the child object instance if needed - /// A new instance of the specified type if the child element exists with properties read from xml, otherwise null - public static T ReadChildXml (this XmlElement element, string childElementName, CreateFromXml create) - where T: IXmlReadable - { - var childElement = element.SelectSingleNode(childElementName) as XmlElement; - if (childElement == null) return default(T); - var child = create(childElement); - if (!EqualityComparer.Default.Equals(child, default(T))) child.ReadXml(childElement); - return child; - } - - /// - /// Reads a single child xml element from the specified element as a given type, constructing the child programatically - /// - /// - /// This is useful for reading a (singular) child element of an xml element into an object that implements - /// . This also gives you a way to create the instance used for the child object - /// programatically. - /// - /// If your child class does not require special construction logic and has a default constructor, you can use instead. - /// - /// - /// - /// - /// ("mychild", this.Child); - /// } - /// } - /// ]]> - /// - /// Type of child to read (must be ) - /// Element to read the child node from - /// Name of the child element to read - /// Instance of the child object to read the XML into - /// A new instance of the specified type if the child element exists with properties read from xml, otherwise null - public static void ReadChildXml (this XmlElement element, string childElementName, T child) - where T: IXmlReadable - { - var childElement = element.SelectSingleNode(childElementName) as XmlElement; - - if (childElement != null) child.ReadXml(childElement); - } - - /// - /// Writes a list of objects as child elements of the specified element, with an optional child list element - /// - /// - /// This extension is useful for writing lists of objects to xml. With this, you can write the list as direct - /// children of the specified element, or to insert an additional list element using the parameter. - /// - /// - /// Children { get; set; } - /// - /// public void WriteXml (XmlElement element) { - /// element.WriteChildListXml(this.Children, "mychild", "children"); - /// } - /// - /// public void ReadXml (XmlElement element) { - /// this.Children = new List(); - /// element.ReadChildListXml(this.Children, "mychild", "children"); - /// } - /// } - /// ]]> - /// - /// Type of items in the list of elements to write - /// Element to write the child elements to - /// List of objects to serialize to xml - /// Name of each child element to create - /// Name of the list element to contain the child elements, or null to add the child elements directly to the specified - public static void WriteChildListXml(this XmlElement element, IEnumerable list, string childElement, string listElement = null) - where T: IXmlReadable - { - XmlElement listNode = (!string.IsNullOrEmpty (listElement)) ? element.OwnerDocument.CreateElement (listElement) : element; - - foreach (T child in list) { - if (!EqualityComparer.Default.Equals(child, default(T))) { - var childNode = element.OwnerDocument.CreateElement(childElement); - child.WriteXml(childNode); - listNode.AppendChild (childNode); - } - } - - if (listNode != element && !listNode.IsEmpty) { - element.AppendChild (listNode); - } - } - - /// - /// Reads child elements into a list, constructing the child objects programatically - /// - /// - /// Children { get; set; } - /// - /// public void WriteXml (XmlElement element) { - /// element.WriteChildListXml(this.Children, "mychild", "children"); - /// } - /// - /// public void ReadXml (XmlElement element) { - /// this.Children = new List(); - /// element.ReadChildListXml(this.Children, MyChild.CreateFromXml, "mychild", "children"); - /// } - /// } - /// ]]> - /// - /// Type of each child object - /// Element to read the child elements from - /// List to add the child elements to - /// Delegate to create the child object to add to the list - /// Name of the child elements to read - /// If specified, the list element where the child elements are to be read from, or null to read the child elements directly from the - public static void ReadChildListXml (this XmlElement element, IList list, CreateFromXml create, string childElement, string listElement = null) - where T: IXmlReadable - { - XmlNodeList childNodes = null; - if (listElement != null) { - var listNode = element.SelectSingleNode (listElement); - if (listNode != null) - childNodes = listNode.SelectNodes (childElement); - } - else - childNodes = element.SelectNodes (childElement); - - if (childNodes != null) { - list.Clear (); - foreach (XmlElement childNode in childNodes) { - var item = create(childNode); - if (!EqualityComparer.Default.Equals(item, default(T))) { - item.ReadXml(childNode); - list.Add (item); - } - } - } - } - - /// - /// Reads child elements into a list - /// - /// - /// Children { get; set; } - /// - /// public void WriteXml (XmlElement element) { - /// element.WriteChildListXml(this.Children, "mychild", "children"); - /// } - /// - /// public void ReadXml (XmlElement element) { - /// this.Children = new List(); - /// element.ReadChildListXml(this.Children, "mychild", "children"); - /// } - /// } - /// ]]> - /// - /// Type of each child object - /// Element to read the child elements from - /// List to add the child elements to - /// Name of the child elements to read - /// If specified, the list element where the child elements are to be read from, or null to read the child elements directly from the - public static void ReadChildListXml (this XmlElement element, IList list, string childElement, string listElement = null) - where T: IXmlReadable, new() - { - ReadChildListXml(element, list, delegate { return new T(); }, childElement, listElement); - } - - /// - /// Saves the specified object to an xml file - /// - /// Object to serialize to xml - /// File to save as - /// Document element name - public static void SaveXml (this IXmlReadable obj, string fileName, string documentElementName = "object") - { - using (var stream = new MemoryStream ()) { - SaveXml(obj, stream, documentElementName); - stream.Position = 0; - using (var fileStream = File.Create (fileName)) { - stream.WriteTo (fileStream); - } - } - } - - /// - /// Saves the specified object to an xml stream - /// - /// Object to serialize to xml - /// Stream to save as - /// Document element name - public static void SaveXml (this IXmlReadable obj, Stream stream, string documentElementName = "object") - { - var doc = new XmlDocument (); - var topNode = doc.CreateElement (documentElementName); - obj.WriteXml (topNode); - doc.AppendChild (topNode); - doc.Save (stream); - } - - /// - /// Loads the specified object from an xml file - /// - /// Object to serialize from xml - /// File to load from - public static void LoadXml (this IXmlReadable obj, string fileName) - { - using (var fileStream = File.OpenRead (fileName)) { - LoadXml (obj, fileStream); - } - } - - /// - /// Loads the specified object from an xml stream - /// - /// Object to serialize from xml - /// Stream to load from - public static void LoadXml (this IXmlReadable obj, Stream stream) - { - var doc = new XmlDocument(); - doc.Load (stream); - obj.ReadXml (doc.DocumentElement); - } - } -} \ No newline at end of file diff --git a/Source/Pablo/XmlExtensions.drawing.cs b/Source/Pablo/XmlExtensions.drawing.cs deleted file mode 100644 index 37efe47..0000000 --- a/Source/Pablo/XmlExtensions.drawing.cs +++ /dev/null @@ -1,193 +0,0 @@ -using System; -using System.Xml; - -namespace Eto.Drawing -{ - /// - /// Xml extensions to read/write Eto.Drawing structs to xml - /// - /// (c) 2014 by Curtis Wensley - /// See LICENSE for full terms - [Obsolete("No longer provided by this library")] - public static class XmlExtensions - { - /// - /// Gets a struct as a set of attributes of the specified - /// - /// - /// This will read attributes with suffixes "-width" and "-height" prefixed by . - /// For example, if you specify "myProperty" as the base name, then it will read attributes "myProperty-width" and "myProperty-height". - /// - /// Both the width and height must be specified as attributes for this to return a value. - /// - /// Element to read the width and height attributes from - /// Base attribute name prefix - /// A size struct if both the width and height attributes are specified, or null otherwise - public static Size? GetSizeAttributes(this XmlElement element, string baseName) - { - var width = element.GetIntAttribute(baseName + "-width"); - var height = element.GetIntAttribute(baseName + "-height"); - if (width != null && height != null) - return new Size(width.Value, height.Value); - return null; - } - - /// - /// Sets attributes on the specified with width and height attributes of the specified value - /// - /// - /// This will write attributes with suffixes "-width" and "-height" prefixed by . - /// For example, if you specify "myProperty" as the base name, then it will write attributes "myProperty-width" and "myProperty-height". - /// - /// Passing null as the size will not write either attribute value. - /// - /// Element to write the width and height attributes on - /// Base attribute name prefix - /// Value to set the width and height attributes, if not null - public static void SetSizeAttributes(this XmlElement element, string baseName, Size? value) - { - if (value != null) - { - element.SetAttribute(baseName + "-width", value.Value.Width); - element.SetAttribute(baseName + "-height", value.Value.Height); - } - } - - /// - /// Writes the specified size to a child of the specified with the given name - /// - /// - /// The child element will contain "width" and "height" attributes for the value of the size. - /// If the value is null, no child element will be written. - /// - /// Element to append the child element to if is not null - /// Name of the element to append - /// Size value to write - public static void WriteChildSizeXml(this XmlElement element, string elementName, Size? value) - { - if (value != null) - element.WriteChildXml(elementName, new SizeSaver { Size = value.Value }); - } - - /// - /// Reads a child of the with the given as a - /// - /// - /// The child element must contain both "width" and "height" attributes for the value of the size. - /// - /// Element to read from - /// Name of the element to read into the Size struct - /// A new Size struct if the element exists, or null if not - public static Size? ReadChildSizeXml(this XmlElement element, string elementName) - { - var size = element.ReadChildXml(elementName); - return size == null ? null : (Size?)size.Size; - } - - class SizeSaver : IXmlReadable - { - public Size Size { get; set; } - - public void ReadXml(XmlElement element) - { - var width = element.GetIntAttribute("width") ?? 0; - var height = element.GetIntAttribute("height") ?? 0; - Size = new Size(width, height); - } - - public void WriteXml(XmlElement element) - { - element.SetAttribute("width", Size.Width); - element.SetAttribute("height", Size.Height); - } - } - - /// - /// Writes the child rectangle xml. - /// - /// Element. - /// Element name. - /// Rect. - public static void WriteChildRectangleXml(this XmlElement element, string elementName, Rectangle? rect) - { - if (rect != null) - element.WriteChildXml(elementName, new RectSaver { Rectangle = rect.Value }); - } - - /// - /// Reads the child rectangle xml. - /// - /// The child rectangle xml. - /// Element. - /// Element name. - public static Rectangle? ReadChildRectangleXml(this XmlElement element, string elementName) - { - var rect = element.ReadChildXml(elementName); - return rect == null ? null : (Rectangle?)rect.Rectangle; - } - - class RectSaver : IXmlReadable - { - public Rectangle Rectangle { get; set; } - - public void ReadXml(XmlElement element) - { - var ps = new PointSaver(); - ps.ReadXml(element); - var ss = new SizeSaver(); - ss.ReadXml(element); - Rectangle = new Rectangle(ps.Point, ss.Size); - } - - public void WriteXml(XmlElement element) - { - var ps = new PointSaver { Point = Rectangle.Location }; - ps.WriteXml(element); - var ss = new SizeSaver { Size = Rectangle.Size }; - ss.WriteXml(element); - } - } - - /// - /// Writes the child point xml. - /// - /// Element. - /// Element name. - /// Point. - public static void WriteChildPointXml(this XmlElement element, string elementName, Point? point) - { - if (point != null) - element.WriteChildXml(elementName, new PointSaver { Point = point.Value }); - } - - /// - /// Reads the child point xml. - /// - /// The child point xml. - /// Element. - /// Element name. - public static Point? ReadChildPointXml(this XmlElement element, string elementName) - { - var point = element.ReadChildXml(elementName); - return point == null ? null : (Point?)point.Point; - } - - class PointSaver : IXmlReadable - { - public Point Point { get; set; } - - public void ReadXml(XmlElement element) - { - var x = element.GetIntAttribute("x") ?? 0; - var y = element.GetIntAttribute("y") ?? 0; - Point = new Point(x, y); - } - - public void WriteXml(XmlElement element) - { - element.SetAttribute("x", Point.X); - element.SetAttribute("y", Point.Y); - } - } - } -} \ No newline at end of file diff --git a/Source/Pablo/packages.config b/Source/Pablo/packages.config deleted file mode 100644 index c1aa491..0000000 --- a/Source/Pablo/packages.config +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/Source/PabloDraw.Console/.gitignore b/Source/PabloDraw.Console/.gitignore deleted file mode 100644 index b4a3a96..0000000 --- a/Source/PabloDraw.Console/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -Assemblies/ -publish/ \ No newline at end of file diff --git a/Source/PabloDraw.Console/App.config b/Source/PabloDraw.Console/App.config index 320c28a..ddd4652 100644 --- a/Source/PabloDraw.Console/App.config +++ b/Source/PabloDraw.Console/App.config @@ -1,6 +1,6 @@ - + diff --git a/Source/PabloDraw.Console/EmbeddedAssemblyLoader.cs b/Source/PabloDraw.Console/EmbeddedAssemblyLoader.cs deleted file mode 100644 index 3ebf6c0..0000000 --- a/Source/PabloDraw.Console/EmbeddedAssemblyLoader.cs +++ /dev/null @@ -1,98 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Reflection; -using System.Threading; - -namespace PabloDraw -{ - /// - /// Loads assemblies from embedded resources instead of from disk - /// - /// - /// This is useful when you want to create a single assembly/executable without having to ship referenced dll's - /// alongside your application. - /// - /// (c) 2012 by Curtis Wensley - /// See LICENSE for full terms - class EmbeddedAssemblyLoader - { - readonly Dictionary loadedAssemblies = new Dictionary(); - - /// - /// Gets the assembly in which this loader will load assembly resources from - /// - public Assembly Assembly { get; private set; } - - /// - /// Gets the namespace in the to get the assembly resources from - /// - public string ResourceNamespace { get; private set; } - - /// - /// Registers the specified namespace for loading embedded assemblies - /// - /// Namespace of where the embedded assemblies should be loaded - /// Assembly to load the embedded assemblies from, or null to use the calling assembly - /// Application domain to load the assemblies in, or null to use the current app domain - /// A new instance of an EmbeddedAssemblyLoader, registered for the specified namespace and assembly - public static EmbeddedAssemblyLoader Register(string resourceNamespace, Assembly assembly = null, AppDomain domain = null) - { - assembly = assembly ?? Assembly.GetCallingAssembly(); - var loader = new EmbeddedAssemblyLoader(resourceNamespace, assembly); - loader.Register(domain); - return loader; - } - - /// - /// Initializes a new instance of the EmbeddedAssemblyLoader - /// - /// Namespace of where the embedded assemblies should be loaded - /// Assembly to load the embedded assemblies from, or null to use the calling assembly - public EmbeddedAssemblyLoader(string resourceNamespace, Assembly assembly = null) - { - this.Assembly = assembly ?? Assembly.GetCallingAssembly(); - this.ResourceNamespace = resourceNamespace; - } - - /// - /// Registers this loader for the specified - /// - /// App domain to register this loader for, or null to use the current domain - public void Register(AppDomain domain = null) - { - domain = domain ?? AppDomain.CurrentDomain; - domain.AssemblyResolve += (sender, args) => - { - //Thread.Sleep(1000); - var assemblyName = new AssemblyName(args.Name); - if (assemblyName.Name.EndsWith(".resources", StringComparison.OrdinalIgnoreCase)) - return null; - - string resourceName = ResourceNamespace + "." + assemblyName.Name + ".dll"; - Assembly loadedAssembly; - lock (loadedAssemblies) - { - if (loadedAssemblies.TryGetValue(resourceName, out loadedAssembly)) - return loadedAssembly; - } - - using (var stream = Assembly.GetManifestResourceStream(resourceName)) - { - if (stream != null) - { - var data = new byte[stream.Length]; - stream.Read(data, 0, data.Length); - loadedAssembly = Assembly.Load(data); - lock (loadedAssemblies) - { - loadedAssemblies.Add(resourceName, loadedAssembly); - } - return loadedAssembly; - } - } - return null; - }; - } - } -} diff --git a/Source/PabloDraw.Console/PabloDraw.Console.csproj b/Source/PabloDraw.Console/PabloDraw.Console.csproj index f075e02..a09651f 100644 --- a/Source/PabloDraw.Console/PabloDraw.Console.csproj +++ b/Source/PabloDraw.Console/PabloDraw.Console.csproj @@ -1,183 +1,23 @@ - - - + - Debug - AnyCPU - {0457895A-719B-47E9-84F3-356B2A1F8D3C} + net47 Exe - Properties - PabloDraw.Console - PabloDraw.Console - 512 + DESKTOP + PabloDraw Console + PabloDraw Console + AnyCPU PabloDraw.Console.Startup - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false - false - true - - - v4.5.1 - + False + True - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - true - --convert /Users/curtis/Downloads/mirage/VD-FLIP.ans --out /Users/curtis/Downloads/mirage/VD-FLIP.txt - false - - - true - bin\Release\ - TRACE - prompt - 4 - true - --platform mac --server --adminpw hello - none - false - - - - - - - - - - - - - - - - - - - - - - Code - - - - Properties\GlobalAssemblyInfo.cs - - - - - - - - - - - {35EF0A4E-2A1A-492C-8BED-106774EA09F2} - Eto - pcl - False - - - {49BA1C69-6104-41AC-A5D8-B54FA9F696E8} - Lidgren.Network - False - - - {F5D74163-145F-47BF-83DC-D0E07249C6CA} - Mono.Nat - False - - - {35DBE6BB-B46D-4AE9-8156-FBFC6EC2BB69} - Pablo - False - - - {80915A80-CA54-11E3-9C1A-0800200C9A66} - Eto.Gtk2 - net45 - False - - - {9F51798A-354C-47A1-9207-4BB7D7FC7FC4} - Eto.WinForms - net45 - False - - - {3E7995E0-C9EB-11E3-9C1A-0800200C9A66} - Eto.Mac - net45 - False - - - - - - False - Microsoft .NET Framework 4 %28x86 and x64%29 - true - - - False - .NET Framework 3.5 SP1 Client Profile - false - - - False - .NET Framework 3.5 SP1 - false - - - False - Windows Installer 4.5 - true - + + + - - - - - - Assemblies\MonoMac.dll - - - Assemblies\SharpCompress.dll - - - Assemblies\Newtonsoft.Json.dll - - - - + + + - - - - - - - - - - \ No newline at end of file diff --git a/Source/PabloDraw.Console/Properties/AssemblyInfo.cs b/Source/PabloDraw.Console/Properties/AssemblyInfo.cs deleted file mode 100644 index cc120e2..0000000 --- a/Source/PabloDraw.Console/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("PabloDraw Console")] -[assembly: AssemblyDescription("PabloDraw Console")] diff --git a/Source/PabloDraw.Console/Startup.cs b/Source/PabloDraw.Console/Startup.cs index 8c2aada..8da38a0 100644 --- a/Source/PabloDraw.Console/Startup.cs +++ b/Source/PabloDraw.Console/Startup.cs @@ -15,12 +15,12 @@ namespace PabloDraw.Console { static class Startup { - static EmbeddedAssemblyLoader loader; + static EmbedReferences loader; internal static void EnsureInternalAssemblies() - { - if (loader == null) - loader = EmbeddedAssemblyLoader.Register("PabloDraw.Console.Assemblies"); + { + if (loader == null) + loader = EmbedReferences.Init(); } [STAThread] diff --git a/Source/PabloDraw.Mac/Info.plist b/Source/PabloDraw.Mac/Info.plist index 719f2fb..278e6ca 100644 --- a/Source/PabloDraw.Mac/Info.plist +++ b/Source/PabloDraw.Mac/Info.plist @@ -1,73 +1,71 @@ - + - - CFBundleDocumentTypes - - - CFBundleTypeExtensions - - tnd - txt - ans - asc - jpeg - gif - png - rip - adf - avt - bin - idf - cg - xb - nfo - diz - bmp - tiff - jpg - msg - - CFBundleTypeIconFile - PabloDraw-Document - CFBundleTypeName - Pablo Document - CFBundleTypeOSTypes - - * - - CFBundleTypeRole - Editor - LSTypeIsPackage - - - - CFBundleIconFile - PabloDraw.icns - CFBundleIconFiles - - PabloDraw.icns - - CFBundleName - PabloDraw - LSApplicationCategoryType - public.app-category.graphics-design - LSEnvironment - - MONO_IOMAP - case - - LSMinimumSystemVersion - 10.7 - NSMainNibFile - - NSPrincipalClass - NSApplication - CFBundleShortVersionString - 3.2.1 - CFBundleVersion - 3.2.1 - CFBundleIdentifier - ca.picoe.pablodraw - - + + CFBundleDocumentTypes + + + CFBundleTypeExtensions + + tnd + txt + ans + asc + jpeg + gif + png + rip + adf + avt + bin + idf + cg + xb + nfo + diz + bmp + tiff + jpg + msg + + CFBundleTypeIconFile + PabloDraw-Document + CFBundleTypeName + Pablo Document + CFBundleTypeOSTypes + + * + + CFBundleTypeRole + Editor + LSTypeIsPackage + + + + CFBundleIconFile + PabloDraw.icns + CFBundleIconFiles + + PabloDraw.icns + + CFBundleName + PabloDraw + LSApplicationCategoryType + public.app-category.graphics-design + LSEnvironment + + MONO_IOMAP + case + + LSMinimumSystemVersion + 10.10 + NSPrincipalClass + NSApplication + CFBundleShortVersionString + 3.3.0 + CFBundleIdentifier + ca.picoe.pablodraw + CFBundleVersion + 3.3.0 + + \ No newline at end of file diff --git a/Source/PabloDraw.Mac/PabloDraw.Mac.csproj b/Source/PabloDraw.Mac/PabloDraw.Mac.csproj index c640d3a..e6fc7f6 100644 --- a/Source/PabloDraw.Mac/PabloDraw.Mac.csproj +++ b/Source/PabloDraw.Mac/PabloDraw.Mac.csproj @@ -1,4 +1,4 @@ - + Debug @@ -9,20 +9,20 @@ PabloDraw PabloDraw Resources - v2.0 Xamarin.Mac + True true full false - bin\Debug + ..\..\Artifacts\bin\Debug\xammac DEBUG; prompt 4 false - Mac Developer + Developer ID Application false false false @@ -31,35 +31,42 @@ HttpClientHandler None x86_64 - 3rd Party Mac Developer Installer + Developer ID Installer other,rare,west true + None + true pdbonly true - bin\Release - + ..\..\Artifacts\bin\Release\xammac + + prompt 4 - false + true true - false + true true true true SdkOnly HttpClientHandler x86_64 - Mac Developer - 3rd Party Mac Developer Installer + Developer ID Application + Developer ID Installer other,rare,west true + None + true + + @@ -71,22 +78,11 @@ - - GlobalAssemblyInfo.cs - Code - - {856E8C70-2702-11E4-8C21-0800200C9A66} - Eto.XamMac2 - net45 - - - {35EF0A4E-2A1A-492C-8BED-106774EA09F2} - Eto - pcl - {35DBE6BB-B46D-4AE9-8156-FBFC6EC2BB69} Pablo @@ -100,5 +96,134 @@ + + + 2.5.0-rc.4 + + + 0.24.0 + + + + + + Properties\VersionInfo.cs + false + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Source/PabloDraw.WindowsInstaller/PabloDraw.WindowsInstaller.wixproj b/Source/PabloDraw.WindowsInstaller/PabloDraw.WindowsInstaller.wixproj new file mode 100644 index 0000000..4dadd68 --- /dev/null +++ b/Source/PabloDraw.WindowsInstaller/PabloDraw.WindowsInstaller.wixproj @@ -0,0 +1,56 @@ + + + + + Debug + x86 + 3.10 + 38a42f6d-a417-45b0-8ec8-a700f31cbe26 + 2.0 + PabloDraw + Package + + + ..\..\Artifacts\bin\$(Configuration)\net47 + ..\..\Artifacts\obj\$(OS)\$(Configuration)\ + Debug + + + ..\..\Artifacts\bin\$(Configuration)\net47 + ..\..\Artifacts\obj\$(OS)\$(Configuration)\ + + + + + + + PabloDraw + {9a72b697-8da3-4a52-9e6b-05deeea23ad2} + True + True + Binaries;Content;Satellites + INSTALLFOLDER + + + + + + + + + + + + + $(DefineConstants);AssemblyVersion=$(AssemblyVersion) + + + + \ No newline at end of file diff --git a/Source/PabloDraw.WindowsInstaller/Product.wxs b/Source/PabloDraw.WindowsInstaller/Product.wxs new file mode 100644 index 0000000..0841efd --- /dev/null +++ b/Source/PabloDraw.WindowsInstaller/Product.wxs @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Source/PabloDraw/.gitignore b/Source/PabloDraw/.gitignore deleted file mode 100644 index b4a3a96..0000000 --- a/Source/PabloDraw/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -Assemblies/ -publish/ \ No newline at end of file diff --git a/Source/PabloDraw/EmbeddedAssemblyLoader.cs b/Source/PabloDraw/EmbeddedAssemblyLoader.cs deleted file mode 100644 index f5e992b..0000000 --- a/Source/PabloDraw/EmbeddedAssemblyLoader.cs +++ /dev/null @@ -1,92 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Reflection; - -namespace PabloDraw -{ - /// - /// Loads assemblies from embedded resources instead of from disk - /// - /// - /// This is useful when you want to create a single assembly/executable without having to ship referenced dll's - /// alongside your application. - /// - /// (c) 2012 by Curtis Wensley - /// See LICENSE for full terms - public class EmbeddedAssemblyLoader - { - readonly Dictionary loadedAssemblies = new Dictionary(); - - /// - /// Gets the assembly in which this loader will load assembly resources from - /// - public Assembly Assembly { get; private set; } - - /// - /// Gets the namespace in the to get the assembly resources from - /// - public string ResourceNamespace { get; private set; } - - /// - /// Registers the specified namespace for loading embedded assemblies - /// - /// Namespace of where the embedded assemblies should be loaded - /// Assembly to load the embedded assemblies from, or null to use the calling assembly - /// Application domain to load the assemblies in, or null to use the current app domain - /// A new instance of an EmbeddedAssemblyLoader, registered for the specified namespace and assembly - public static EmbeddedAssemblyLoader Register(string resourceNamespace, Assembly assembly = null, AppDomain domain = null) - { - assembly = assembly ?? Assembly.GetCallingAssembly(); - var loader = new EmbeddedAssemblyLoader(resourceNamespace, assembly); - loader.Register(domain); - return loader; - } - - /// - /// Initializes a new instance of the EmbeddedAssemblyLoader - /// - /// Namespace of where the embedded assemblies should be loaded - /// Assembly to load the embedded assemblies from, or null to use the calling assembly - public EmbeddedAssemblyLoader(string resourceNamespace, Assembly assembly = null) - { - this.Assembly = assembly ?? Assembly.GetCallingAssembly(); - this.ResourceNamespace = resourceNamespace; - } - - /// - /// Registers this loader for the specified - /// - /// App domain to register this loader for, or null to use the current domain - public void Register(AppDomain domain = null) - { - domain = domain ?? AppDomain.CurrentDomain; - domain.AssemblyResolve += (sender, args) => - { - var assemblyName = new AssemblyName(args.Name); - if (assemblyName.Name.EndsWith(".resources", StringComparison.OrdinalIgnoreCase)) return null; - - string resourceName = ResourceNamespace + "." + assemblyName.Name + ".dll"; - Assembly loadedAssembly; - lock (loadedAssemblies) - { - if (!loadedAssemblies.TryGetValue(resourceName, out loadedAssembly)) - { - using (var stream = Assembly.GetManifestResourceStream(resourceName)) - { - if (stream != null) - { - using (var binaryReader = new BinaryReader(stream)) - { - loadedAssembly = Assembly.Load(binaryReader.ReadBytes((int)stream.Length)); - loadedAssemblies.Add(resourceName, loadedAssembly); - } - } - } - } - } - return loadedAssembly; - }; - } - } -} diff --git a/Source/PabloDraw/Icon.icns b/Source/PabloDraw/Icon.icns new file mode 100644 index 0000000000000000000000000000000000000000..99bcdbaa308ac5b896d101df7a584c1772699d9a GIT binary patch literal 245129 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%0A&_1f_OCT%9ISHl2v?L3yc>7B1({mq2Z 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 literal 0 HcmV?d00001 diff --git a/Source/PabloDraw/PabloDraw.csproj b/Source/PabloDraw/PabloDraw.csproj index 6cf65db..b522874 100644 --- a/Source/PabloDraw/PabloDraw.csproj +++ b/Source/PabloDraw/PabloDraw.csproj @@ -1,520 +1,34 @@ - - + - Local - {9A72B697-8DA3-4A52-9E6B-05DEEEA23AD2} - Debug - AnyCPU - - - PabloDraw - JScript - Grid - IE50 + net47 WinExe - - - PabloDraw - - PabloDraw.ico - - - true - v4.5.1 - - Z:\Projects\download.picoe.ca\pablodraw\windows\ - true - Web - true - Background - 1 - Days - false - false - true - http://download.picoe.ca/pablodraw/windows/ - http://picoe.ca/forums/forum/pablodraw/ - PabloDraw - PabloDraw - 3.0.8.32 - true - index.html - false - true - 1 - 3.2.1.%2a - false - true - true - true - - - 285212672 - - - TRACE;DESKTOP - 4096 - true - ..\..\Artifacts\bin\Release\ - False - False - 4 - pdbonly - - - - - - false - true - x86 - false - - - 285212672 - - - TRACE;DEBUG;DESKTOP - true - 4096 - false - ..\..\Artifacts\bin\Debug\ - False - False - 4 - full - - - - - - true + DESKTOP + PabloDraw + PabloDraw AnyCPU - false - - - 27086626895AC2613898D088F965B62E3B1C6CE2 - - - PabloDraw_TemporaryKey.pfx - - - true - - - false - - - - LocalIntranet - - - PabloDraw_TemporaryKey.pfx - - - - - - - Properties\app.manifest - - - false + True - - System - - - System.Xml - - - - - - - Properties\GlobalAssemblyInfo.cs - - - - - - Code - - - - - - False - Microsoft .NET Framework 4.5.2 %28x86 and x64%29 - true - - - False - .NET Framework 3.5 SP1 Client Profile - false - - - False - .NET Framework 3.5 SP1 - false - + - - - - - - - Assemblies\Newtonsoft.Json.dll - - - Assemblies\SharpCompress.dll - - - - - - - - - - - - False - - - - - Exclude - True - Assembly - - - False - - - - - Exclude - True - Assembly - - - False - - - - - Exclude - True - Assembly - - - False - - - - - Exclude - True - Assembly - - - False - - - - - Exclude - True - Assembly - - - False - - - - - Exclude - True - Assembly - - - False - - - - - Exclude - True - Assembly - - - False - - - - - Exclude - True - Assembly - - - False - - - - - Exclude - True - Assembly - - - False - - - - - Exclude - True - Assembly - - - False - - - - - Exclude - True - Assembly - - - False - - - - - Exclude - True - Assembly - - - False - - - - - Exclude - True - Assembly - - - False - - - - - Exclude - True - Assembly - - - False - - - - - Exclude - True - Assembly - - - False - - - - - Exclude - True - Assembly - - - False - - - - - Exclude - True - Assembly - - - False - - - - - Exclude - True - Assembly - - - False - - - - - Exclude - True - Assembly - - - False - - - - - Exclude - True - Assembly - - - False - - - - - Exclude - True - Assembly - - - - - README.ans Always + - - False - Ansi Art File - Text.Ansi - PabloDraw.ico - - - False - Ascii Art File - Text.Ascii - PabloDraw.ico - - - False - Binary Art File - Text.BinaryArt - PabloDraw.ico - - - False - Description Art File - Text.DIZ - PabloDraw.ico - - - False - iCE Draw Art File - Text.iCEDraw - PabloDraw.ico - - - False - iNFO Art File - Text.NFO - PabloDraw.ico - - - False - RipScrip Art File - Text.RipScrip - PabloDraw.ico - - - False - XBin Art File - Text.XBin - PabloDraw.ico - - - - - {330EF9FD-5947-4AC9-9796-950C7633695F} - Eto.Direct2D - net45 - False - - - {80915A80-CA54-11E3-9C1A-0800200C9A66} - Eto.Gtk2 - net45 - False - - - {543B2F90-CA56-11E3-9C1A-0800200C9A66} - Eto.Gtk3 - net45 - False - - - {9F51798A-354C-47A1-9207-4BB7D7FC7FC4} - Eto.WinForms - net45 - False - - - {63137fa0-ca55-11e3-9c1a-0800200c9a66} - Eto.Wpf - net45 - False - - - {35EF0A4E-2A1A-492C-8BED-106774EA09F2} - Eto - pcl - False - - - {35DBE6BB-B46D-4AE9-8156-FBFC6EC2BB69} - Pablo - False - - - {3FAACC7E-D156-4599-B0D1-6177AD78E8B1} - Pablo.Interface - False - - - {F5D74163-145F-47BF-83DC-D0E07249C6CA} - Mono.Nat - False - - - {49BA1C69-6104-41AC-A5D8-B54FA9F696E8} - Lidgren.Network - False - + + + + - + + + + - - - - - - - - - - - \ No newline at end of file diff --git a/Source/PabloDraw/Program.cs b/Source/PabloDraw/Program.cs index 0a34051..a842d48 100644 --- a/Source/PabloDraw/Program.cs +++ b/Source/PabloDraw/Program.cs @@ -10,9 +10,9 @@ public static class Program public static void Run() { - var command = new CommandLine(Environment.CommandLine); - - var platform = command.GetValue("platform", "p"); + var command = new CommandLine(Environment.CommandLine); + + var platform = command.GetValue("platform", "p"); //#if DEBUG // use winforms by default on windows if (platform == null && EtoEnvironment.Platform.IsWindows) @@ -28,12 +28,12 @@ public static void Run() case "d2d": Platform.Initialize(Platforms.Direct2D); break; - case "gtk": - case "gtk2": + case "gtk": + case "gtk2": Platform.Initialize(Platforms.Gtk2); - break; - case "gtk3": - Platform.Initialize(Platforms.Gtk3); + break; + case "gtk3": + Platform.Initialize(Platforms.Gtk); break; case "winforms": case "win": diff --git a/Source/PabloDraw/Properties/AssemblyInfo.cs b/Source/PabloDraw/Properties/AssemblyInfo.cs deleted file mode 100644 index e0e6d94..0000000 --- a/Source/PabloDraw/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("PabloDraw")] -[assembly: AssemblyDescription("PabloDraw")] diff --git a/Source/PabloDraw/Properties/app.manifest b/Source/PabloDraw/Properties/app.manifest deleted file mode 100644 index c18985e..0000000 --- a/Source/PabloDraw/Properties/app.manifest +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/Source/PabloDraw/Startup.cs b/Source/PabloDraw/Startup.cs index 7d5db96..5c75a7d 100644 --- a/Source/PabloDraw/Startup.cs +++ b/Source/PabloDraw/Startup.cs @@ -7,7 +7,7 @@ public static class Startup [STAThread] static void Main() { - EmbeddedAssemblyLoader.Register("PabloDraw.Assemblies"); + EmbedReferences.Init(); Program.Run(); } } diff --git a/Source/PabloDraw/app.config b/Source/PabloDraw/app.config index 801c873..ea2e0ce 100644 --- a/Source/PabloDraw/app.config +++ b/Source/PabloDraw/app.config @@ -1,3 +1,11 @@ - + + + + + diff --git a/Source/macbuild b/Source/macbuild deleted file mode 100755 index d973ef0..0000000 --- a/Source/macbuild +++ /dev/null @@ -1,71 +0,0 @@ -#!/bin/bash - -DIR="$( cd -P "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" - -APP_NAME=PabloDraw -CONFIG=Release-MAS -INPUT_DIR=$DIR/PabloDraw.Mac/bin/$CONFIG -INPUT_APP_DIR=$INPUT_DIR/$APP_NAME.app -OUT_DIR=$DIR/deploy -APP_DIR=$OUT_DIR/$APP_NAME.app -APP_EXE=$APP_NAME.exe -APP_PKG=$OUT_DIR/$APP_NAME.pkg -SRC_DIR=$DIR -LIB_DIR=$DIR/../Libraries -FW_DIR=/Library/Frameworks/Mono.framework/Versions/Current -FWLIB_DIR=$FW_DIR/lib/mono/4.0 -MD_DIR=/Applications/Programs/MonoDevelop.app/Contents/MacOS -MM_DIR=$MD_DIR/lib/monodevelop/AddIns/MonoDevelop.MonoMac -APP_CERT="3rd Party Mac Developer Application: Curtis Wensley" -INSTALLER_CERT="3rd Party Mac Developer Installer: Curtis Wensley" -ENTITLEMENTS_FILE=$DIR/PabloDraw.Mac/PabloDraw.entitlements - -PATH=$MM_DIR:$PATH - -mkdir -p "$OUT_DIR" -rm -rf "$APP_DIR" -rm -rf "$APP_PKG" -mkdir -p "$APP_DIR" -mkdir -p "$APP_DIR/Contents" -mkdir -p "$APP_DIR/Contents/Resources" -cp $INPUT_APP_DIR/Contents/Info.plist $APP_DIR/Contents/Info.plist -cp $INPUT_APP_DIR/Contents/PkgInfo $APP_DIR/Contents/PkgInfo -cp $INPUT_APP_DIR/Contents/Resources/MainMenu.nib $APP_DIR/Contents/Resources/MainMenu.nib -cp $INPUT_APP_DIR/Contents/Resources/PabloDraw-Document.icns $APP_DIR/Contents/Resources/PabloDraw-Document.icns -cp $INPUT_APP_DIR/Contents/Resources/PabloDraw.icns $APP_DIR/Contents/Resources/PabloDraw.icns - -/usr/libexec/PlistBuddy $APP_DIR/Contents/Info.plist -c "Add MonoBundleExecutable string $APP_EXE" - -#--linksdkonly \ -mmp \ ---nolink \ --o "$OUT_DIR" \ --n "$APP_NAME" \ --a "$INPUT_DIR/Pablo.Interface.dll" \ --a "$INPUT_DIR/Pablo.dll" \ --a "$INPUT_DIR/Eto.dll" \ --a "$INPUT_DIR/Eto.Platform.Mac.dll" \ --a "$INPUT_DIR/Lidgren.Network.dll" \ --a "$INPUT_DIR/Mono.Nat.dll" \ --a "$INPUT_DIR/MonoMac.dll" \ --a "$INPUT_DIR/Newtonsoft.Json.dll" \ --a "$INPUT_DIR/SharpCompress.dll" \ --a "$FWLIB_DIR/i18N.dll" \ --a "$FWLIB_DIR/i18N.Rare.dll" \ --a "$FWLIB_DIR/i18N.West.dll" \ --a "$FWLIB_DIR/System.dll" \ --a "$FWLIB_DIR/System.Xml.dll" \ --a "$FWLIB_DIR/System.Core.dll" \ ---i18n rare,west \ -"$INPUT_DIR/$APP_EXE" - -echo Signing app bundle -codesign -v -f -s "$APP_CERT" "$APP_DIR/Contents/Resources/libMonoPosixHelper.dylib" -codesign -v -f -s "$APP_CERT" --entitlements "$ENTITLEMENTS_FILE" "$APP_DIR" - -echo Creating installer -productbuild \ ---component "$APP_DIR" \ -/Applications \ ---sign "$INSTALLER_CERT" \ -"$APP_PKG" From 8afbbb8c54c360282ea15ac64b350ed55a8113b3 Mon Sep 17 00:00:00 2001 From: Curtis Wensley Date: Mon, 18 Nov 2019 20:17:41 -0800 Subject: [PATCH 2/7] Only allow saving if you have permission to do so --- .../Dialogs/FileModifiedDialog.cs | 6 ++++-- Source/Pablo.Interface/Main.cs | 19 ++++++++++--------- Source/Pablo/Actions/SaveAs.cs | 2 +- Source/Pablo/Actions/SaveFile.cs | 8 +++++++- 4 files changed, 22 insertions(+), 13 deletions(-) diff --git a/Source/Pablo.Interface/Dialogs/FileModifiedDialog.cs b/Source/Pablo.Interface/Dialogs/FileModifiedDialog.cs index 85d2021..9a93f03 100644 --- a/Source/Pablo.Interface/Dialogs/FileModifiedDialog.cs +++ b/Source/Pablo.Interface/Dialogs/FileModifiedDialog.cs @@ -24,8 +24,10 @@ public DialogResult ShowDialog () var result = MessageBox.Show (main, "Do you wish to save?", "There are changes to this document", MessageBoxButtons.YesNoCancel); if (result == DialogResult.Yes || result == DialogResult.No) { if (result == DialogResult.Yes) { - var action = new Pablo.Actions.SaveFile(main.ViewHandler); - action.Execute(); + if (main.Document.HasSavePermission) + new Pablo.Actions.SaveFile(main.ViewHandler).Execute(); + else + new Pablo.Actions.SaveAs(main.ViewHandler).Execute(); } return DialogResult.Ok; } else diff --git a/Source/Pablo.Interface/Main.cs b/Source/Pablo.Interface/Main.cs index 2a75cc2..c0b6d50 100644 --- a/Source/Pablo.Interface/Main.cs +++ b/Source/Pablo.Interface/Main.cs @@ -396,7 +396,8 @@ public Main() if (fileList.SelectedFile != null) { currentFormat = null; - ReloadFile(false, true, true); + + ReloadFile(!fileList.SelectedFile.ReadOnly, true, true); } }; fileList.SelectedIndexChanged += delegate @@ -406,7 +407,7 @@ public Main() if (fileList.SelectedFile != null) { currentFormat = null; - ReloadFile(false, false, false); + ReloadFile(!fileList.SelectedFile.ReadOnly, false, false); } } }; @@ -526,11 +527,11 @@ public void GenerateActions() //#if DEBUG aiNetwork.Items.Add(new Actions.ServerStart(this), 500); aiNetwork.Items.Add(new Actions.ClientConnect(this), 500); - aiNetwork.Items.Add(new Actions.ServerStop(this), 500); - //#endif - - // help - aiHelp.Items.Add(new Actions.Homepage(), 500); + aiNetwork.Items.Add(new Actions.ServerStop(this), 500); + //#endif + + // help + aiHelp.Items.Add(new Actions.Homepage(), 500); args.ToolBar.Items.Add(new Actions.NewFile(this), 100); args.ToolBar.Items.Add(new Actions.OpenFile(this), 100); @@ -793,7 +794,7 @@ void Document_Saved(object sender, EventArgs e) } } - public bool LoadFile(string fileName, bool hasSavePermissions) + public bool LoadFile(string fileName, bool hasSavePermissions, bool setFileList = true, bool? editMode = null) { if (FileModifiedDialog.Show(this) != DialogResult.Ok) return true; @@ -805,7 +806,7 @@ public bool LoadFile(string fileName, bool hasSavePermissions) if (format != null && File.Exists(fileName)) { var stream = File.OpenRead(fileName); - LoadFile(fileName, stream, format, EditMode, true, hasSavePermissions); + LoadFile(fileName, stream, format, editMode ?? EditMode, setFileList, hasSavePermissions); return true; } return false; diff --git a/Source/Pablo/Actions/SaveAs.cs b/Source/Pablo/Actions/SaveAs.cs index 00d1f62..a5d69ec 100644 --- a/Source/Pablo/Actions/SaveAs.cs +++ b/Source/Pablo/Actions/SaveAs.cs @@ -38,7 +38,7 @@ public static void Activate(Handler handler, bool setCurrent = false) ofd.Filters.Insert(0, new FileDialogFilter{ Name = "Auto Detect", Extensions = allFormats.ToArray() }); if (!handler.Generator.IsMac || setCurrent) { - if (!string.IsNullOrEmpty(handler.Document.FileName)) + if (!string.IsNullOrEmpty(handler.Document.FileName) && handler.Document.HasSavePermission) { if (Path.IsPathRooted(handler.Document.FileName)) { diff --git a/Source/Pablo/Actions/SaveFile.cs b/Source/Pablo/Actions/SaveFile.cs index b967128..30f606f 100644 --- a/Source/Pablo/Actions/SaveFile.cs +++ b/Source/Pablo/Actions/SaveFile.cs @@ -24,7 +24,13 @@ public SaveFile(Handler handler) this.Shortcut = PabloCommand.CommonModifier | Keys.S; } - protected override void OnExecuted(EventArgs e) + public override bool Enabled + { + get => base.Enabled && handler.Document.HasSavePermission; + set => base.Enabled = value; + } + + protected override void OnExecuted(EventArgs e) { var file = handler.Document.FileName; var shouldSave = string.IsNullOrEmpty(file) || !File.Exists(file) || File.GetAttributes(file).HasFlag(FileAttributes.ReadOnly); From ab93107782fe0ffe606c0c4b76f1ee2af6521ee3 Mon Sep 17 00:00:00 2001 From: Curtis Wensley Date: Mon, 18 Nov 2019 20:17:53 -0800 Subject: [PATCH 3/7] Mac: fix ViewerPane initial size on mac due to bug with ClientSize --- Source/Pablo/ImageViewer.cs | 2 ++ Source/Pablo/ViewerPane.cs | 13 ++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/Source/Pablo/ImageViewer.cs b/Source/Pablo/ImageViewer.cs index ef395c5..976b9e3 100644 --- a/Source/Pablo/ImageViewer.cs +++ b/Source/Pablo/ImageViewer.cs @@ -99,6 +99,8 @@ protected override void OnPaint(PaintEventArgs e) try //lock (this) { + //e.Graphics.FillRectangle(Colors.Blue, e.ClipRectangle); + Rectangle rectScreen; Rectangle rectGenerate; diff --git a/Source/Pablo/ViewerPane.cs b/Source/Pablo/ViewerPane.cs index 678ff69..3be856c 100644 --- a/Source/Pablo/ViewerPane.cs +++ b/Source/Pablo/ViewerPane.cs @@ -139,6 +139,11 @@ float CalculateZoom() return 1.0f; Size clientSize = ClientSize; + if (Platform.IsMac && clientSize.IsEmpty) + { + // bug in eto? + clientSize = Size; + } if (ZoomInfo.FitWidth && ViewHandler.Size.Width > 0) { float val = (float)clientSize.Width / (float)ViewHandler.Size.Width / ViewHandler.Ratio.Width; @@ -164,6 +169,11 @@ void UpdateScroll() { #if DESKTOP Size clientSize = ClientSize; + if (Platform.IsMac && clientSize.IsEmpty) + { + // bug in eto? + clientSize = Size; + } if (Platform.IsWinForms && ScrollPosition.Y + clientSize.Height > ushort.MaxValue) { //ScrollPosition = Point.Empty; @@ -180,7 +190,8 @@ void UpdateScroll() void viewer_SizeChanged(object sender, EventArgs e) { - UpdateSizes(); + if (this.Loaded) + UpdateSizes(); } void StartAutoScroll() From 3ca0d28c2e0e26d8cc15e4914d7e78d4028921f9 Mon Sep 17 00:00:00 2001 From: Curtis Wensley Date: Mon, 18 Nov 2019 20:18:07 -0800 Subject: [PATCH 4/7] RIP: Fix possible NRE when disposing --- Source/Pablo/Formats/Rip/RipDocument.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Source/Pablo/Formats/Rip/RipDocument.cs b/Source/Pablo/Formats/Rip/RipDocument.cs index 76e2f16..65330dd 100644 --- a/Source/Pablo/Formats/Rip/RipDocument.cs +++ b/Source/Pablo/Formats/Rip/RipDocument.cs @@ -99,8 +99,8 @@ public void OnWait(WaitEventArgs args) protected override void Dispose(bool disposing) { - if (image != null) - image.Dispose(); + image?.Dispose(); + image = null; base.Dispose(disposing); } From 15bc1866e684c282ff2d28e501817c687ba46b25 Mon Sep 17 00:00:00 2001 From: Curtis Wensley Date: Mon, 18 Nov 2019 20:18:18 -0800 Subject: [PATCH 5/7] Add faster baud rates --- Source/Pablo/Formats/Animated/AnimatedDocumentInfo.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Source/Pablo/Formats/Animated/AnimatedDocumentInfo.cs b/Source/Pablo/Formats/Animated/AnimatedDocumentInfo.cs index 057fa05..1cc0417 100644 --- a/Source/Pablo/Formats/Animated/AnimatedDocumentInfo.cs +++ b/Source/Pablo/Formats/Animated/AnimatedDocumentInfo.cs @@ -79,6 +79,8 @@ public override void GenerateCommands(GenerateCommandArgs args) #if DEBUG #endif baudRateMap.Add("Fastest", 0); + baudRateMap.Add(460800); + baudRateMap.Add(230400); baudRateMap.Add(115200); baudRateMap.Add(57600); baudRateMap.Add(38400); From bc895b626af78552fed3b1338806dc1466adaf75 Mon Sep 17 00:00:00 2001 From: Curtis Wensley Date: Mon, 18 Nov 2019 20:18:30 -0800 Subject: [PATCH 6/7] Reorg TODO --- Source/Pablo/todo.txt | 52 ------------------------------------------- Source/todo.md | 22 +++++++++++++++++- 2 files changed, 21 insertions(+), 53 deletions(-) delete mode 100644 Source/Pablo/todo.txt diff --git a/Source/Pablo/todo.txt b/Source/Pablo/todo.txt deleted file mode 100644 index 514eb13..0000000 --- a/Source/Pablo/todo.txt +++ /dev/null @@ -1,52 +0,0 @@ - - -TODO ----- - - Limit # of backups - stevemkk - - - - Status Bar, sauce info - Auto Scrolling - File icons - Zip file support - Directory changing - - Render Quality (needed?) - - - - Documentation - - different colors per person in multi-user mode - if cleanah, then color = pink! - - - - Server options: - - Choose which functions/commands can be performed - - Choose version to support (disables certain functions) - different list of available functions for different protocols? - - Allow users to edit (+V by default, ops can demote) - - IRC type functions.. read only, +V to draw +O to op/kick/ban? - - Register & list pablo servers globally using web service - - Aesthetic- ban user by nick or IP - - -Done! ------------ - - RIP, CG/Ansi animation support! - DOS Aspect + 9th pixel - Zooming support - - -Support ------ - - spinsane - first donator, kick ass dude - bhaal - cool layout and generally cool guy - sinisterx - infamous build 27 - rad-man - sweet ass ideas, keeping me busy! - cleanah - for being patient about the .net version on linux! - And everyone in EFNet IRC that got pissed at me because pablo didn't do something diff --git a/Source/todo.md b/Source/todo.md index ae4ec0f..64187d5 100644 --- a/Source/todo.md +++ b/Source/todo.md @@ -19,6 +19,7 @@ - Set height same as width - Optional rulers on the left side and top sides (for wide BIN/XBIN), ala Photoshop - Persist the 'Enable Backups' setting, and add configuration (limit # of backups?) +- Limit # of backups - stevemkk - Loading XBIN doesn't allow changing the aspect setting (should default based on font height??) - Hot link url's - Font Editor for XBIN ( & 512 chars?) @@ -41,6 +42,16 @@ - Pause backscroll during active chat - Tabbed editing / ability to load multiple pages and switch between them via [Ctrl]+[Tab] - Open files when dragging them onto the pd window (windows, other) +- Server options: + - Choose which functions/commands can be performed + - Choose version to support (disables certain functions) - different list of available functions for different protocols? + - Allow users to edit (+V by default, ops can demote) + - IRC type functions.. read only, +V to draw +O to op/kick/ban? + - Register & list pablo servers globally using web service + - Aesthetic- ban user by nick or IP + + + 3.3: - BUG: BIN saving (or loading?) trims last line @@ -105,7 +116,16 @@ - +Support +----- + + spinsane - first donator, kick ass dude + bhaal - cool layout and generally cool guy + sinisterx - infamous build 27 + rad-man - sweet ass ideas, keeping me busy! + cleanah - for being patient about the .net version on linux! + And everyone in EFNet IRC that got pissed at me because pablo didn't do something + From 7287fe470ac578c5b4ef5c21aca01922b8f1f6fe Mon Sep 17 00:00:00 2001 From: Curtis Wensley Date: Mon, 18 Nov 2019 20:18:42 -0800 Subject: [PATCH 7/7] Embed README and add Help > View Readme --- Source/Pablo.Interface/Actions/Readme.cs | 30 ++ Source/Pablo.Interface/Main.cs | 27 +- Source/Pablo.Interface/Pablo.Interface.csproj | 3 + Source/PabloDraw/PabloDraw.csproj | 4 - Source/README.ans | 385 +++++++++--------- 5 files changed, 243 insertions(+), 206 deletions(-) create mode 100644 Source/Pablo.Interface/Actions/Readme.cs diff --git a/Source/Pablo.Interface/Actions/Readme.cs b/Source/Pablo.Interface/Actions/Readme.cs new file mode 100644 index 0000000..0f16acc --- /dev/null +++ b/Source/Pablo.Interface/Actions/Readme.cs @@ -0,0 +1,30 @@ +using System; +using System.IO; +using System.Reflection; +using Eto.Forms; + +namespace Pablo.Interface.Actions +{ + public class Readme : Command + { + Main main; + public const string ActionID = "readme"; + + public Readme(Main main) + { + this.main = main; + this.MenuText = "View Readme"; + base.ID = ActionID; + } + + protected override void OnExecuted(EventArgs e) + { + base.OnExecuted(e); + using (var stream = typeof(Readme).Assembly.GetManifestResourceStream("Pablo.Interface.README.ans")) + { + main.LoadFile("README.ans", stream, hasSavePermissions: false, setFileList: false, editMode: false); + } + } + } +} + diff --git a/Source/Pablo.Interface/Main.cs b/Source/Pablo.Interface/Main.cs index c0b6d50..0859eec 100644 --- a/Source/Pablo.Interface/Main.cs +++ b/Source/Pablo.Interface/Main.cs @@ -531,6 +531,7 @@ public void GenerateActions() //#endif // help + aiHelp.Items.Add(new Actions.Readme(this), 500); aiHelp.Items.Add(new Actions.Homepage(), 500); args.ToolBar.Items.Add(new Actions.NewFile(this), 100); @@ -698,8 +699,14 @@ void PostLoad() Stream loadingStream; - public void LoadFile(string fileName, Stream stream, Format format, bool editMode, bool setFileList, bool hasPermissions) + public bool LoadFile(string fileName, Stream stream, Format format = null, bool editMode = false, bool setFileList = true, bool hasSavePermissions = true) { + if (format == null) + { + format = Settings.Infos.FindFormat(fileName, "character", "ansi"); + if (format == null) + return false; + } if (Client != null) { var doc = format.Info.Create(Platform); @@ -708,7 +715,7 @@ public void LoadFile(string fileName, Stream stream, Format format, bool editMod doc.EditMode = editMode; doc.FileName = fileName; doc.Load(stream, format, null); - doc.HasSavePermission = hasPermissions; + doc.HasSavePermission = hasSavePermissions; Client.SetDocument(doc); } else @@ -720,9 +727,10 @@ public void LoadFile(string fileName, Stream stream, Format format, bool editMod Client.SetFile(fileName, ms, format, editMode); } } - return; + return true; } - InternalLoadFile(fileName, stream, format, editMode, setFileList, hasPermissions); + InternalLoadFile(fileName, stream, format, editMode, setFileList, hasSavePermissions); + return true; } void InternalLoadFile(string fileName, Stream stream, Format format, bool editMode, bool setFileList, bool hasSavePermission) @@ -761,7 +769,6 @@ void InternalLoadFile(string fileName, Stream stream, Format format, bool editMo MessageBox.Show(this, string.Format("Unable to load the selected file ({0})", e)); #if DEBUG Debug.Print("Error loading: {0}", e); - throw; #endif } } @@ -801,13 +808,13 @@ public bool LoadFile(string fileName, bool hasSavePermissions, bool setFileList currentFormat = null; currentFile = null; - Format format = Settings.Infos.FindFormat(fileName, "character", "ansi"); - if (format != null && File.Exists(fileName)) + if (File.Exists(fileName)) { - var stream = File.OpenRead(fileName); - LoadFile(fileName, stream, format, editMode ?? EditMode, setFileList, hasSavePermissions); - return true; + using (var stream = File.OpenRead(fileName)) + { + return LoadFile(fileName, stream, null, editMode ?? EditMode, setFileList, hasSavePermissions); + } } return false; } diff --git a/Source/Pablo.Interface/Pablo.Interface.csproj b/Source/Pablo.Interface/Pablo.Interface.csproj index b2acf54..d548def 100644 --- a/Source/Pablo.Interface/Pablo.Interface.csproj +++ b/Source/Pablo.Interface/Pablo.Interface.csproj @@ -9,6 +9,9 @@ + + README.ans + diff --git a/Source/PabloDraw/PabloDraw.csproj b/Source/PabloDraw/PabloDraw.csproj index b522874..e29bbdf 100644 --- a/Source/PabloDraw/PabloDraw.csproj +++ b/Source/PabloDraw/PabloDraw.csproj @@ -13,10 +13,6 @@ - - README.ans - Always - diff --git a/Source/README.ans b/Source/README.ans index be378c8..cc6e9e0 100644 --- a/Source/README.ans +++ b/Source/README.ans @@ -1,192 +1,193 @@ -[?33h-- ---------------------------------------------------- ------------------ ---- - ±± ÛÛ ÜÛÛÛÛ± Üß ÜßÛÜ²Û ÜÜ ±Ûß±±ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ°°ÛÛ°°°°°°°°°°°°°° - ²² ±±±°°ß±Û ±±Û   þßÛ±±Û±²  ÜÛ - °°± Ûß ±Üßß ßÜÜ ßß ±± Û ±± Pablodraw v.3.2 ||   Documentation   ±± - Ü ÛßÜÜßß Ü   ± ÛÛ - Üß ß Üþ±±Û±ÛÜÜßÜ  ±ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ²²ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ±±ßßÜ - ÜÜßß ÜÜßÛ   ßßÛ± ÛÜ   ±  ÜÜ ÜÜ ÜÜÜ ÜÜ - Û þ±ÛÛÜ ß ÜÜ ±± ²  ±Û ° ° ÛßÜÛ²²Û ÛÛ°° ²²± - ßßß ²Û þ ÜÛ ±±Û± ±± ±  Üßþ±±  °°   ßßÜ   Û±± ±±Û±Û±Û²°°°Û -±ÜÜÜ Û±±± ±± ±±± ±± ±±Û  °°° Û  ßßßÜ  ±±   ÜÜ     ±± ßßÛ ± Û°²þ ± - Û ± ²²Û±Û ²²ÛþÜ  °ßÛ ±Ü  °   ±°±° ±±±Û Û ±²²Û - ± ² ²²ÜÜÛÛÜÛ ±ÛßÜß ßÜ ± Û ±°  ² ±² Û ÛÛ ° Û± ß ±± - Û ² °° ±Û²²ßßÛÜÜÜ ß   ±±ßÜ ß²  Û±²²Û° Û ² ±± ßß  ±ÛÜ - ° Û °   ßßÛÛ ßßß  ܱÜß± Û  ÛÛ°Û ÜßßßßÛ² ± ²Ü ßß Ü ß ° -  ² ² ° Üß ²²   Ü  ±Û²ß ±°° Û  Û² Û ß °°°° ßÜÛÛ°Û Û  ÜßÜßÜܱ۱ Ü -  °Û Û ° ÛÛ ±±± ÜÛ Üß  ÛÛ ±°²² Û  Û± Û±± Û Û ± ² ܱÛßÛßÛÜ -  ±Û ± ² °±± ÛÜ  Û±±Üß°   ²² Û ÛÛ ±  ² Û ±± Üß ÛÛ ²²Û ° ° ÛÛ±ÛÛ ±Û ±±± ±± -  Ûß   Û ±Ü  ÛÜß ±±ܱÛ±±   ±± Û±²²  Û± ² ÛÛ ± ±± °°±Û±e ±±± ²² ßÜÜܱ±± ±±± - Û Üß±±± ßÜß ßÜÛ± ßÜÜ ±±   ±±°°±  ±Û Û²±± ± ÜÛ Ûß Ü  þ ±± ßßß ÜÜÛ ßܱ - ±  ±Û ±ÛÛ ßÜÜ   ± ßÜ  °°° ÜßÛ Üß  ±ßßÛÛ Ü± ±ÜßÛÜ ÜÜßÛÜ ßÜ ±Û ÛÛßÜßÛß - ÜÜÜß °ßßܱ   ßÜ  þÜÜ ß ßÜܱ ÜÜß ßßÜÛÜßß±ÜÛß ÛÜßß Ü ßÜ ßßßßßÜß - Ü°°ßß  ßþ °° ß Ü  ÜþÜ ±Ü ßßßßÜ°°ßßÜܱ Ü -ÜÛ± ßß   ± ± °²² ° ÜÜ ßÜ  °  ßßßß ±   ß ÜÜÜÜ ß °° ß ÜÜÜ ÜþzO± -Û± °²² ° ²ÜÛ ÛÛ°² ÛÛÛÜ Û ²² ÜÜÜ ±ÛÜÜ ÜÜÜÜÜÜÜÜÜÛÛß ± ²²±  Û ÜÛÛÛ° -Û ²²²ÛÛ°² ßßÜÛ ÛÛ²Û±±ÛÛÛÜ Û ÛÛÜ ÛÛ°°Û± ÜÜÛÛÛÛÛÜ ±ÛÛ°°°ßßÛÜÜ Û ÛÛ²²Ü ± ° ÛÛÛÛ² -Û²ÛÛÛ²²²ÛÛÛÛÛÛ ²ÛÛ²ÛÛÛÛ°°ÜÛÝÛß±ÛÜÛÛÛÛÜÛÛÛÛ²ÛÛÛÛ°°°ÛÜÜÜÛÛÛÛÛÛÜß ÜÜÛßÛ± ßßÛÛÜÛ²ÛÛ -ÞÛÛßßÛÛÛÛ²²ÛÛÛ °ÛÛÛ²ÛÛÛßßÛÛÛÛÛÛÛÜÛß ÛÛÛ²²Û ßßÛÛÛÛÛ°ÛÛÛÛÛÛÛÛ²ÛÛÛÛÛ ÜÜ°°ÛÛÛÛÛÛ -ÛÛ±ÛßÜÛÛÛÛÛÛÛßÜ Û²²°²ÛÛ ±Ü ±ÜÛßÜÜÛÛß±ÛÛ±±ÛÛ ±± ßÜÛßÛÛÛÛ ÜÜÜßÛÛÛÛÛÛÛÜÛ²Ûß ±ÛÜÛ -ÛÛÛÜÜÛÛßÛßÜÜÛÛÜÜÛÛÛ ÛÛÛÛÛÜßÛÛÛÛÛÛ²²²ßÛ²²ÛÛÛÛÛÜÜÛÛÜÛÛßÛÛÛÛß±±Û±ÛÛ²²ÛÛÛ±Ûß± Ûß ßÜ -Û²²ÛßÜßÛÛÛÛÛÛÛÛ±²²² ÛÛ²²ÛÛ°²²Û±Û  ܱ ÛÛÛßÛÜÜÜÛß²²²² Û²Û ÛÛÛ ÛÛÛÛÛÛÛ ²²² ± Û  - ÛÛ ±Û²²²²ÛÛßßß °°°ÜßÛÛ±±Û²°°² Û²ÛÜÜÜÜÛßÛ²²²²ÛÛ²°°°°Û±ÛÛÛ Û²² ÛÛ ÜÜÛÛ °°°²ÛÜ Ü  -ÛÜ Û²°°°² ÛÛÛ ± ßÛßÛ²²Û ° ÛÛÛÛÛÛß Û±±±±²ÛÛß°° ÛÛÛ²² Û°°ßÜ ßÜÛÜß  ° ÛÛÛßÛÜ -±± ±±  °ßÜÜÜß þß ±± ÛßÜ ±ÜßÜ ÛÛ²² ±°°°° ÜÜ ²² ÜÛßÛ°° ± ÜÜ ß±Û±  ß ±ÛÛÛÛß - ßÜ ± ß ÜÜÜ Ü ÜßÜÜÜßÛÜÜÛ ÛÛßßÜÛ ÛÛ°°ÛÜßÜ Ü ßÜÜßÛßß Ü± Ü Ü Ü   ÜÜßÛÜÛßÜÛÛÛÛßÛÛ - ßÜÛßÜ ßß ÜßÜß Üß ± ÜÛÛÛÜß ²Û ±ÛÛÜÛßÜßßßÜßÛÜÛÜÜ ÜßÛÜÛßßÜÛ±ÛÜ ßßÜß Üßß² - Ü ±ÛÛÛÜÜÜß ßß Ü Ü ÛÛß ±ÛÛÛß°ÝÜ ßßÛÛÛÜÜÜÛÛß ß ßÜÛÛÜßÛÛßÛÜßÜÜß  ß Üßß° -Ü ßßÜßÛÜß Ýß ÜßÜß° Û Ü Ü ßÛÛÛÛ ÜÜ ßÜß ÛßÜÛß ßß ÜßÜ ß  - Üß ß   Üß  °°  ÜÛ ß ±± ßÜßÜ Ü ±Û±  ßÜ ± Ü ±ÛÛßÛÜÜßÛ± ßÜ ß -±± ±   ß ±   ± Ü þÜ ± ßÜ ± ß± ßÜÜÛ± ß ÜÜß ±ÜßÛÜ  ±± Û°°ÛÛ Ûß Üßß - ± ßÜß  ± ÜÜ ßÜß ßßÜ ±Ü ßß Ü± ß ÜÜßßßÛÜÜÜÜ Ü ßßÜ ß ßÛ ßÜÜÛß Û ± ß -±± ßÛ ßß ÜÛÜÜÜÜß ÜßßÛÛßßßßßßÛÜÜßßÜÛß ² Û ° -ÛÛ  ßß °°°ßß ÜÜß±ß ßÛ ² Û -ßÛÜÜßÛßÛß Ý ÛÜÛ -±ÛÛÛÛÛ±ÜÛÜÜÛßßÛÛÛÛÛÛÛÛÛ±± °°Ý ßÜÜ ° -ÛÛ  ÜÛßß  ßß ° -Û  ß  °±± -Û  Welcome to PabloDraw!±±² -±ÛßÛ -   [ About°°±±ÛÛÛÛÛÛÛÛÛÛ² -±ÛÛ±±ÜÛß - °° ÛÛ -± °° ÛÛ -ÛPabloDraw v3 is a completely re-written update to the PabloDrawÛÛ -²ansi editor, bringing cross-platform compatibility and all new  ±± ±± -° ±± featuresÛÛ -ÛÛ ÛÛ±± -±± ÛÛ PabloDraw now fully supports a native application for Mac OS X - ±± using Cocoa, Linux using GTK, and Windows using Windows Forms. -This provides the best user experience on all platforms. - -PabloDraw is now an integrated viewer and editor. PabloDraw -supports a multitude of formats for viewing: - -Character Formats: ANSI, ADF, ASCII, AVT, BIN, CG, IDF, XBIN, -Tundra, CtrlA, ANSiMation - -Vector Formats: RIP - -Image Formats:  JPEG, GIF, PNG, TIFF, BMP - -Character and vector formats can save as any of the image formats, -providing easy conversion for viewing on web pages or sharing. - -PabloDraw can edit or create character and vector formats, and save as: - ANSI, ASCII (no colour), BIN, Tundra, CtrlA, XBIN, and RIP. - - ±± Other features included:ÛÛ ° - ÛÛ þ Built-in Sixteencolors.net art browserÛÛ ² -±± Û² þ 9px fonts and DOS aspect emulation²² Û -ÛÛ ÛÛ þ 80x25, 80x50, and Amiga fonts°° Û -²² ²² þ View files within .ZIP and .RAR archives automatically  Û -þ  °° þ Multiple Zoom levels when viewing and editing  ² -±±   þ Multi-User networking to draw & chat at the same time²² Û -ÛÛ  °° Û - ÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ Û -ßÛ ÜÛßßßßßßßßßßßßßß²² -±Û±ßܱ± [ Installation°° -°°Û Û±±Û±°°±±ÛÛßßÛþÜ -±± ±±±ÛßßÜßÛßÜ - ÛÛ ± ßß° ÛÛÛ - ± ±± Û² ±±± - Û ßßÛ - Û ± WindowsÛ ± - Û Û ÄÄÄÄÄÄÄÛ Û - ÛßßRun the setup.exe file. All pre-requisites will be installed, Û Û - ßßsuch as .NET 4.0, and file associations will be set up. This  ÛßÛ -will add a shortcut to your start menu that you can use to launch ßß -PabloDraw. - -PabloDraw will check for updates periodically when it runs, and offer -to install updates when found. - - Alternatively, you can download the Linux .zip and copy the -PabloDraw.exe file wherever you want to run it from. - - -Requirements: Microsoft .NET Framework 4.0 or greater. - - -Macintosh OS X -ÄÄÄÄÄÄÄÄÄÄÄÄÄÄ -Copy the PabloDraw.app to your Applications folder to be able to -load known file types. - -Note: To use the F1, F2, etc keys on OS X without having to press -the FN key, change the setting in System Preferences > -Keyboard > Use all F1, F2, etc. keys as standard function keys - -To toggle INSERT mode on a Mac keyboard, use FN+Return - -Requirements: Mac OS X 10.5 or greater - - -Linux -ÄÄÄÄÄ -Copy the PabloDraw.exe file to wherever you want. Run it using -the command line (or use a shell script) that executes: - -> mono PabloDraw.exe - -Requirements: Mono 2.8 or greater, GTK, and gtk-sharp (if your -distro packages it separately) - -Ubuntu -ÄÄÄÄÄ- - -°Ubuntu requires mono to be installed, which can be done by±± - ±± installing via apt:ÛÛ ° - ÛÛÛÛ ² -±± Û²  > apt-get install mono-complete gtk-sharp  ²² Û -ÛÛ ÛÛ  °° Û -²² ²²    Û -þ  °°    ² -±±  ²² Û -ÛÛ  °° Û - ÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ Û -ßÛ ÜÛßßßßßßßßßßßßßß²² -±Û±ßܱ± [ Keyboard Shortcuts°° -°°Û Û±±Û±°°±±ÛÛßßÛþÜ -±± ±±±ÛßßÜßÛßÜ - ÛÛ ± ßß° ÛÛÛ - ± ±± Û These keyboard shortcuts are in addition to the shortcuts² - Û ßßshown on the menus.Û - Û ±Û ± - Û Û Viewing ModeÛ Û - Ûßß ÄÄÄÄÄÄÄÄÄÄÄÄÛ Û - ßßAlt+Up- Previous FileÛßÛ -Alt+Down- Next Fileßß - - -ANSI Editing -ÄÄÄÄÄÄÄÄÄÄÄÄ - -Arrows- Move cursor -Shift+Arrows - Move cursor & select block -Alt+B- Begin block select -Ins- Toggle insert mode (fn+return on OS X) -Alt+Left- Delete column at cursor -Alt+Right- Insert column at cursor -Alt+Up- Delete row at cursor -Alt+Down- Insert row at cursor - -Ctrl+0-7- Change Foreground colour (again to change brightness) -Alt+0-7- Change Background colour (again to change brightness) - -Alt+U- Use attribute under cursor -Ctrl+Up- Previous foreground color - ±± Ctrl+Down- Next foreground color± -± ÛÛ Ctrl+Left- Previous background colorÛ -² ÛÛ Ctrl+Right- Next background colorÛ± -Û ÛÛÛÛ -Û Û² F1 - F10- Draw character from current character setÛÛ -Û ÛÛ Alt+F1 - F10 - Select Character Sets 1 - 10²Û -Û °Û² Ctrl+F1 - F10 - Select Character Sets 11 - 20ÛÛ° -Û ±Û°²² -² ÛÛÜ ±±°°° -° ßßÜ ÛÛ ² - ÜÛÛÛ ²²Ü - -- --  Ü -ÜÛ±ÜÜßÜÛÛÛÛ± Pablodraw v.3.2 (c) 2013 by Curtis Wensley aka Eto±ÛÛÜÜÛßÜ - ÜÜßÛßßÜßÜ - -------- --- -- ----ßÛÜ - ßßßßÜ ßßansi design by enzO_27inch ± Û -Û Û -Ûßþ +-- ---------------------------------------------------- ------------------ ---- + ±± ÛÛ ÜÛÛÛÛ± Üß ÜßÛÜ²Û ÜÜ ±Ûß±±ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ°°ÛÛ°°°°°°°°°°°°°° + ²² ±±±°°ß±Û ±±Û   þßÛ±±Û±²  ÜÛ + °°± Ûß ±Üßß ßÜÜ ßß ±± Û ±± Pablodraw v.3.3.0 ||  Documentation   ±± + Ü ÛßÜÜßß Ü   ± ÛÛ + Üß ß Üþ±±Û±ÛÜÜßÜ  ±ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ²²ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ±±ßßÜ + ÜÜßß ÜÜßÛ   ßßÛ± ÛÜ   ±  ÜÜ ÜÜ ÜÜÜ ÜÜ + Û þ±ÛÛÜ ß ÜÜ ±± ²  ±Û ° ° ÛßÜÛ²²Û ÛÛ°° ²²± + ßßß ²Û þ ÜÛ ±±Û± ±± ±  Üßþ±±  °°   ßßÜ   Û±± ±±Û±Û±Û²°°°Û +±ÜÜÜ Û±±± ±± ±±± ±± ±±Û  °°° Û  ßßßÜ  ±±   ÜÜ     ±± ßßÛ ± Û°²þ ± + Û ± ²²Û±Û ²²ÛþÜ  °ßÛ ±Ü  °   ±°±° ±±±Û Û ±²²Û + ± ² ²²ÜÜÛÛÜÛ ±ÛßÜß ßÜ ± Û ±°  ² ±² Û ÛÛ ° Û± ß ±± + Û ² °° ±Û²²ßßÛÜÜÜ ß   ±±ßÜ ß²  Û±²²Û° Û ² ±± ßß  ±ÛÜ + ° Û °   ßßÛÛ ßßß  ܱÜß± Û  ÛÛ°Û ÜßßßßÛ² ± ²Ü ßß Ü ß ° +  ² ² ° Üß ²²   Ü  ±Û²ß ±°° Û  Û² Û ß °°°° ßÜÛÛ°Û Û  ÜßÜßÜܱ۱ Ü +  °Û Û ° ÛÛ ±±± ÜÛ Üß  ÛÛ ±°²² Û  Û± Û±± Û Û ± ² ܱÛßÛßÛÜ +  ±Û ± ² °±± ÛÜ  Û±±Üß°   ²² Û ÛÛ ±  ² Û ±± Üß ÛÛ ²²Û ° ° ÛÛ±ÛÛ ±Û ±±± ±± +  Ûß   Û ±Ü  ÛÜß ±±ܱÛ±±   ±± Û±²²  Û± ² ÛÛ ± ±± °°±Û±e ±±± ²² ßÜÜܱ±± ±±± + Û Üß±±± ßÜß ßÜÛ± ßÜÜ ±±   ±±°°±  ±Û Û²±± ± ÜÛ Ûß Ü  þ ±± ßßß ÜÜÛ ßܱ + ±  ±Û ±ÛÛ ßÜÜ   ± ßÜ  °°° ÜßÛ Üß  ±ßßÛÛ Ü± ±ÜßÛÜ ÜÜßÛÜ ßÜ ±Û ÛÛßÜßÛß + ÜÜÜß °ßßܱ   ßÜ  þÜÜ ß ßÜܱ ÜÜß ßßÜÛÜßß±ÜÛß ÛÜßß Ü ßÜ ßßßßßÜß + Ü°°ßß  ßþ °° ß Ü  ÜþÜ ±Ü ßßßßÜ°°ßßÜܱ Ü +ÜÛ± ßß   ± ± °²² ° ÜÜ ßÜ  °  ßßßß ±   ß ÜÜÜÜ ß °° ß ÜÜÜ ÜþzO± +Û± °²² ° ²ÜÛ ÛÛ°² ÛÛÛÜ Û ²² ÜÜÜ ±ÛÜÜ ÜÜÜÜÜÜÜÜÜÛÛß ± ²²±  Û ÜÛÛÛ° +Û ²²²ÛÛ°² ßßÜÛ ÛÛ²Û±±ÛÛÛÜ Û ÛÛÜ ÛÛ°°Û± ÜÜÛÛÛÛÛÜ ±ÛÛ°°°ßßÛÜÜ Û ÛÛ²²Ü ± ° ÛÛÛÛ² +Û²ÛÛÛ²²²ÛÛÛÛÛÛ ²ÛÛ²ÛÛÛÛ°°ÜÛÝÛß±ÛÜÛÛÛÛÜÛÛÛÛ²ÛÛÛÛ°°°ÛÜÜÜÛÛÛÛÛÛÜß ÜÜÛßÛ± ßßÛÛÜÛ²ÛÛ +ÞÛÛßßÛÛÛÛ²²ÛÛÛ °ÛÛÛ²ÛÛÛßßÛÛÛÛÛÛÛÜÛß ÛÛÛ²²Û ßßÛÛÛÛÛ°ÛÛÛÛÛÛÛÛ²ÛÛÛÛÛ ÜÜ°°ÛÛÛÛÛÛ +ÛÛ±ÛßÜÛÛÛÛÛÛÛßÜ Û²²°²ÛÛ ±Ü ±ÜÛßÜÜÛÛß±ÛÛ±±ÛÛ ±± ßÜÛßÛÛÛÛ ÜÜÜßÛÛÛÛÛÛÛÜÛ²Ûß ±ÛÜÛ +ÛÛÛÜÜÛÛßÛßÜÜÛÛÜÜÛÛÛ ÛÛÛÛÛÜßÛÛÛÛÛÛ²²²ßÛ²²ÛÛÛÛÛÜÜÛÛÜÛÛßÛÛÛÛß±±Û±ÛÛ²²ÛÛÛ±Ûß± Ûß ßÜ +Û²²ÛßÜßÛÛÛÛÛÛÛÛ±²²² ÛÛ²²ÛÛ°²²Û±Û  ܱ ÛÛÛßÛÜÜÜÛß²²²² Û²Û ÛÛÛ ÛÛÛÛÛÛÛ ²²² ± Û  + ÛÛ ±Û²²²²ÛÛßßß °°°ÜßÛÛ±±Û²°°² Û²ÛÜÜÜÜÛßÛ²²²²ÛÛ²°°°°Û±ÛÛÛ Û²² ÛÛ ÜÜÛÛ °°°²ÛÜ Ü  +ÛÜ Û²°°°² ÛÛÛ ± ßÛßÛ²²Û ° ÛÛÛÛÛÛß Û±±±±²ÛÛß°° ÛÛÛ²² Û°°ßÜ ßÜÛÜß  ° ÛÛÛßÛÜ +±± ±±  °ßÜÜÜß þß ±± ÛßÜ ±ÜßÜ ÛÛ²² ±°°°° ÜÜ ²² ÜÛßÛ°° ± ÜÜ ß±Û±  ß ±ÛÛÛÛß + ßÜ ± ß ÜÜÜ Ü ÜßÜÜÜßÛÜÜÛ ÛÛßßÜÛ ÛÛ°°ÛÜßÜ Ü ßÜÜßÛßß Ü± Ü Ü Ü   ÜÜßÛÜÛßÜÛÛÛÛßÛÛ + ßÜÛßÜ ßß ÜßÜß Üß ± ÜÛÛÛÜß ²Û ±ÛÛÜÛßÜßßßÜßÛÜÛÜÜ ÜßÛÜÛßßÜÛ±ÛÜ ßßÜß Üßß² + Ü ±ÛÛÛÜÜÜß ßß Ü Ü ÛÛß ±ÛÛÛß°ÝÜ ßßÛÛÛÜÜÜÛÛß ß ßÜÛÛÜßÛÛßÛÜßÜÜß  ß Üßß° +Ü ßßÜßÛÜß Ýß ÜßÜß° Û Ü Ü ßÛÛÛÛ ÜÜ ßÜß ÛßÜÛß ßß ÜßÜ ß  + Üß ß   Üß  °°  ÜÛ ß ±± ßÜßÜ Ü ±Û±  ßÜ ± Ü ±ÛÛßÛÜÜßÛ± ßÜ ß +±± ±   ß ±   ± Ü þÜ ± ßÜ ± ß± ßÜÜÛ± ß ÜÜß ±ÜßÛÜ  ±± Û°°ÛÛ Ûß Üßß + ± ßÜß  ± ÜÜ ßÜß ßßÜ ±Ü ßß Ü± ß ÜÜßßßÛÜÜÜÜ Ü ßßÜ ß ßÛ ßÜÜÛß Û ± ß +±± ßÛ ßß ÜÛÜÜÜÜß ÜßßÛÛßßßßßßÛÜÜßßÜÛß ² Û ° +ÛÛ  ßß °°°ßß ÜÜß±ß ßÛ ² Û +ßÛÜÜßÛßÛß Ý ÛÜÛ +±ÛÛÛÛÛ±ÜÛÜÜÛßßÛÛÛÛÛÛÛÛÛ±± °°Ý ßÜÜ ° +ÛÛ  ÜÛßß  ßß ° +Û  ß  °±± +Û  Welcome to PabloDraw!±±² +±ÛßÛ +   [ About°°±±ÛÛÛÛÛÛÛÛÛÛ² -±ÛÛ±±ÜÛß + °° ÛÛ +± °° ÛÛ +ÛPabloDraw v3 is a completely re-written update to the PabloDrawÛÛ +²ansi editor, bringing cross-platform compatibility and all new  ±± ±± +° ±± featuresÛÛ +ÛÛ ÛÛ±± +±± ÛÛ PabloDraw now fully supports a native application for Mac OS X + ±± using Cocoa, Linux using GTK, and Windows using Windows Forms. +This provides the best user experience on all platforms. + +PabloDraw is now an integrated viewer and editor. PabloDraw +supports a multitude of formats for viewing: + +Character Formats: ANSI, ADF, ASCII, AVT, BIN, CG, IDF, XBIN, +Tundra, CtrlA, ANSiMation + +Vector Formats: RIP + +Image Formats:  JPEG, GIF, PNG, TIFF, BMP + +Character and vector formats can save as any of the image formats, +providing easy conversion for viewing on web pages or sharing. + +PabloDraw can edit or create character and vector formats, and save as: + ANSI, ASCII (no colour), BIN, Tundra, CtrlA, XBIN, and RIP. + + ±± Other features included:ÛÛ ° + ÛÛ þ Built-in Sixteencolors.net art browserÛÛ ² +±± Û² þ 9px fonts and DOS aspect emulation²² Û +ÛÛ ÛÛ þ 80x25, 80x50, and Amiga fonts°° Û +²² ²² þ View files within .ZIP and .RAR archives automatically  Û +þ  °° þ Multiple Zoom levels when viewing and editing  ² +±±   þ Multi-User networking to draw & chat at the same time²² Û +ÛÛ  °° Û + ÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ Û +ßÛ ÜÛßßßßßßßßßßßßßß²² +±Û±ßܱ± [ Installation°° +°°Û Û±±Û±°°±±ÛÛßßÛþÜ +±± ±±±ÛßßÜßÛßÜ + ÛÛ ± ßß° ÛÛÛ + ± ±± Û² ±±± + Û ßßÛ + Û ± WindowsÛ ± + Û Û ÄÄÄÄÄÄÄÛ Û + ÛßßRun PabloDraw.msi. All pre-requisites will be installed, Û Û + ßßsuch as .NET 4.7, and file associations will be set up. This  ÛßÛ +will add a shortcut to your start menu that you can use to launch ßß +PabloDraw. + + Alternatively, you can download the Linux .zip and copy the +PabloDraw.exe file wherever you want to run it from. + + +Requirements: Microsoft .NET Framework 4.7 or greater. +Windows 7, 8.1, or 10 + +Macintosh OS X +ÄÄÄÄÄÄÄÄÄÄÄÄÄÄ +Run PabloDraw.pkg and run through the wizard to install to your +Applications folder. + +Note: To use the F1, F2, etc keys on OS X without having to press +the FN key, change the setting in System Preferences > +Keyboard > Use all F1, F2, etc. keys as standard function keys + +To toggle INSERT mode on a Mac keyboard, use FN+Return + +Requirements: Mac OS X 10.10 or greater + + +Linux +ÄÄÄÄÄ +Copy the PabloDraw.exe file to wherever you want. Run it using +the command line (or use a shell script) that executes: + +> mono PabloDraw.exe + +Requirements: Mono 6.0 or greater, GTK+, and gtk-sharp2 (optional) + +Note: If your distro does not provide gtk-sharp2, +PabloDraw will now use GTK+ 3 without any additional +dependencies other than mono. + +Ubuntu +ÄÄÄÄÄ- + +°Ubuntu requires mono to be installed, which can be done by±± + ±± installing via apt:ÛÛ ° + ÛÛÛÛ ² +±± Û²  > apt-get install mono-complete gtk-sharp  ²² Û +ÛÛ ÛÛ°° Û +²² ²²  Û +þ  °°  ² +±±  ²² Û +ÛÛ  °° Û + ÛÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ Û +ßÛ ÜÛßßßßßßßßßßßßßß²² +±Û±ßܱ± [ Keyboard Shortcuts°° +°°Û Û±±Û±°°±±ÛÛßßÛþÜ +±± ±±±ÛßßÜßÛßÜ + ÛÛ ± ßß° ÛÛÛ + ± ±± Û These keyboard shortcuts are in addition to the shortcuts² + Û ßßshown on the menus.Û + Û ±Û ± + Û Û Viewing ModeÛ Û + Ûßß ÄÄÄÄÄÄÄÄÄÄÄÄÛ Û + ßßAlt+Up- Previous FileÛßÛ +Alt+Down- Next Fileßß + + +ANSI Editing +ÄÄÄÄÄÄÄÄÄÄÄÄ + +Arrows- Move cursor +Shift+Arrows - Move cursor & select block +Alt+B- Begin block select +Ins- Toggle insert mode (fn+return on OS X) +Alt+Left- Delete column at cursor +Alt+Right- Insert column at cursor +Alt+Up- Delete row at cursor +Alt+Down- Insert row at cursor + +Ctrl+0-7- Change Foreground colour (again to change brightness) +Alt+0-7- Change Background colour (again to change brightness) + +Alt+U- Use attribute under cursor +Ctrl+Up- Previous foreground color + ±± Ctrl+Down- Next foreground color± +± ÛÛ Ctrl+Left- Previous background colorÛ +² ÛÛ Ctrl+Right- Next background colorÛ± +Û ÛÛÛÛ +Û Û² F1 - F10- Draw character from current character setÛÛ +Û ÛÛ Alt+F1 - F10 - Select Character Sets 1 - 10²Û +Û °Û² Ctrl+F1 - F10 - Select Character Sets 11 - 20ÛÛ° +Û ±Û°²² +² ÛÛÜ ±±°°° +° ßßÜ ÛÛ ² + ÜÛÛÛ ²²Ü - -- --  Ü +ÜÛ±ÜÜßÜÛÛÛÛ± Pablodraw (c) 2019 by Curtis Wensley aka Eto±ÛÛÜÜÛßÜ + ÜÜßÛßßÜßÜ - -------- --- -- ----ßÛÜ + ßßßßÜ ßßansi design by enzO_27inch ± Û +Û Û +Ûßþ +SAUCE00 20191113æÜPÀIBM VGA \ No newline at end of file