diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 0000000..b8409ae --- /dev/null +++ b/AUTHORS @@ -0,0 +1,7 @@ +The following authors have all licensed their contributions to Eto.Toolkit +under the licensing terms detailed in LICENSE. + +(Authors keep copyright of their contributions, of course; they just grant +a license to everyone to use it as detailed in LICENSE.) + +* Curtis Wensley diff --git a/azure-pipelines.yml b/azure-pipelines.yml new file mode 100644 index 0000000..2f8f487 --- /dev/null +++ b/azure-pipelines.yml @@ -0,0 +1,56 @@ +variables: + solution: 'src/Eto.Toolkit.sln' + build.version: '0.1.0-ci-$(Build.BuildNumber)' + build.configuration: 'Release' + build.arguments: /restore /t:Build;Pack /p:BuildVersion=$(build.version) /p:BuildBranch=$(Build.SourceBranch) + +trigger: + - master + - refs/tags/* + +jobs: +- job: Mac + pool: + vmImage: 'macOS-10.14' + variables: + build.platform: 'Mac' + steps: + - checkout: self + submodules: true + - script: sudo $AGENT_HOMEDIRECTORY/scripts/select-xamarin-sdk.sh 5_18_1 + displayName: 'Select Xamarin SDK version' + - task: MSBuild@1 + displayName: Restore, Build and Package + inputs: + solution: '$(solution)' + platform: '$(build.platform)' + configuration: '$(build.configuration)' + msbuildArguments: '$(build.arguments)' + - task: PublishBuildArtifacts@1 + displayName: Publish nupkg + inputs: + pathtoPublish: artifacts/nuget/$(build.configuration) + artifactName: nuget + publishLocation: container + +- job: Windows + pool: + vmImage: 'windows-2019' + variables: + build.platform: 'Windows' + steps: + - checkout: self + submodules: true + - task: MSBuild@1 + displayName: Restore, Build and Package + inputs: + solution: '$(solution)' + platform: '$(build.platform)' + configuration: '$(build.configuration)' + msbuildArguments: '$(build.arguments)' + - task: PublishBuildArtifacts@1 + displayName: Publish nupkg + inputs: + pathtoPublish: artifacts/nuget/$(build.configuration) + artifactName: nuget + publishLocation: container diff --git a/build/Common.Build.props b/build/Common.Build.props index a2fc330..286b9b0 100644 --- a/build/Common.Build.props +++ b/build/Common.Build.props @@ -2,9 +2,25 @@ $(MSBuildThisFileDirectory)..\ - $(BasePath)artifacts\obj\$(OS)\$(MSBuildProjectName)\ - $(BasePath)\artifacts\$(OutputArtifactName)\ + $(BasePath)artifacts\ + $(ArtifactsDir)obj\$(OS)\$(MSBuildProjectName)\ + $(ArtifactsDir)$(OutputArtifactName)\ + $(ArtifactsDir)nuget\$(Configuration)\ PackageReference + + + + $(BuildBranch.Substring(10)) + + $(BuildVersion) + + 0.1.0-dev + Eto.Toolkit Authors + MIT + https://github.com/picoe/Eto.Toolkit + Copyright (c) 2016-2019 Eto.Toolkit authors, see AUTHORS file. + + diff --git a/src/Eto.CodeEditor.Wpf/Eto.CodeEditor.Wpf.csproj b/src/Eto.CodeEditor.Wpf/Eto.CodeEditor.Wpf.csproj index 153d2d7..c51bd86 100644 --- a/src/Eto.CodeEditor.Wpf/Eto.CodeEditor.Wpf.csproj +++ b/src/Eto.CodeEditor.Wpf/Eto.CodeEditor.Wpf.csproj @@ -13,7 +13,6 @@ {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 4 - ..\..\artifacts\obj\Eto.CodeEditor.Wpf true @@ -92,6 +91,11 @@ 3.6.3 + + 5.3.0 + runtime; build; native; contentfiles; analyzers; buildtransitive + all + \ No newline at end of file diff --git a/src/Eto.CodeEditor.XamMac/Eto.CodeEditor.XamMac2.csproj b/src/Eto.CodeEditor.XamMac/Eto.CodeEditor.XamMac2.csproj index 03a2f16..99872bb 100644 --- a/src/Eto.CodeEditor.XamMac/Eto.CodeEditor.XamMac2.csproj +++ b/src/Eto.CodeEditor.XamMac/Eto.CodeEditor.XamMac2.csproj @@ -74,19 +74,12 @@ 2.4.1 - - 0.2.0 + + 5.3.0 + runtime; build; native; contentfiles; analyzers; buildtransitive + all - - - - - - - - - - + diff --git a/src/Eto.CodeEditor/Eto.CodeEditor.csproj b/src/Eto.CodeEditor/Eto.CodeEditor.csproj index 2ff5de6..0aa42c4 100644 --- a/src/Eto.CodeEditor/Eto.CodeEditor.csproj +++ b/src/Eto.CodeEditor/Eto.CodeEditor.csproj @@ -2,27 +2,8 @@ netstandard1.0 - true - 1.0.0 - - ..\..\artifacts\core\Debug - - - ..\..\artifacts\core\Release - - - - - - - - - - - - diff --git a/src/Eto.HtmlRenderer.ImageSharp/Eto.HtmlRenderer.ImageSharp.csproj b/src/Eto.HtmlRenderer.ImageSharp/Eto.HtmlRenderer.ImageSharp.csproj new file mode 100644 index 0000000..3633fbb --- /dev/null +++ b/src/Eto.HtmlRenderer.ImageSharp/Eto.HtmlRenderer.ImageSharp.csproj @@ -0,0 +1,13 @@ + + + + netstandard2.0 + + + + + + + + + diff --git a/src/Eto.HtmlRenderer/Adapters/ImageFrameAdapter.cs b/src/Eto.HtmlRenderer.ImageSharp/ImageFrameAdapter.cs similarity index 100% rename from src/Eto.HtmlRenderer/Adapters/ImageFrameAdapter.cs rename to src/Eto.HtmlRenderer.ImageSharp/ImageFrameAdapter.cs diff --git a/src/Eto.HtmlRenderer/Adapters/ImageSharpImageAdapter.cs b/src/Eto.HtmlRenderer.ImageSharp/ImageSharpImageAdapter.cs similarity index 77% rename from src/Eto.HtmlRenderer/Adapters/ImageSharpImageAdapter.cs rename to src/Eto.HtmlRenderer.ImageSharp/ImageSharpImageAdapter.cs index a52970d..87d1b95 100644 --- a/src/Eto.HtmlRenderer/Adapters/ImageSharpImageAdapter.cs +++ b/src/Eto.HtmlRenderer.ImageSharp/ImageSharpImageAdapter.cs @@ -9,7 +9,6 @@ // // - Sun Tsu, // "The Art of War" -#if USE_IMAGESHARP using Eto.Drawing; using TheArtOfDev.HtmlRenderer.Adapters; using System.Collections.Generic; @@ -19,6 +18,11 @@ using System.IO; using SixLabors.ImageSharp.Formats.Png; using System.Diagnostics; +using TheArtOfDev.HtmlRenderer.Eto.Adapters; +using SixLabors.ImageSharp.Metadata; +using SixLabors.ImageSharp.Formats.Gif; + +[assembly: Eto.ExportHandler(typeof(IImageAdapter), typeof(ImageSharpImageAdapter))] namespace TheArtOfDev.HtmlRenderer.Eto.Adapters { @@ -29,32 +33,10 @@ class ImageSharpImageAdapter : RImage, IImageAdapter Dictionary _images = new Dictionary(); - public static ImageSharpImageAdapter TryGet(Stream stream) - { - var img = SixLabors.ImageSharp.Image.Load(stream, out var format); - if (img.Frames.Count > 1 && img.Frames.Any(r => r.MetaData.FrameDelay > 0)) - { - return new ImageSharpImageAdapter(img); - } - img.Dispose(); - return null; - } - - public ImageSharpImageAdapter(SixLabors.ImageSharp.Image image, bool preloadFrames = true) - { - Image = image; - if (preloadFrames) - { - for (int i = 0; i < Frames.Count; i++) - { - GetFrame(i); - } - } - } public bool Preload { get; set; } - public SixLabors.ImageSharp.Image Image { get; } + public SixLabors.ImageSharp.Image Image { get; private set; } private Bitmap GetFrame(int currentFrame) { @@ -85,7 +67,7 @@ private IList GetFrames() { return Image .Frames - .Select(r => (RImageFrame)new ImageFrameAdapter(TimeSpan.FromMilliseconds(r.MetaData.FrameDelay * 10))) + .Select(r => (RImageFrame)new ImageFrameAdapter(TimeSpan.FromMilliseconds(GetDelay(r) * 10))) .ToList(); } @@ -94,9 +76,31 @@ public override void SetActiveFrame(int frame) _currentFrame = frame; } + int GetDelay(SixLabors.ImageSharp.ImageFrame frame) + { + var gifMetaData = frame.Metadata.GetFormatMetadata(GifFormat.Instance); + return gifMetaData?.FrameDelay ?? 0; + } + Image IImageAdapter.Image => GetFrame(_currentFrame); public override void Dispose() => Image.Dispose(); + + public bool Load(Stream stream) + { + var img = SixLabors.ImageSharp.Image.Load(stream, out var format); + if (img.Frames.Count > 1 && img.Frames.Any(r => GetDelay(r) > 0)) + { + Image = img; + for (int i = 0; i < Frames.Count; i++) + { + GetFrame(i); + } + return true; + } + img.Dispose(); + return false; + + } } -} -#endif \ No newline at end of file +} \ No newline at end of file diff --git a/src/Eto.HtmlRenderer.Mac/Eto.HtmlRenderer.Mac64.csproj b/src/Eto.HtmlRenderer.Mac/Eto.HtmlRenderer.Mac64.csproj new file mode 100644 index 0000000..666a8f6 --- /dev/null +++ b/src/Eto.HtmlRenderer.Mac/Eto.HtmlRenderer.Mac64.csproj @@ -0,0 +1,15 @@ + + + + net45 + False + + + + + + + + + + diff --git a/src/Eto.HtmlRenderer.Mac/Eto.HtmlRenderer.XamMac2.csproj b/src/Eto.HtmlRenderer.Mac/Eto.HtmlRenderer.XamMac2.csproj new file mode 100644 index 0000000..cdf523a --- /dev/null +++ b/src/Eto.HtmlRenderer.Mac/Eto.HtmlRenderer.XamMac2.csproj @@ -0,0 +1,75 @@ + + + + Debug + AnyCPU + {B5D415B5-22D9-44C9-888A-26301E76AE99} + {A3F8F2AB-B479-4A4A-A458-A89E7DC349F1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + Library + Eto.HtmlRenderer.Mac + Eto.HtmlRenderer.XamMac2 + Resources + true + v2.0 + Xamarin.Mac + + + true + full + false + ..\..\artifacts\core\Debug\net45 + DEBUG; + prompt + 4 + false + false + false + false + false + + + + None + + + true + ..\..\artifacts\core\Release\net45 + + prompt + 4 + false + false + false + false + false + + + + None + + + + + + + + + + + + {D9C153E4-6D38-4B4F-8BEE-6C9938D99CE2} + Eto.HtmlRenderer + + + + + 2.5.0-rc.4 + + + 5.3.0 + runtime; build; native; contentfiles; analyzers; buildtransitive + all + + + + \ No newline at end of file diff --git a/src/Eto.HtmlRenderer/Adapters/MacImageAdapter.cs b/src/Eto.HtmlRenderer.Mac/MacImageAdapter.cs similarity index 91% rename from src/Eto.HtmlRenderer/Adapters/MacImageAdapter.cs rename to src/Eto.HtmlRenderer.Mac/MacImageAdapter.cs index c0db127..de4f191 100644 --- a/src/Eto.HtmlRenderer/Adapters/MacImageAdapter.cs +++ b/src/Eto.HtmlRenderer.Mac/MacImageAdapter.cs @@ -1,5 +1,4 @@ -#if USE_MACIMAGE -using System; +using System; using sd = System.Drawing; using System.IO; using Eto.Drawing; @@ -7,6 +6,7 @@ using System.Linq; using TheArtOfDev.HtmlRenderer.Adapters; using System.Runtime.InteropServices; +using TheArtOfDev.HtmlRenderer.Eto.Adapters; #if __UNIFIED__ using CoreGraphics; using AppKit; @@ -19,6 +19,8 @@ using MonoMac.ObjCRuntime; #endif +[assembly: Eto.ExportHandler(typeof(IImageAdapter), typeof(MacImageAdapter))] + namespace TheArtOfDev.HtmlRenderer.Eto.Adapters { class MacImageFrame : RImageFrame, IDisposable @@ -59,13 +61,6 @@ public class MacImageAdapter : RImage, IImageAdapter NSBitmapImageRep _rep; NSImage _img; - MacImageAdapter(NSImage img, NSBitmapImageRep rep, List frames) - { - _img = img; - _rep = rep; - _frames = frames; - } - public Image Image => GetBitmap(); public override double Width => _img.Size.Width; @@ -87,26 +82,6 @@ static void SetValueForProperty(NSBitmapImageRep rep, NSString property, NSObjec Messaging.void_objc_msgSend_IntPtr_IntPtr(rep.Handle, selSetPropertyWithValueHandle, property.Handle, value.Handle); } - public static MacImageAdapter TryGet(Stream stream) - { - var img = NSImage.FromStream(stream); - var bitmapRep = img.Representations()[0] as NSBitmapImageRep; - if (bitmapRep == null) - return null; - - var frames = GetValueForProperty(bitmapRep, NSImageFrameCount) as NSNumber; - if (frames == null || frames.Int32Value <= 1) - return null; - var images = new List(); - for (var i = 0; i < frames.Int32Value; i++) - { - SetValueForProperty(bitmapRep, NSBitmapImageRep.CurrentFrame, new NSNumber(i)); - var delay = GetValueForProperty(bitmapRep, NSBitmapImageRep.CurrentFrameDuration) as NSNumber; - images.Add(new MacImageFrame(TimeSpan.FromSeconds(delay.DoubleValue))); - } - return new MacImageAdapter(img, bitmapRep, images); - } - Bitmap GetBitmap() { var frame = (MacImageFrame)_frames[_currentFrame]; @@ -139,6 +114,28 @@ public override void Dispose() _frames = null; } } + + public bool Load(Stream stream) + { + var img = NSImage.FromStream(stream); + var bitmapRep = img.Representations()[0] as NSBitmapImageRep; + if (bitmapRep == null) + return false; + + var frames = GetValueForProperty(bitmapRep, NSImageFrameCount) as NSNumber; + if (frames == null || frames.Int32Value <= 1) + return false; + var images = new List(); + for (var i = 0; i < frames.Int32Value; i++) + { + SetValueForProperty(bitmapRep, NSBitmapImageRep.CurrentFrame, new NSNumber(i)); + var delay = GetValueForProperty(bitmapRep, NSBitmapImageRep.CurrentFrameDuration) as NSNumber; + images.Add(new MacImageFrame(TimeSpan.FromSeconds(delay.DoubleValue))); + } + _img = img; + _rep = bitmapRep; + _frames = images; + return true; + } } } -#endif diff --git a/src/Eto.HtmlRenderer.Wpf/Eto.HtmlRenderer.Wpf.csproj b/src/Eto.HtmlRenderer.Wpf/Eto.HtmlRenderer.Wpf.csproj new file mode 100644 index 0000000..0b167da --- /dev/null +++ b/src/Eto.HtmlRenderer.Wpf/Eto.HtmlRenderer.Wpf.csproj @@ -0,0 +1,10 @@ + + + + net45 + + + + + + diff --git a/src/Eto.HtmlRenderer/Adapters/SystemDrawingImageAdapter.cs b/src/Eto.HtmlRenderer.Wpf/SystemDrawingImageAdapter.cs similarity index 88% rename from src/Eto.HtmlRenderer/Adapters/SystemDrawingImageAdapter.cs rename to src/Eto.HtmlRenderer.Wpf/SystemDrawingImageAdapter.cs index 93140ab..6369d13 100644 --- a/src/Eto.HtmlRenderer/Adapters/SystemDrawingImageAdapter.cs +++ b/src/Eto.HtmlRenderer.Wpf/SystemDrawingImageAdapter.cs @@ -1,5 +1,4 @@ -#if USE_SDIMAGE -using System; +using System; using sd = System.Drawing; using sdi = System.Drawing.Imaging; using System.IO; @@ -7,6 +6,9 @@ using System.Collections.Generic; using System.Linq; using TheArtOfDev.HtmlRenderer.Adapters; +using TheArtOfDev.HtmlRenderer.Eto.Adapters; + +[assembly: Eto.ExportHandler(typeof(IImageAdapter), typeof(SystemDrawingImageAdapter))] namespace TheArtOfDev.HtmlRenderer.Eto.Adapters { @@ -33,7 +35,7 @@ public Bitmap Bitmap _sdimage.Save(stream, sdi.ImageFormat.Png); stream.Position = 0; _bitmap = new Bitmap(stream); - }; + } return _bitmap; } @@ -56,32 +58,45 @@ public class SystemDrawingImageAdapter : RImage, IImageAdapter int _currentFrame; Size _size; - SystemDrawingImageAdapter(Size size, IEnumerable frames) - { - _size = size; - _frames = frames.ToList(); - } - public Image Image => ((SystemDrawingImageFrame)_frames[_currentFrame]).Bitmap; public override double Width => _size.Width; public override double Height => _size.Height; - public static SystemDrawingImageAdapter TryGet(Stream stream) + public override IList Frames => _frames; + + public override void SetActiveFrame(int frame) + { + _currentFrame = frame; + } + + public override void Dispose() + { + if (_frames != null) + { + foreach (var frame in _frames) + { + (frame as SystemDrawingImageFrame)?.Dispose(); + } + _frames = null; + } + } + + public bool Load(Stream stream) { using (var img = sd.Image.FromStream(stream)) { if (img.FrameDimensionsList.Length == 0) - return null; + return false; var dimension = new sdi.FrameDimension(img.FrameDimensionsList[0]); int frames = img.GetFrameCount(dimension); if (frames <= 1) - return null; + return false; byte[] delayBytes = img.PropertyItems.FirstOrDefault(r => r.Id == 0x5100)?.Value; if (delayBytes == null || delayBytes.Length < 4) - return null; + return false; // In mono we have to get the delay for each frame, unlike windows which returns the entire block var useFrameDelay = delayBytes.Length != frames * 4; @@ -100,7 +115,7 @@ public static SystemDrawingImageAdapter TryGet(Stream stream) { delayBytes = img.GetPropertyItem(0x5100).Value; if (delayBytes.Length < 4) - return null; + return false; delayIndex = 0; } else @@ -122,28 +137,10 @@ public static SystemDrawingImageAdapter TryGet(Stream stream) } images.Add(new SystemDrawingImageFrame(TimeSpan.FromMilliseconds(delayInMilliseconds), frameImage)); } - return new SystemDrawingImageAdapter(new Size(img.Width, img.Height), images); - } - } - - public override IList Frames => _frames; - - public override void SetActiveFrame(int frame) - { - _currentFrame = frame; - } - - public override void Dispose() - { - if (_frames != null) - { - foreach (var frame in _frames) - { - (frame as SystemDrawingImageFrame)?.Dispose(); - } - _frames = null; + _size = new Size(img.Width, img.Height); + _frames = images.ToList(); + return true; } } } -} -#endif +} \ No newline at end of file diff --git a/src/Eto.HtmlRenderer/Adapters/EtoAdapter.cs b/src/Eto.HtmlRenderer/Adapters/EtoAdapter.cs index ffb4aba..eb77f0e 100644 --- a/src/Eto.HtmlRenderer/Adapters/EtoAdapter.cs +++ b/src/Eto.HtmlRenderer/Adapters/EtoAdapter.cs @@ -139,18 +139,15 @@ protected override RImage ConvertImageInt(object image) RImage adapter = null; // todo: remove when Eto supports extracting frames from GIF files directly. -#if USE_SDIMAGE - if (adapter == null) - adapter = SystemDrawingImageAdapter.TryGet(stream); -#endif -#if USE_MACIMAGE - if (adapter == null) - adapter = MacImageAdapter.TryGet(stream); -#endif -#if USE_IMAGESHARP - if (adapter == null) - adapter = ImageSharpImageAdapter.TryGet(stream); -#endif + + // use platform-specific adapters to support image animation + if (global::Eto.Platform.Instance.Supports()) + { + var imageAdapter = global::Eto.Platform.Instance.Create(); + if (imageAdapter.Load(stream)) + adapter = (RImage)imageAdapter; + } + if (adapter != null) return adapter; diff --git a/src/Eto.HtmlRenderer/Adapters/IImageAdapter.cs b/src/Eto.HtmlRenderer/Adapters/IImageAdapter.cs index 79ebff7..bedc9ff 100644 --- a/src/Eto.HtmlRenderer/Adapters/IImageAdapter.cs +++ b/src/Eto.HtmlRenderer/Adapters/IImageAdapter.cs @@ -10,6 +10,7 @@ // - Sun Tsu, // "The Art of War" +using System.IO; using Eto.Drawing; namespace TheArtOfDev.HtmlRenderer.Eto.Adapters @@ -17,5 +18,7 @@ namespace TheArtOfDev.HtmlRenderer.Eto.Adapters public interface IImageAdapter { Image Image { get; } + + bool Load(Stream stream); } } diff --git a/src/Eto.HtmlRenderer/Adapters/ImageAdapter.cs b/src/Eto.HtmlRenderer/Adapters/ImageAdapter.cs index dc46dc1..a8a888d 100644 --- a/src/Eto.HtmlRenderer/Adapters/ImageAdapter.cs +++ b/src/Eto.HtmlRenderer/Adapters/ImageAdapter.cs @@ -10,6 +10,8 @@ // - Sun Tsu, // "The Art of War" +using System.Collections.Generic; +using System.IO; using Eto.Drawing; using TheArtOfDev.HtmlRenderer.Adapters; @@ -30,15 +32,26 @@ public ImageAdapter(Image image) Image = image; } + public ImageAdapter() + { + } + /// /// the underline Eto image. /// - public Image Image { get; } + public Image Image { get; private set; } public override double Width => Image.Width; public override double Height => Image.Height; public override void Dispose() => Image.Dispose(); + + public bool Load(Stream stream) + { + Image?.Dispose(); + Image = new Bitmap(stream); + return true; + } } } \ No newline at end of file diff --git a/src/Eto.HtmlRenderer/Eto.HtmlRenderer.csproj b/src/Eto.HtmlRenderer/Eto.HtmlRenderer.csproj index 7854b34..6e3b210 100644 --- a/src/Eto.HtmlRenderer/Eto.HtmlRenderer.csproj +++ b/src/Eto.HtmlRenderer/Eto.HtmlRenderer.csproj @@ -3,8 +3,11 @@ net45;netstandard2.0 ..\..\lib\HtmlRenderer\ - True - True + + HtmlRenderer control for Eto.Forms + Provides a control to use in Eto.Forms that displays HTML content. +Use one of the platform-specific nuget packages, or Eto.HtmlRenderer.ImageSharp to enable animated GIF support. + @@ -24,46 +27,4 @@ - - - - - - - $(DefineConstants);USE_IMAGESHARP - - - - - - - - - - $(DefineConstants);USE_SDIMAGE - - - - - - - - - - $(DefineConstants);USE_MACIMAGE - False - - - - - - - - - - $(DefineConstants);USE_MACIMAGE;__UNIFIED__ - False - - - diff --git a/src/Eto.Toolkit.sln b/src/Eto.Toolkit.sln index 3cbe5de..d3fb800 100644 --- a/src/Eto.Toolkit.sln +++ b/src/Eto.Toolkit.sln @@ -1,8 +1,8 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27130.2010 +# Visual Studio Version 16 +VisualStudioVersion = 16.0.29326.143 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Eto.CodeEditor", "Eto.CodeEditor\Eto.CodeEditor.csproj", "{9AC91936-41E2-4481-980E-80FF089FEB8A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Eto.CodeEditor", "Eto.CodeEditor\Eto.CodeEditor.csproj", "{9AC91936-41E2-4481-980E-80FF089FEB8A}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Eto.CodeEditor.XamMac2", "Eto.CodeEditor.XamMac\Eto.CodeEditor.XamMac2.csproj", "{160DE3A8-EDD5-4256-9433-87DAEC4CF259}" EndProject @@ -10,13 +10,13 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Eto.CodeEditor.Wpf", "Eto.C EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "CodeEditor", "CodeEditor", "{646F64B2-57A5-4096-854F-F83D981AF1E8}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Eto.CodeEditor.TestAppWin", "..\test\Eto.CodeEditor.TestAppWin\Eto.CodeEditor.TestAppWin.csproj", "{2BF83FDA-9BFF-4A1E-8C58-1EAC435DEED6}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Eto.CodeEditor.TestAppWin", "..\test\Eto.CodeEditor.TestAppWin\Eto.CodeEditor.TestAppWin.csproj", "{2BF83FDA-9BFF-4A1E-8C58-1EAC435DEED6}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Scintilla.XamMac2", "Scintilla.XamMac2\Scintilla.XamMac2.csproj", "{810B1BCD-8E09-4F69-8726-B6ED91E243E7}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Eto.CodeEditor.TestAppMac", "..\test\Eto.CodeEditor.TestAppMac\Eto.CodeEditor.TestAppMac.csproj", "{DD626F6E-2487-41A7-8D97-B3F673EC117B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Eto.CodeEditor.TestApp", "..\test\Eto.CodeEditor.TestApp\Eto.CodeEditor.TestApp.csproj", "{FD97E2D4-5D8E-46F8-B952-1A2B2E07BA1B}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Eto.CodeEditor.TestApp", "..\test\Eto.CodeEditor.TestApp\Eto.CodeEditor.TestApp.csproj", "{FD97E2D4-5D8E-46F8-B952-1A2B2E07BA1B}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "HtmlRenderer", "HtmlRenderer", "{C5C9E1F4-B112-4BDE-A589-722E87D63962}" EndProject @@ -24,6 +24,24 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Eto.HtmlRenderer", "Eto.Htm EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Eto.HtmlRenderer.TestApp", "..\test\Eto.HtmlRenderer.TestApp\Eto.HtmlRenderer.TestApp.csproj", "{9AEA3FBB-2199-46CC-BD67-FE5A9D4681BB}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Eto.HtmlRenderer.Wpf", "Eto.HtmlRenderer.Wpf\Eto.HtmlRenderer.Wpf.csproj", "{CBC22717-A7E5-428A-97E0-30D5C71737DC}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Eto.HtmlRenderer.ImageSharp", "Eto.HtmlRenderer.ImageSharp\Eto.HtmlRenderer.ImageSharp.csproj", "{364EDFB1-8C1A-46B1-A9F7-B9D7F9417E55}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Eto.HtmlRenderer.Mac64", "Eto.HtmlRenderer.Mac\Eto.HtmlRenderer.Mac64.csproj", "{F9D593CA-8448-466D-BC47-A1753E3949FD}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Build", "Build", "{23803176-E117-455E-9B80-15AA3C0D8BD2}" + ProjectSection(SolutionItems) = preProject + ..\build\Common.Build.props = ..\build\Common.Build.props + ..\build\Common.Build.targets = ..\build\Common.Build.targets + Directory.Build.props = Directory.Build.props + Directory.Build.targets = Directory.Build.targets + NuGet.Config = NuGet.Config + ..\azure-pipelines.yml = ..\azure-pipelines.yml + EndProjectSection +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Eto.HtmlRenderer.XamMac2", "Eto.HtmlRenderer.Mac\Eto.HtmlRenderer.XamMac2.csproj", "{B5D415B5-22D9-44C9-888A-26301E76AE99}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Mac = Debug|Mac @@ -50,7 +68,6 @@ Global {835EF387-1702-49FF-B1B1-41C3D0CDF8B9}.Debug|Windows.ActiveCfg = Debug|Any CPU {835EF387-1702-49FF-B1B1-41C3D0CDF8B9}.Debug|Windows.Build.0 = Debug|Any CPU {835EF387-1702-49FF-B1B1-41C3D0CDF8B9}.Release|Mac.ActiveCfg = Release|Any CPU - {835EF387-1702-49FF-B1B1-41C3D0CDF8B9}.Release|Mac.Build.0 = Release|Any CPU {835EF387-1702-49FF-B1B1-41C3D0CDF8B9}.Release|Windows.ActiveCfg = Release|Any CPU {835EF387-1702-49FF-B1B1-41C3D0CDF8B9}.Release|Windows.Build.0 = Release|Any CPU {2BF83FDA-9BFF-4A1E-8C58-1EAC435DEED6}.Debug|Mac.ActiveCfg = Debug|Any CPU @@ -95,6 +112,34 @@ Global {9AEA3FBB-2199-46CC-BD67-FE5A9D4681BB}.Release|Mac.Build.0 = Release|Any CPU {9AEA3FBB-2199-46CC-BD67-FE5A9D4681BB}.Release|Windows.ActiveCfg = Release|Any CPU {9AEA3FBB-2199-46CC-BD67-FE5A9D4681BB}.Release|Windows.Build.0 = Release|Any CPU + {CBC22717-A7E5-428A-97E0-30D5C71737DC}.Debug|Mac.ActiveCfg = Debug|Any CPU + {CBC22717-A7E5-428A-97E0-30D5C71737DC}.Debug|Windows.ActiveCfg = Debug|Any CPU + {CBC22717-A7E5-428A-97E0-30D5C71737DC}.Debug|Windows.Build.0 = Debug|Any CPU + {CBC22717-A7E5-428A-97E0-30D5C71737DC}.Release|Mac.ActiveCfg = Release|Any CPU + {CBC22717-A7E5-428A-97E0-30D5C71737DC}.Release|Windows.ActiveCfg = Release|Any CPU + {CBC22717-A7E5-428A-97E0-30D5C71737DC}.Release|Windows.Build.0 = Release|Any CPU + {364EDFB1-8C1A-46B1-A9F7-B9D7F9417E55}.Debug|Mac.ActiveCfg = Debug|Any CPU + {364EDFB1-8C1A-46B1-A9F7-B9D7F9417E55}.Debug|Mac.Build.0 = Debug|Any CPU + {364EDFB1-8C1A-46B1-A9F7-B9D7F9417E55}.Debug|Windows.ActiveCfg = Debug|Any CPU + {364EDFB1-8C1A-46B1-A9F7-B9D7F9417E55}.Debug|Windows.Build.0 = Debug|Any CPU + {364EDFB1-8C1A-46B1-A9F7-B9D7F9417E55}.Release|Mac.ActiveCfg = Release|Any CPU + {364EDFB1-8C1A-46B1-A9F7-B9D7F9417E55}.Release|Mac.Build.0 = Release|Any CPU + {364EDFB1-8C1A-46B1-A9F7-B9D7F9417E55}.Release|Windows.ActiveCfg = Release|Any CPU + {364EDFB1-8C1A-46B1-A9F7-B9D7F9417E55}.Release|Windows.Build.0 = Release|Any CPU + {F9D593CA-8448-466D-BC47-A1753E3949FD}.Debug|Mac.ActiveCfg = Debug|Any CPU + {F9D593CA-8448-466D-BC47-A1753E3949FD}.Debug|Mac.Build.0 = Debug|Any CPU + {F9D593CA-8448-466D-BC47-A1753E3949FD}.Debug|Windows.ActiveCfg = Debug|Any CPU + {F9D593CA-8448-466D-BC47-A1753E3949FD}.Debug|Windows.Build.0 = Debug|Any CPU + {F9D593CA-8448-466D-BC47-A1753E3949FD}.Release|Mac.ActiveCfg = Release|Any CPU + {F9D593CA-8448-466D-BC47-A1753E3949FD}.Release|Mac.Build.0 = Release|Any CPU + {F9D593CA-8448-466D-BC47-A1753E3949FD}.Release|Windows.ActiveCfg = Release|Any CPU + {F9D593CA-8448-466D-BC47-A1753E3949FD}.Release|Windows.Build.0 = Release|Any CPU + {B5D415B5-22D9-44C9-888A-26301E76AE99}.Debug|Mac.ActiveCfg = Debug|Any CPU + {B5D415B5-22D9-44C9-888A-26301E76AE99}.Debug|Mac.Build.0 = Debug|Any CPU + {B5D415B5-22D9-44C9-888A-26301E76AE99}.Debug|Windows.ActiveCfg = Debug|Any CPU + {B5D415B5-22D9-44C9-888A-26301E76AE99}.Release|Mac.ActiveCfg = Release|Any CPU + {B5D415B5-22D9-44C9-888A-26301E76AE99}.Release|Mac.Build.0 = Release|Any CPU + {B5D415B5-22D9-44C9-888A-26301E76AE99}.Release|Windows.ActiveCfg = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -109,6 +154,10 @@ Global {FD97E2D4-5D8E-46F8-B952-1A2B2E07BA1B} = {646F64B2-57A5-4096-854F-F83D981AF1E8} {D9C153E4-6D38-4B4F-8BEE-6C9938D99CE2} = {C5C9E1F4-B112-4BDE-A589-722E87D63962} {9AEA3FBB-2199-46CC-BD67-FE5A9D4681BB} = {C5C9E1F4-B112-4BDE-A589-722E87D63962} + {CBC22717-A7E5-428A-97E0-30D5C71737DC} = {C5C9E1F4-B112-4BDE-A589-722E87D63962} + {364EDFB1-8C1A-46B1-A9F7-B9D7F9417E55} = {C5C9E1F4-B112-4BDE-A589-722E87D63962} + {F9D593CA-8448-466D-BC47-A1753E3949FD} = {C5C9E1F4-B112-4BDE-A589-722E87D63962} + {B5D415B5-22D9-44C9-888A-26301E76AE99} = {C5C9E1F4-B112-4BDE-A589-722E87D63962} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {B290EE1E-3782-4C57-A127-FD078514CD8C} diff --git a/src/Scintilla.XamMac2/Scintilla.XamMac2.csproj b/src/Scintilla.XamMac2/Scintilla.XamMac2.csproj index 8b275bd..5afd805 100644 --- a/src/Scintilla.XamMac2/Scintilla.XamMac2.csproj +++ b/src/Scintilla.XamMac2/Scintilla.XamMac2.csproj @@ -63,15 +63,8 @@ False + + + - - - - - - - - - - \ No newline at end of file diff --git a/test/Eto.CodeEditor.TestApp/Eto.CodeEditor.TestApp.csproj b/test/Eto.CodeEditor.TestApp/Eto.CodeEditor.TestApp.csproj index 474fb44..4e806b6 100644 --- a/test/Eto.CodeEditor.TestApp/Eto.CodeEditor.TestApp.csproj +++ b/test/Eto.CodeEditor.TestApp/Eto.CodeEditor.TestApp.csproj @@ -2,14 +2,9 @@ netstandard1.0 + False - - ..\..\artifacts\test\Debug - - - ..\..\artifacts\test\Release - diff --git a/test/Eto.CodeEditor.TestAppMac/Eto.CodeEditor.TestAppMac.csproj b/test/Eto.CodeEditor.TestAppMac/Eto.CodeEditor.TestAppMac.csproj index c9bca57..573c75e 100644 --- a/test/Eto.CodeEditor.TestAppMac/Eto.CodeEditor.TestAppMac.csproj +++ b/test/Eto.CodeEditor.TestAppMac/Eto.CodeEditor.TestAppMac.csproj @@ -10,12 +10,13 @@ Eto.CodeEditor.Test.XamMac2 Resources true + False true full false - ..\..\artifacts\test\Debug + ..\..\artifacts\test\Debug\net45 DEBUG; prompt 4 @@ -35,7 +36,7 @@ pdbonly true - ..\..\artifacts\test\Release + ..\..\artifacts\test\Release\net45 prompt @@ -103,5 +104,8 @@ 2.4.1 + + + \ No newline at end of file diff --git a/test/Eto.CodeEditor.TestAppWin/Eto.CodeEditor.TestAppWin.csproj b/test/Eto.CodeEditor.TestAppWin/Eto.CodeEditor.TestAppWin.csproj index 09d7006..4ef5716 100644 --- a/test/Eto.CodeEditor.TestAppWin/Eto.CodeEditor.TestAppWin.csproj +++ b/test/Eto.CodeEditor.TestAppWin/Eto.CodeEditor.TestAppWin.csproj @@ -4,14 +4,9 @@ WinExe net45 AnyCPU + False - - ..\..\artifacts\test\Debug - - - ..\..\artifacts\test\Release - diff --git a/test/Eto.HtmlRenderer.TestApp/Eto.HtmlRenderer.TestApp.csproj b/test/Eto.HtmlRenderer.TestApp/Eto.HtmlRenderer.TestApp.csproj index 940c74a..127fef5 100644 --- a/test/Eto.HtmlRenderer.TestApp/Eto.HtmlRenderer.TestApp.csproj +++ b/test/Eto.HtmlRenderer.TestApp/Eto.HtmlRenderer.TestApp.csproj @@ -4,6 +4,7 @@ WinExe net461 $(BasePath)\artifacts\test\$(Configuration) + False @@ -16,10 +17,13 @@ + + + - - - + + + diff --git a/test/Eto.HtmlRenderer.TestApp/Program.cs b/test/Eto.HtmlRenderer.TestApp/Program.cs index cdf2a37..741150f 100644 --- a/test/Eto.HtmlRenderer.TestApp/Program.cs +++ b/test/Eto.HtmlRenderer.TestApp/Program.cs @@ -9,7 +9,12 @@ class Program [STAThread] static void Main(string[] args) { - new Application(Eto.Platform.Detect).Run(new MainForm()); + var platform = Eto.Platform.Detect; + + // test using ImageSharp + //platform.LoadAssembly("Eto.HtmlRenderer.ImageSharp"); + + new Application(platform).Run(new MainForm()); } } -} \ No newline at end of file +}