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/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/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..0859eec 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,12 @@ 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.Readme(this), 500); + 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); @@ -697,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); @@ -707,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 @@ -719,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) @@ -760,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 } } @@ -793,20 +801,20 @@ 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; 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, true, 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 1b2d85e..d548def 100644 --- a/Source/Pablo.Interface/Pablo.Interface.csproj +++ b/Source/Pablo.Interface/Pablo.Interface.csproj @@ -1,132 +1,23 @@ - - + - 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 - - - - - - - - - - - - - - - - - - - - - + - - - + + + README.ans + - - - - - - - - + - - {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/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); 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); 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); } 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/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/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 7b78874..0000000 Binary files a/Source/Pablo/Sauce.zip and /dev/null differ diff --git a/Source/Pablo/SharpCompressDirectoryInfo.cs b/Source/Pablo/SharpCompressDirectoryInfo.cs index 214c93d..d505e71 100644 --- a/Source/Pablo/SharpCompressDirectoryInfo.cs +++ b/Source/Pablo/SharpCompressDirectoryInfo.cs @@ -1,10 +1,11 @@ using System; -using SharpCompress.Reader; -using SharpCompress.Archive; +using SharpCompress.Readers; +using SharpCompress.Compressors; using System.IO; using System.Collections.Generic; using Eto.IO; using SharpCompress.Common.Rar; +using SharpCompress.Archives; namespace Pablo { @@ -37,11 +38,11 @@ protected override IEnumerable 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/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() 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/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/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 0000000..99bcdba Binary files /dev/null and b/Source/PabloDraw/Icon.icns differ diff --git a/Source/PabloDraw/PabloDraw.csproj b/Source/PabloDraw/PabloDraw.csproj index 6cf65db..e29bbdf 100644 --- a/Source/PabloDraw/PabloDraw.csproj +++ b/Source/PabloDraw/PabloDraw.csproj @@ -1,520 +1,30 @@ - - + - 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/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 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" 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 +