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
+}