Browse Source

Merge branch 'master'

Conflicts:
	samples/TestApplication/TestApplication.csproj
	samples/XamlTestApplication/XamlTestApplication.csproj
	samples/XamlTestApplicationPcl/XamlTestApplicationPcl.csproj
pull/789/head
danwalmsley 10 years ago
parent
commit
78e5e29bb7
  1. 4
      Avalonia.sln
  2. 5
      appveyor.yml
  3. 54
      build.cake
  4. 2
      docs/docfx.json
  5. 2
      docs/spec/architecture.md
  6. 2
      docs/tutorial/nuget.md
  7. 6
      readme.md
  8. 4
      samples/BindingTest/BindingTest.csproj
  9. 4
      samples/BindingTest/MainWindow.xaml
  10. 18
      samples/BindingTest/ViewModels/MainWindowViewModel.cs
  11. 4
      samples/ControlCatalog.Android/ControlCatalog.Android.csproj
  12. 4
      samples/ControlCatalog.Desktop/ControlCatalog.Desktop.csproj
  13. 4
      samples/ControlCatalog.iOS/ControlCatalog.iOS.csproj
  14. 4
      samples/ControlCatalog/ControlCatalog.csproj
  15. 4
      samples/RenderTest/RenderTest.csproj
  16. 4
      samples/VirtualizationTest/VirtualizationTest.csproj
  17. 4
      samples/interop/GtkInteropDemo/GtkInteropDemo.csproj
  18. 4
      samples/interop/WindowsInteropTest/WindowsInteropTest.csproj
  19. 4
      src/Android/Avalonia.Android/Avalonia.Android.csproj
  20. 4
      src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj
  21. 10
      src/Avalonia.Base/AvaloniaObject.cs
  22. 31
      src/Avalonia.Base/Threading/AvaloniaScheduler.cs
  23. 4
      src/Avalonia.Controls/Application.cs
  24. 4
      src/Avalonia.Controls/Avalonia.Controls.csproj
  25. 5
      src/Avalonia.Controls/Generators/IItemContainerGenerator.cs
  26. 3
      src/Avalonia.Controls/Generators/ItemContainerGenerator.cs
  27. 3
      src/Avalonia.Controls/Generators/ItemContainerGenerator`1.cs
  28. 50
      src/Avalonia.Controls/ItemsControl.cs
  29. 4
      src/Avalonia.DesignerSupport/Avalonia.DesignerSupport.csproj
  30. 4
      src/Avalonia.Diagnostics/Avalonia.Diagnostics.csproj
  31. 4
      src/Avalonia.DotNetFrameworkRuntime/Avalonia.DotNetFrameworkRuntime.csproj
  32. 4
      src/Avalonia.HtmlRenderer/Avalonia.HtmlRenderer.csproj
  33. 4
      src/Avalonia.Input/Avalonia.Input.csproj
  34. 4
      src/Avalonia.Interactivity/Avalonia.Interactivity.csproj
  35. 4
      src/Avalonia.Layout/Avalonia.Layout.csproj
  36. 4
      src/Avalonia.Styling/Avalonia.Styling.csproj
  37. 4
      src/Avalonia.Themes.Default/Avalonia.Themes.Default.csproj
  38. 0
      src/Avalonia.Visuals/Animation/CrossFade.cs
  39. 0
      src/Avalonia.Visuals/Animation/IPageTransition.cs
  40. 0
      src/Avalonia.Visuals/Animation/PageSlide.cs
  41. 6
      src/Avalonia.Visuals/Avalonia.Visuals.csproj
  42. 0
      src/Avalonia.Visuals/Avalonia.Visuals.v2.ncrunchproject
  43. 0
      src/Avalonia.Visuals/INamed.cs
  44. 0
      src/Avalonia.Visuals/Matrix.cs
  45. 0
      src/Avalonia.Visuals/Media/AlignmentX.cs
  46. 0
      src/Avalonia.Visuals/Media/AlignmentY.cs
  47. 0
      src/Avalonia.Visuals/Media/ArcSegment.cs
  48. 0
      src/Avalonia.Visuals/Media/BezierSegment .cs
  49. 0
      src/Avalonia.Visuals/Media/Brush.cs
  50. 0
      src/Avalonia.Visuals/Media/BrushMappingMode.cs
  51. 0
      src/Avalonia.Visuals/Media/Brushes.cs
  52. 0
      src/Avalonia.Visuals/Media/Color.cs
  53. 0
      src/Avalonia.Visuals/Media/Colors.cs
  54. 0
      src/Avalonia.Visuals/Media/DashStyle.cs
  55. 0
      src/Avalonia.Visuals/Media/DrawingContext.cs
  56. 0
      src/Avalonia.Visuals/Media/EllipseGeometry.cs
  57. 0
      src/Avalonia.Visuals/Media/FillRule.cs
  58. 0
      src/Avalonia.Visuals/Media/FontStyle.cs
  59. 0
      src/Avalonia.Visuals/Media/FontWeight.cs
  60. 0
      src/Avalonia.Visuals/Media/FormattedText.cs
  61. 0
      src/Avalonia.Visuals/Media/FormattedTextLine.cs
  62. 0
      src/Avalonia.Visuals/Media/Geometry.cs
  63. 0
      src/Avalonia.Visuals/Media/GradientBrush.cs
  64. 0
      src/Avalonia.Visuals/Media/GradientSpreadMethod.cs
  65. 0
      src/Avalonia.Visuals/Media/GradientStop.cs
  66. 0
      src/Avalonia.Visuals/Media/IBrush.cs
  67. 0
      src/Avalonia.Visuals/Media/IDrawingContext.cs
  68. 0
      src/Avalonia.Visuals/Media/ISolidColorBrush.cs
  69. 0
      src/Avalonia.Visuals/Media/ImageBush.cs
  70. 0
      src/Avalonia.Visuals/Media/Imaging/Bitmap.cs
  71. 0
      src/Avalonia.Visuals/Media/Imaging/IBitmap.cs
  72. 0
      src/Avalonia.Visuals/Media/Imaging/RenderTargetBitmap.cs
  73. 0
      src/Avalonia.Visuals/Media/LineGeometry.cs
  74. 0
      src/Avalonia.Visuals/Media/LineSegment.cs
  75. 0
      src/Avalonia.Visuals/Media/LinearGradientBrush.cs
  76. 0
      src/Avalonia.Visuals/Media/MatrixTransform.cs
  77. 0
      src/Avalonia.Visuals/Media/MediaExtensions.cs
  78. 0
      src/Avalonia.Visuals/Media/Mutable/SolidColorBrush.cs
  79. 0
      src/Avalonia.Visuals/Media/PathFigure.cs
  80. 0
      src/Avalonia.Visuals/Media/PathGeometry.cs
  81. 0
      src/Avalonia.Visuals/Media/PathGeometryCollections.cs
  82. 0
      src/Avalonia.Visuals/Media/PathMarkupParser.cs
  83. 0
      src/Avalonia.Visuals/Media/PathSegment.cs
  84. 0
      src/Avalonia.Visuals/Media/Pen.cs
  85. 0
      src/Avalonia.Visuals/Media/PenLineCap.cs
  86. 0
      src/Avalonia.Visuals/Media/PenLineJoin.cs
  87. 0
      src/Avalonia.Visuals/Media/PolylineGeometry.cs
  88. 0
      src/Avalonia.Visuals/Media/QuadraticBezierSegment .cs
  89. 0
      src/Avalonia.Visuals/Media/RadialGradientBrush.cs
  90. 0
      src/Avalonia.Visuals/Media/RectangleGeometry.cs
  91. 0
      src/Avalonia.Visuals/Media/RotateTransform.cs
  92. 0
      src/Avalonia.Visuals/Media/ScaleTransform.cs
  93. 0
      src/Avalonia.Visuals/Media/SolidColorBrush.cs
  94. 0
      src/Avalonia.Visuals/Media/StreamGeometry.cs
  95. 0
      src/Avalonia.Visuals/Media/StreamGeometryContext.cs
  96. 0
      src/Avalonia.Visuals/Media/Stretch.cs
  97. 0
      src/Avalonia.Visuals/Media/SweepDirection.cs
  98. 0
      src/Avalonia.Visuals/Media/TextAlignment.cs
  99. 0
      src/Avalonia.Visuals/Media/TextHitTestResult.cs
  100. 0
      src/Avalonia.Visuals/Media/TextWrapping.cs

4
Avalonia.sln

@ -4,7 +4,7 @@ VisualStudioVersion = 14.0.25420.1
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Base", "src\Avalonia.Base\Avalonia.Base.csproj", "{B09B78D8-9B26-48B0-9149-D64A2F120F3F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.SceneGraph", "src\Avalonia.SceneGraph\Avalonia.SceneGraph.csproj", "{EB582467-6ABB-43A1-B052-E981BA910E3A}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Visuals", "src\Avalonia.Visuals\Avalonia.Visuals.csproj", "{EB582467-6ABB-43A1-B052-E981BA910E3A}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Layout", "src\Avalonia.Layout\Avalonia.Layout.csproj", "{42472427-4774-4C81-8AFF-9F27B8E31721}"
EndProject
@ -39,7 +39,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Styling.UnitTests"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Controls.UnitTests", "tests\Avalonia.Controls.UnitTests\Avalonia.Controls.UnitTests.csproj", "{5CCB5571-7C30-4E7D-967D-0E2158EBD91F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.SceneGraph.UnitTests", "tests\Avalonia.SceneGraph.UnitTests\Avalonia.SceneGraph.UnitTests.csproj", "{76716382-3159-460E-BDA6-C5715CF606D7}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Visuals.UnitTests", "tests\Avalonia.Visuals.UnitTests\Avalonia.Visuals.UnitTests.csproj", "{76716382-3159-460E-BDA6-C5715CF606D7}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Base.UnitTests", "tests\Avalonia.Base.UnitTests\Avalonia.Base.UnitTests.csproj", "{2905FF23-53FB-45E6-AA49-6AF47A172056}"
EndProject

5
appveyor.yml

@ -20,6 +20,11 @@ build_script:
- ps: .\build.ps1 -Target "AppVeyor" -Platform "$env:platform" -Configuration "$env:configuration"
after_build:
- .\packages\JetBrains.dotMemoryUnit.2.1.20150828.125449\tools\dotMemoryUnit.exe -targetExecutable="%xunit20%\xunit.console.x86.exe" -returnTargetExitCode --"tests\Avalonia.LeakTests\bin\Release\Avalonia.LeakTests.dll"
- "SET PATH=C:\\Python34;C:\\Python34\\Scripts;%PATH%"
- pip install codecov
- codecov -f "./artifacts/coverage.xml"
test: off
artifacts:
- path: artifacts\nuget\*.nupkg

54
build.cake

@ -10,6 +10,7 @@
///////////////////////////////////////////////////////////////////////////////
#tool "nuget:?package=xunit.runner.console&version=2.1.0"
#tool "nuget:?package=OpenCover"
///////////////////////////////////////////////////////////////////////////////
// USINGS
@ -92,6 +93,7 @@ var artifactsDir = (DirectoryPath)Directory("./artifacts");
var nugetRoot = artifactsDir.Combine("nuget");
var zipRoot = artifactsDir.Combine("zip");
var binRoot = artifactsDir.Combine("bin");
var testsRoot = artifactsDir.Combine("tests");
var dirSuffix = configuration;
var dirSuffixSkia = (isPlatformAnyCPU ? "x86" : platform) + "/" + configuration;
@ -240,8 +242,8 @@ var coreLibraries = new string[][]
new [] { "./src/", "Avalonia.Layout", ".xml" },
new [] { "./src/", "Avalonia.Logging.Serilog", ".dll" },
new [] { "./src/", "Avalonia.Logging.Serilog", ".xml" },
new [] { "./src/", "Avalonia.SceneGraph", ".dll" },
new [] { "./src/", "Avalonia.SceneGraph", ".xml" },
new [] { "./src/", "Avalonia.Visuals", ".dll" },
new [] { "./src/", "Avalonia.Visuals", ".xml" },
new [] { "./src/", "Avalonia.Styling", ".dll" },
new [] { "./src/", "Avalonia.Styling", ".xml" },
new [] { "./src/", "Avalonia.ReactiveUI", ".dll" },
@ -585,6 +587,7 @@ Task("Clean")
CleanDirectory(nugetRoot);
CleanDirectory(zipRoot);
CleanDirectory(binRoot);
CleanDirectory(testsRoot);
});
Task("Restore-NuGet-Packages")
@ -659,29 +662,56 @@ Task("Run-Unit-Tests")
if (isRunningOnWindows)
{
var windowsTests = GetFiles("./tests/Avalonia.DesignerSupport.Tests/bin/" + dirSuffix + "/*.Tests.dll") +
GetFiles("./tests/Avalonia.LeakTests/bin/" + dirSuffix + "/*.LeakTests.dll") +
GetFiles("./tests/Avalonia.RenderTests/bin/" + dirSuffix + "/*.RenderTests.dll");
var leakTests = GetFiles("./tests/Avalonia.LeakTests/bin/" + dirSuffix + "/*.LeakTests.dll");
unitTests.AddRange(windowsTests);
unitTests.AddRange(leakTests);
}
var toolPath = (isPlatformAnyCPU || isPlatformX86) ?
"./tools/xunit.runner.console/tools/xunit.console.x86.exe" :
"./tools/xunit.runner.console/tools/xunit.console.exe";
var settings = new XUnit2Settings
var xUnitSettings = new XUnit2Settings
{
ToolPath = toolPath,
Parallelism = ParallelismOption.None
Parallelism = ParallelismOption.None,
ShadowCopy = false
};
settings.NoAppDomain = !isRunningOnWindows;
xUnitSettings.NoAppDomain = !isRunningOnWindows;
foreach (var file in unitTests)
var openCoverOutput = artifactsDir.GetFilePath(new FilePath("./coverage.xml"));
var openCoverSettings = new OpenCoverSettings()
.WithFilter("+[Avalonia.*]* -[*Test*]* -[ControlCatalog*]*")
.WithFilter("-[Avalonia.*]OmniXaml.* -[Avalonia.*]Glass.*")
.WithFilter("-[Avalonia.HtmlRenderer]TheArtOfDev.HtmlRenderer.* +[Avalonia.HtmlRenderer]TheArtOfDev.HtmlRenderer.Avalonia.* -[Avalonia.ReactiveUI]*");
openCoverSettings.ReturnTargetCodeOffset = 0;
foreach(var test in unitTests.Where(testFile => FileExists(testFile)))
{
CopyDirectory(test.GetDirectory(), testsRoot);
}
var testsInDirectoryToRun = new List<FilePath>();
if(isRunningOnWindows)
{
testsInDirectoryToRun.AddRange(GetFiles("./artifacts/tests/*Tests.dll"));
}
else
{
testsInDirectoryToRun.AddRange(GetFiles("./artifacts/tests/*.UnitTests.dll"));
}
if(isRunningOnWindows)
{
OpenCover(context => {
context.XUnit2(testsInDirectoryToRun, xUnitSettings);
}, openCoverOutput, openCoverSettings);
}
else
{
Information("Running test " + file.GetFilenameWithoutExtension());
XUnit2(file.FullPath, settings);
XUnit2(testsInDirectoryToRun, xUnitSettings);
}
});

2
docs/docfx.json

@ -18,7 +18,7 @@
"/src/Avalonia.Interactivity/Avalonia.Interactivity.csproj",
"/src/Avalonia.Layout/Avalonia.Layout.csproj",
"/src/Avalonia.ReactiveUI/Avalonia.ReactiveUI.csproj",
"/src/Avalonia.SceneGraph/Avalonia.SceneGraph.csproj",
"/src/Avalonia.Visuals/Avalonia.Visuals.csproj",
"/src/Avalonia.Styling/Avalonia.Styling.csproj",
"/src/Avalonia.Themes.Default/Avalonia.Themes.Default.csproj",
"/src/Skia/Avalonia.Skia.Desktop/Avalonia.Skia.Desktop.csproj",

2
docs/spec/architecture.md

@ -40,7 +40,7 @@ The main class in the assembly is `Animatable`.
Allows AvaloniaProperties to be animated and provides various utilities related to animation.
### Avalonia.SceneGraph
### Avalonia.Visuals
The main class in this assembly is `Visual` and its interface `IVisual`.

2
docs/tutorial/nuget.md

@ -20,7 +20,7 @@ Avalonia is divided into several `NuGet` packages.
- Avalonia.Interactivity (.dll)
- Avalonia.Layout (.dll)
- Avalonia.Logging.Serilog (.dll)
- Avalonia.SceneGraph (.dll)
- Avalonia.Visuals (.dll)
- Avalonia.Styling (.dll)
- Avalonia.ReactiveUI (.dll)
- Avalonia.Themes.Default (.dll)

6
readme.md

@ -1,9 +1,9 @@
# Avalonia
[![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/AvaloniaUI/Avalonia?utm_campaign=pr-badge&utm_content=badge&utm_medium=badge&utm_source=badge)
[![Build status](https://ci.appveyor.com/api/projects/status/hubk3k0w9idyibfg/branch/master?svg=true)](https://ci.appveyor.com/project/AvaloniaUI/Avalonia/branch/master)
[![Build Status](https://travis-ci.org/AvaloniaUI/Avalonia.svg?branch=master)](https://travis-ci.org/AvaloniaUI/Avalonia)
| Gitter Chat | Windows Build Status | Linux/Mac Build Status | Code Coverage |
|---|---|---|---|
| [![Gitter](https://badges.gitter.im/Join Chat.svg)](https://gitter.im/AvaloniaUI/Avalonia?utm_campaign=pr-badge&utm_content=badge&utm_medium=badge&utm_source=badge) | [![Build status](https://ci.appveyor.com/api/projects/status/hubk3k0w9idyibfg/branch/master?svg=true)](https://ci.appveyor.com/project/AvaloniaUI/Avalonia/branch/master) | [![Build Status](https://travis-ci.org/AvaloniaUI/Avalonia.svg?branch=master)](https://travis-ci.org/AvaloniaUI/Avalonia) | [![codecov](https://codecov.io/gh/AvaloniaUI/Avalonia/branch/master/graph/badge.svg)](https://codecov.io/gh/AvaloniaUI/Avalonia) |
A multi-platform .NET UI framework. It can run on Windows, Linux, Mac OS X, iOS and Android.

4
samples/BindingTest/BindingTest.csproj

@ -148,9 +148,9 @@
<Project>{6417b24e-49c2-4985-8db2-3ab9d898ec91}</Project>
<Name>Avalonia.ReactiveUI</Name>
</ProjectReference>
<ProjectReference Include="..\..\src\Avalonia.SceneGraph\Avalonia.SceneGraph.csproj">
<ProjectReference Include="..\..\src\Avalonia.Visuals\Avalonia.Visuals.csproj">
<Project>{eb582467-6abb-43a1-b052-e981ba910e3a}</Project>
<Name>Avalonia.SceneGraph</Name>
<Name>Avalonia.Visuals</Name>
</ProjectReference>
<ProjectReference Include="..\..\src\Avalonia.Styling\Avalonia.Styling.csproj">
<Project>{f1baa01a-f176-4c6a-b39d-5b40bb1b148f}</Project>

4
samples/BindingTest/MainWindow.xaml

@ -41,6 +41,10 @@
<TextBox Watermark="Value of first TextBox" UseFloatingWatermark="True"
Text="{Binding #first.Text, Mode=TwoWay}"/>
</StackPanel>
<StackPanel Margin="18" Gap="4" Width="200" HorizontalAlignment="Left">
<TextBlock FontSize="16" Text="Scheduler"/>
<TextBox Watermark="Background Thread" Text="{Binding CurrentTime, Mode=OneWay}"/>
</StackPanel>
</StackPanel>
</StackPanel>
</TabItem>

18
samples/BindingTest/ViewModels/MainWindowViewModel.cs

@ -3,6 +3,8 @@ using System.Collections.ObjectModel;
using System.Linq;
using ReactiveUI;
using System.Reactive.Linq;
using System.Threading.Tasks;
using System.Threading;
namespace BindingTest.ViewModels
{
@ -12,6 +14,7 @@ namespace BindingTest.ViewModels
private double _doubleValue = 5.0;
private string _stringValue = "Simple Binding";
private bool _booleanFlag = false;
private string _currentTime;
public MainWindowViewModel()
{
@ -37,6 +40,15 @@ namespace BindingTest.ViewModels
BooleanFlag = !BooleanFlag;
StringValue = param.ToString();
});
Task.Run(() =>
{
while (true)
{
CurrentTime = DateTimeOffset.Now.ToString();
Thread.Sleep(1000);
}
});
}
public ObservableCollection<TestItem> Items { get; }
@ -67,6 +79,12 @@ namespace BindingTest.ViewModels
set { this.RaiseAndSetIfChanged(ref _booleanFlag, value); }
}
public string CurrentTime
{
get { return _currentTime; }
private set { this.RaiseAndSetIfChanged(ref _currentTime, value); }
}
public ReactiveCommand<object> StringValueCommand { get; }
public DataAnnotationsErrorViewModel DataAnnotationsValidation { get; } = new DataAnnotationsErrorViewModel();

4
samples/ControlCatalog.Android/ControlCatalog.Android.csproj

@ -129,9 +129,9 @@
<Project>{42472427-4774-4c81-8aff-9f27b8e31721}</Project>
<Name>Avalonia.Layout</Name>
</ProjectReference>
<ProjectReference Include="..\..\src\Avalonia.SceneGraph\Avalonia.SceneGraph.csproj">
<ProjectReference Include="..\..\src\Avalonia.Visuals\Avalonia.Visuals.csproj">
<Project>{eb582467-6abb-43a1-b052-e981ba910e3a}</Project>
<Name>Avalonia.SceneGraph</Name>
<Name>Avalonia.Visuals</Name>
</ProjectReference>
<ProjectReference Include="..\..\src\Avalonia.Styling\Avalonia.Styling.csproj">
<Project>{f1baa01a-f176-4c6a-b39d-5b40bb1b148f}</Project>

4
samples/ControlCatalog.Desktop/ControlCatalog.Desktop.csproj

@ -112,9 +112,9 @@
<Project>{B61B66A3-B82D-4875-8001-89D3394FE0C9}</Project>
<Name>Avalonia.Logging.Serilog</Name>
</ProjectReference>
<ProjectReference Include="..\..\src\Avalonia.SceneGraph\Avalonia.SceneGraph.csproj">
<ProjectReference Include="..\..\src\Avalonia.Visuals\Avalonia.Visuals.csproj">
<Project>{eb582467-6abb-43a1-b052-e981ba910e3a}</Project>
<Name>Avalonia.SceneGraph</Name>
<Name>Avalonia.Visuals</Name>
</ProjectReference>
<ProjectReference Include="..\..\src\Avalonia.Styling\Avalonia.Styling.csproj">
<Project>{F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}</Project>

4
samples/ControlCatalog.iOS/ControlCatalog.iOS.csproj

@ -144,9 +144,9 @@
<Project>{42472427-4774-4C81-8AFF-9F27B8E31721}</Project>
<Name>Avalonia.Layout</Name>
</ProjectReference>
<ProjectReference Include="..\..\src\Avalonia.SceneGraph\Avalonia.SceneGraph.csproj">
<ProjectReference Include="..\..\src\Avalonia.Visuals\Avalonia.Visuals.csproj">
<Project>{EB582467-6ABB-43A1-B052-E981BA910E3A}</Project>
<Name>Avalonia.SceneGraph</Name>
<Name>Avalonia.Visuals</Name>
</ProjectReference>
<ProjectReference Include="..\..\src\Avalonia.Styling\Avalonia.Styling.csproj">
<Project>{F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}</Project>

4
samples/ControlCatalog/ControlCatalog.csproj

@ -197,9 +197,9 @@
<Project>{6417B24E-49C2-4985-8DB2-3AB9D898EC91}</Project>
<Name>Avalonia.ReactiveUI</Name>
</ProjectReference>
<ProjectReference Include="..\..\src\Avalonia.SceneGraph\Avalonia.SceneGraph.csproj">
<ProjectReference Include="..\..\src\Avalonia.Visuals\Avalonia.Visuals.csproj">
<Project>{EB582467-6ABB-43A1-B052-E981BA910E3A}</Project>
<Name>Avalonia.SceneGraph</Name>
<Name>Avalonia.Visuals</Name>
</ProjectReference>
<ProjectReference Include="..\..\src\Avalonia.Styling\Avalonia.Styling.csproj">
<Project>{F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}</Project>

4
samples/RenderTest/RenderTest.csproj

@ -139,9 +139,9 @@
<Project>{6417b24e-49c2-4985-8db2-3ab9d898ec91}</Project>
<Name>Avalonia.ReactiveUI</Name>
</ProjectReference>
<ProjectReference Include="..\..\src\Avalonia.SceneGraph\Avalonia.SceneGraph.csproj">
<ProjectReference Include="..\..\src\Avalonia.Visuals\Avalonia.Visuals.csproj">
<Project>{eb582467-6abb-43a1-b052-e981ba910e3a}</Project>
<Name>Avalonia.SceneGraph</Name>
<Name>Avalonia.Visuals</Name>
</ProjectReference>
<ProjectReference Include="..\..\src\Avalonia.Styling\Avalonia.Styling.csproj">
<Project>{f1baa01a-f176-4c6a-b39d-5b40bb1b148f}</Project>

4
samples/VirtualizationTest/VirtualizationTest.csproj

@ -127,9 +127,9 @@
<Project>{6417b24e-49c2-4985-8db2-3ab9d898ec91}</Project>
<Name>Avalonia.ReactiveUI</Name>
</ProjectReference>
<ProjectReference Include="..\..\src\Avalonia.SceneGraph\Avalonia.SceneGraph.csproj">
<ProjectReference Include="..\..\src\Avalonia.Visuals\Avalonia.Visuals.csproj">
<Project>{eb582467-6abb-43a1-b052-e981ba910e3a}</Project>
<Name>Avalonia.SceneGraph</Name>
<Name>Avalonia.Visuals</Name>
</ProjectReference>
<ProjectReference Include="..\..\src\Avalonia.Styling\Avalonia.Styling.csproj">
<Project>{f1baa01a-f176-4c6a-b39d-5b40bb1b148f}</Project>

4
samples/interop/GtkInteropDemo/GtkInteropDemo.csproj

@ -112,9 +112,9 @@
<Project>{6417b24e-49c2-4985-8db2-3ab9d898ec91}</Project>
<Name>Avalonia.ReactiveUI</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\src\Avalonia.SceneGraph\Avalonia.SceneGraph.csproj">
<ProjectReference Include="..\..\..\src\Avalonia.Visuals\Avalonia.Visuals.csproj">
<Project>{eb582467-6abb-43a1-b052-e981ba910e3a}</Project>
<Name>Avalonia.SceneGraph</Name>
<Name>Avalonia.Visuals</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\src\Avalonia.Styling\Avalonia.Styling.csproj">
<Project>{f1baa01a-f176-4c6a-b39d-5b40bb1b148f}</Project>

4
samples/interop/WindowsInteropTest/WindowsInteropTest.csproj

@ -136,9 +136,9 @@
<Project>{6417b24e-49c2-4985-8db2-3ab9d898ec91}</Project>
<Name>Avalonia.ReactiveUI</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\src\Avalonia.SceneGraph\Avalonia.SceneGraph.csproj">
<ProjectReference Include="..\..\..\src\Avalonia.Visuals\Avalonia.Visuals.csproj">
<Project>{eb582467-6abb-43a1-b052-e981ba910e3a}</Project>
<Name>Avalonia.SceneGraph</Name>
<Name>Avalonia.Visuals</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\src\Avalonia.Styling\Avalonia.Styling.csproj">
<Project>{f1baa01a-f176-4c6a-b39d-5b40bb1b148f}</Project>

4
src/Android/Avalonia.Android/Avalonia.Android.csproj

@ -124,9 +124,9 @@
<Project>{6417b24e-49c2-4985-8db2-3ab9d898ec91}</Project>
<Name>Avalonia.ReactiveUI</Name>
</ProjectReference>
<ProjectReference Include="..\..\Avalonia.SceneGraph\Avalonia.SceneGraph.csproj">
<ProjectReference Include="..\..\Avalonia.Visuals\Avalonia.Visuals.csproj">
<Project>{eb582467-6abb-43a1-b052-e981ba910e3a}</Project>
<Name>Avalonia.SceneGraph</Name>
<Name>Avalonia.Visuals</Name>
</ProjectReference>
<ProjectReference Include="..\..\Avalonia.Styling\Avalonia.Styling.csproj">
<Project>{f1baa01a-f176-4c6a-b39d-5b40bb1b148f}</Project>

4
src/Android/Avalonia.AndroidTestApplication/Avalonia.AndroidTestApplication.csproj

@ -160,9 +160,9 @@
<Project>{6417b24e-49c2-4985-8db2-3ab9d898ec91}</Project>
<Name>Avalonia.ReactiveUI</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\src\Avalonia.SceneGraph\Avalonia.SceneGraph.csproj">
<ProjectReference Include="..\..\Avalonia.Visuals\Avalonia.Visuals.csproj">
<Project>{eb582467-6abb-43a1-b052-e981ba910e3a}</Project>
<Name>Avalonia.SceneGraph</Name>
<Name>Avalonia.Visuals</Name>
</ProjectReference>
<ProjectReference Include="..\..\..\src\Avalonia.Styling\Avalonia.Styling.csproj">
<Project>{f1baa01a-f176-4c6a-b39d-5b40bb1b148f}</Project>

10
src/Avalonia.Base/AvaloniaObject.cs

@ -12,6 +12,7 @@ using Avalonia.Diagnostics;
using Avalonia.Logging;
using Avalonia.Threading;
using Avalonia.Utilities;
using System.Reactive.Concurrency;
namespace Avalonia
{
@ -304,6 +305,11 @@ namespace Avalonia
VerifyAccess();
var description = GetDescription(source);
var scheduler = AvaloniaLocator.Current.GetService<IScheduler>() ?? ImmediateScheduler.Instance;
source = source.ObserveOn(scheduler);
if (property.IsDirect)
{
if (property.IsReadOnly)
@ -316,7 +322,7 @@ namespace Avalonia
this,
"Bound {Property} to {Binding} with priority LocalValue",
property,
GetDescription(source));
description);
IDisposable subscription = null;
@ -358,7 +364,7 @@ namespace Avalonia
this,
"Bound {Property} to {Binding} with priority {Priority}",
property,
GetDescription(source),
description,
priority);
return v.Add(source, (int)priority);

31
src/Avalonia.Base/Threading/AvaloniaScheduler.cs

@ -3,6 +3,7 @@
using System;
using System.Reactive.Concurrency;
using System.Reactive.Disposables;
namespace Avalonia.Threading
{
@ -26,13 +27,31 @@ namespace Avalonia.Threading
/// <inheritdoc/>
public override IDisposable Schedule<TState>(TState state, TimeSpan dueTime, Func<IScheduler, TState, IDisposable> action)
{
return DispatcherTimer.Run(
() =>
var composite = new CompositeDisposable(2);
if (dueTime == TimeSpan.Zero)
{
if (!Dispatcher.UIThread.CheckAccess())
{
action(this, state);
return false;
},
dueTime);
var cancellation = new CancellationDisposable();
Dispatcher.UIThread.InvokeAsync(() =>
{
if (!cancellation.Token.IsCancellationRequested)
{
composite.Add(action(this, state));
}
}, DispatcherPriority.DataBind);
composite.Add(cancellation);
}
else
{
return action(this, state);
}
}
else
{
composite.Add(DispatcherTimer.RunOnce(() => composite.Add(action(this, state)), dueTime));
}
return composite;
}
}
}

4
src/Avalonia.Controls/Application.cs

@ -11,6 +11,7 @@ using Avalonia.Layout;
using Avalonia.Rendering;
using Avalonia.Styling;
using Avalonia.Threading;
using System.Reactive.Concurrency;
namespace Avalonia
{
@ -175,7 +176,8 @@ namespace Avalonia
.Bind<IKeyboardNavigationHandler>().ToTransient<KeyboardNavigationHandler>()
.Bind<IStyler>().ToConstant(_styler)
.Bind<ILayoutManager>().ToSingleton<LayoutManager>()
.Bind<IApplicationLifecycle>().ToConstant(this);
.Bind<IApplicationLifecycle>().ToConstant(this)
.Bind<IScheduler>().ToConstant(AvaloniaScheduler.Instance);
}
}
}

4
src/Avalonia.Controls/Avalonia.Controls.csproj

@ -256,9 +256,9 @@
<Project>{42472427-4774-4C81-8AFF-9F27B8E31721}</Project>
<Name>Avalonia.Layout</Name>
</ProjectReference>
<ProjectReference Include="..\Avalonia.SceneGraph\Avalonia.SceneGraph.csproj">
<ProjectReference Include="..\Avalonia.Visuals\Avalonia.Visuals.csproj">
<Project>{EB582467-6ABB-43A1-B052-E981BA910E3A}</Project>
<Name>Avalonia.SceneGraph</Name>
<Name>Avalonia.Visuals</Name>
</ProjectReference>
<ProjectReference Include="..\Avalonia.Styling\Avalonia.Styling.csproj">
<Project>{F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}</Project>

5
src/Avalonia.Controls/Generators/IItemContainerGenerator.cs

@ -22,6 +22,11 @@ namespace Avalonia.Controls.Generators
/// </summary>
IDataTemplate ItemTemplate { get; set; }
/// <summary>
/// Gets the ContainerType, or null if its an untyped ContainerGenerator.
/// </summary>
Type ContainerType { get; }
/// <summary>
/// Signalled whenever new containers are materialized.
/// </summary>

3
src/Avalonia.Controls/Generators/ItemContainerGenerator.cs

@ -50,6 +50,9 @@ namespace Avalonia.Controls.Generators
/// </summary>
public IControl Owner { get; }
/// <inheritdoc/>
public virtual Type ContainerType => null;
/// <inheritdoc/>
public ItemContainerInfo Materialize(
int index,

3
src/Avalonia.Controls/Generators/ItemContainerGenerator`1.cs

@ -34,6 +34,9 @@ namespace Avalonia.Controls.Generators
ContentTemplateProperty = contentTemplateProperty;
}
/// <inheritdoc/>
public override Type ContainerType => typeof(T);
/// <summary>
/// Gets the container's Content property.
/// </summary>

50
src/Avalonia.Controls/ItemsControl.cs

@ -4,7 +4,6 @@
using System.Collections;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using Avalonia.Collections;
using Avalonia.Controls.Generators;
@ -226,19 +225,35 @@ namespace Avalonia.Controls
/// <param name="e">The details of the containers.</param>
protected virtual void OnContainersMaterialized(ItemContainerEventArgs e)
{
var toAdd = new List<ILogical>();
foreach (var container in e.Containers)
{
// If the item is its own container, then it will be added to the logical tree when
// it was added to the Items collection.
if (container.ContainerControl != null && container.ContainerControl != container.Item)
{
toAdd.Add(container.ContainerControl);
if (ItemContainerGenerator.ContainerType == null)
{
var containerControl = container.ContainerControl as ContentPresenter;
if (containerControl != null)
{
((ISetLogicalParent)containerControl).SetParent(this);
containerControl.SetValue(TemplatedParentProperty, null);
containerControl.UpdateChild();
if (containerControl.Child != null)
{
LogicalChildren.Add(containerControl.Child);
}
}
}
else
{
LogicalChildren.Add(container.ContainerControl);
}
}
}
LogicalChildren.AddRange(toAdd);
}
/// <summary>
@ -248,19 +263,32 @@ namespace Avalonia.Controls
/// <param name="e">The details of the containers.</param>
protected virtual void OnContainersDematerialized(ItemContainerEventArgs e)
{
var toRemove = new List<ILogical>();
foreach (var container in e.Containers)
{
// If the item is its own container, then it will be removed from the logical tree
// when it is removed from the Items collection.
if (container?.ContainerControl != container?.Item)
{
toRemove.Add(container.ContainerControl);
if (ItemContainerGenerator.ContainerType == null)
{
var containerControl = container.ContainerControl as ContentPresenter;
if (containerControl != null)
{
((ISetLogicalParent)containerControl).SetParent(null);
if (containerControl.Child != null)
{
LogicalChildren.Remove(containerControl.Child);
}
}
}
else
{
LogicalChildren.Remove(container.ContainerControl);
}
}
}
LogicalChildren.RemoveAll(toRemove);
}
/// <summary>

4
src/Avalonia.DesignerSupport/Avalonia.DesignerSupport.csproj

@ -73,9 +73,9 @@
<Project>{42472427-4774-4C81-8AFF-9F27B8E31721}</Project>
<Name>Avalonia.Layout</Name>
</ProjectReference>
<ProjectReference Include="..\Avalonia.SceneGraph\Avalonia.SceneGraph.csproj">
<ProjectReference Include="..\Avalonia.Visuals\Avalonia.Visuals.csproj">
<Project>{EB582467-6ABB-43A1-B052-E981BA910E3A}</Project>
<Name>Avalonia.SceneGraph</Name>
<Name>Avalonia.Visuals</Name>
</ProjectReference>
<ProjectReference Include="..\Avalonia.Styling\Avalonia.Styling.csproj">
<Project>{F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}</Project>

4
src/Avalonia.Diagnostics/Avalonia.Diagnostics.csproj

@ -78,9 +78,9 @@
<Project>{6417B24E-49C2-4985-8DB2-3AB9D898EC91}</Project>
<Name>Avalonia.ReactiveUI</Name>
</ProjectReference>
<ProjectReference Include="..\Avalonia.SceneGraph\Avalonia.SceneGraph.csproj">
<ProjectReference Include="..\Avalonia.Visuals\Avalonia.Visuals.csproj">
<Project>{EB582467-6ABB-43A1-B052-E981BA910E3A}</Project>
<Name>Avalonia.SceneGraph</Name>
<Name>Avalonia.Visuals</Name>
</ProjectReference>
<ProjectReference Include="..\Avalonia.Styling\Avalonia.Styling.csproj">
<Project>{F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}</Project>

4
src/Avalonia.DotNetFrameworkRuntime/Avalonia.DotNetFrameworkRuntime.csproj

@ -65,9 +65,9 @@
<Project>{D2221C82-4A25-4583-9B43-D791E3F6820C}</Project>
<Name>Avalonia.Controls</Name>
</ProjectReference>
<ProjectReference Include="..\Avalonia.SceneGraph\Avalonia.SceneGraph.csproj">
<ProjectReference Include="..\Avalonia.Visuals\Avalonia.Visuals.csproj">
<Project>{eb582467-6abb-43a1-b052-e981ba910e3a}</Project>
<Name>Avalonia.SceneGraph</Name>
<Name>Avalonia.Visuals</Name>
</ProjectReference>
<ProjectReference Include="..\Avalonia.Styling\Avalonia.Styling.csproj">
<Project>{f1baa01a-f176-4c6a-b39d-5b40bb1b148f}</Project>

4
src/Avalonia.HtmlRenderer/Avalonia.HtmlRenderer.csproj

@ -161,9 +161,9 @@
<Project>{42472427-4774-4C81-8AFF-9F27B8E31721}</Project>
<Name>Avalonia.Layout</Name>
</ProjectReference>
<ProjectReference Include="..\Avalonia.SceneGraph\Avalonia.SceneGraph.csproj">
<ProjectReference Include="..\Avalonia.Visuals\Avalonia.Visuals.csproj">
<Project>{EB582467-6ABB-43A1-B052-E981BA910E3A}</Project>
<Name>Avalonia.SceneGraph</Name>
<Name>Avalonia.Visuals</Name>
</ProjectReference>
<ProjectReference Include="..\Avalonia.Styling\Avalonia.Styling.csproj">
<Project>{F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}</Project>

4
src/Avalonia.Input/Avalonia.Input.csproj

@ -58,9 +58,9 @@
<Project>{42472427-4774-4C81-8AFF-9F27B8E31721}</Project>
<Name>Avalonia.Layout</Name>
</ProjectReference>
<ProjectReference Include="..\Avalonia.SceneGraph\Avalonia.SceneGraph.csproj">
<ProjectReference Include="..\Avalonia.Visuals\Avalonia.Visuals.csproj">
<Project>{EB582467-6ABB-43A1-B052-E981BA910E3A}</Project>
<Name>Avalonia.SceneGraph</Name>
<Name>Avalonia.Visuals</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>

4
src/Avalonia.Interactivity/Avalonia.Interactivity.csproj

@ -54,9 +54,9 @@
<Project>{42472427-4774-4C81-8AFF-9F27B8E31721}</Project>
<Name>Avalonia.Layout</Name>
</ProjectReference>
<ProjectReference Include="..\Avalonia.SceneGraph\Avalonia.SceneGraph.csproj">
<ProjectReference Include="..\Avalonia.Visuals\Avalonia.Visuals.csproj">
<Project>{EB582467-6ABB-43A1-B052-E981BA910E3A}</Project>
<Name>Avalonia.SceneGraph</Name>
<Name>Avalonia.Visuals</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>

4
src/Avalonia.Layout/Avalonia.Layout.csproj

@ -50,9 +50,9 @@
<Project>{B09B78D8-9B26-48B0-9149-D64A2F120F3F}</Project>
<Name>Avalonia.Base</Name>
</ProjectReference>
<ProjectReference Include="..\Avalonia.SceneGraph\Avalonia.SceneGraph.csproj">
<ProjectReference Include="..\Avalonia.Visuals\Avalonia.Visuals.csproj">
<Project>{EB582467-6ABB-43A1-B052-E981BA910E3A}</Project>
<Name>Avalonia.SceneGraph</Name>
<Name>Avalonia.Visuals</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>

4
src/Avalonia.Styling/Avalonia.Styling.csproj

@ -111,9 +111,9 @@
<Project>{B09B78D8-9B26-48B0-9149-D64A2F120F3F}</Project>
<Name>Avalonia.Base</Name>
</ProjectReference>
<ProjectReference Include="..\Avalonia.SceneGraph\Avalonia.SceneGraph.csproj">
<ProjectReference Include="..\Avalonia.Visuals\Avalonia.Visuals.csproj">
<Project>{EB582467-6ABB-43A1-B052-E981BA910E3A}</Project>
<Name>Avalonia.SceneGraph</Name>
<Name>Avalonia.Visuals</Name>
</ProjectReference>
</ItemGroup>
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\Portable\$(TargetFrameworkVersion)\Microsoft.Portable.CSharp.targets" />

4
src/Avalonia.Themes.Default/Avalonia.Themes.Default.csproj

@ -68,9 +68,9 @@
<Project>{42472427-4774-4C81-8AFF-9F27B8E31721}</Project>
<Name>Avalonia.Layout</Name>
</ProjectReference>
<ProjectReference Include="..\Avalonia.SceneGraph\Avalonia.SceneGraph.csproj">
<ProjectReference Include="..\Avalonia.Visuals\Avalonia.Visuals.csproj">
<Project>{EB582467-6ABB-43A1-B052-E981BA910E3A}</Project>
<Name>Avalonia.SceneGraph</Name>
<Name>Avalonia.Visuals</Name>
</ProjectReference>
<ProjectReference Include="..\Avalonia.Styling\Avalonia.Styling.csproj">
<Project>{F1BAA01A-F176-4C6A-B39D-5B40BB1B148F}</Project>

0
src/Avalonia.SceneGraph/Animation/CrossFade.cs → src/Avalonia.Visuals/Animation/CrossFade.cs

0
src/Avalonia.SceneGraph/Animation/IPageTransition.cs → src/Avalonia.Visuals/Animation/IPageTransition.cs

0
src/Avalonia.SceneGraph/Animation/PageSlide.cs → src/Avalonia.Visuals/Animation/PageSlide.cs

6
src/Avalonia.SceneGraph/Avalonia.SceneGraph.csproj → src/Avalonia.Visuals/Avalonia.Visuals.csproj

@ -9,7 +9,7 @@
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Avalonia</RootNamespace>
<AssemblyName>Avalonia.SceneGraph</AssemblyName>
<AssemblyName>Avalonia.Visuals</AssemblyName>
<DefaultLanguage>en-US</DefaultLanguage>
<FileAlignment>512</FileAlignment>
<ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
@ -26,7 +26,7 @@
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<DocumentationFile>bin\Debug\Avalonia.SceneGraph.XML</DocumentationFile>
<DocumentationFile>bin\Debug\Avalonia.Visuals.xml</DocumentationFile>
<NoWarn>CS1591</NoWarn>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
@ -36,7 +36,7 @@
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<DocumentationFile>bin\Release\Avalonia.SceneGraph.XML</DocumentationFile>
<DocumentationFile>bin\Release\Avalonia.Visuals.xml</DocumentationFile>
<NoWarn>CS1591</NoWarn>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
</PropertyGroup>

0
src/Avalonia.SceneGraph/Avalonia.SceneGraph.v2.ncrunchproject → src/Avalonia.Visuals/Avalonia.Visuals.v2.ncrunchproject

0
src/Avalonia.SceneGraph/INamed.cs → src/Avalonia.Visuals/INamed.cs

0
src/Avalonia.SceneGraph/Matrix.cs → src/Avalonia.Visuals/Matrix.cs

0
src/Avalonia.SceneGraph/Media/AlignmentX.cs → src/Avalonia.Visuals/Media/AlignmentX.cs

0
src/Avalonia.SceneGraph/Media/AlignmentY.cs → src/Avalonia.Visuals/Media/AlignmentY.cs

0
src/Avalonia.SceneGraph/Media/ArcSegment.cs → src/Avalonia.Visuals/Media/ArcSegment.cs

0
src/Avalonia.SceneGraph/Media/BezierSegment .cs → src/Avalonia.Visuals/Media/BezierSegment .cs

0
src/Avalonia.SceneGraph/Media/Brush.cs → src/Avalonia.Visuals/Media/Brush.cs

0
src/Avalonia.SceneGraph/Media/BrushMappingMode.cs → src/Avalonia.Visuals/Media/BrushMappingMode.cs

0
src/Avalonia.SceneGraph/Media/Brushes.cs → src/Avalonia.Visuals/Media/Brushes.cs

0
src/Avalonia.SceneGraph/Media/Color.cs → src/Avalonia.Visuals/Media/Color.cs

0
src/Avalonia.SceneGraph/Media/Colors.cs → src/Avalonia.Visuals/Media/Colors.cs

0
src/Avalonia.SceneGraph/Media/DashStyle.cs → src/Avalonia.Visuals/Media/DashStyle.cs

0
src/Avalonia.SceneGraph/Media/DrawingContext.cs → src/Avalonia.Visuals/Media/DrawingContext.cs

0
src/Avalonia.SceneGraph/Media/EllipseGeometry.cs → src/Avalonia.Visuals/Media/EllipseGeometry.cs

0
src/Avalonia.SceneGraph/Media/FillRule.cs → src/Avalonia.Visuals/Media/FillRule.cs

0
src/Avalonia.SceneGraph/Media/FontStyle.cs → src/Avalonia.Visuals/Media/FontStyle.cs

0
src/Avalonia.SceneGraph/Media/FontWeight.cs → src/Avalonia.Visuals/Media/FontWeight.cs

0
src/Avalonia.SceneGraph/Media/FormattedText.cs → src/Avalonia.Visuals/Media/FormattedText.cs

0
src/Avalonia.SceneGraph/Media/FormattedTextLine.cs → src/Avalonia.Visuals/Media/FormattedTextLine.cs

0
src/Avalonia.SceneGraph/Media/Geometry.cs → src/Avalonia.Visuals/Media/Geometry.cs

0
src/Avalonia.SceneGraph/Media/GradientBrush.cs → src/Avalonia.Visuals/Media/GradientBrush.cs

0
src/Avalonia.SceneGraph/Media/GradientSpreadMethod.cs → src/Avalonia.Visuals/Media/GradientSpreadMethod.cs

0
src/Avalonia.SceneGraph/Media/GradientStop.cs → src/Avalonia.Visuals/Media/GradientStop.cs

0
src/Avalonia.SceneGraph/Media/IBrush.cs → src/Avalonia.Visuals/Media/IBrush.cs

0
src/Avalonia.SceneGraph/Media/IDrawingContext.cs → src/Avalonia.Visuals/Media/IDrawingContext.cs

0
src/Avalonia.SceneGraph/Media/ISolidColorBrush.cs → src/Avalonia.Visuals/Media/ISolidColorBrush.cs

0
src/Avalonia.SceneGraph/Media/ImageBush.cs → src/Avalonia.Visuals/Media/ImageBush.cs

0
src/Avalonia.SceneGraph/Media/Imaging/Bitmap.cs → src/Avalonia.Visuals/Media/Imaging/Bitmap.cs

0
src/Avalonia.SceneGraph/Media/Imaging/IBitmap.cs → src/Avalonia.Visuals/Media/Imaging/IBitmap.cs

0
src/Avalonia.SceneGraph/Media/Imaging/RenderTargetBitmap.cs → src/Avalonia.Visuals/Media/Imaging/RenderTargetBitmap.cs

0
src/Avalonia.SceneGraph/Media/LineGeometry.cs → src/Avalonia.Visuals/Media/LineGeometry.cs

0
src/Avalonia.SceneGraph/Media/LineSegment.cs → src/Avalonia.Visuals/Media/LineSegment.cs

0
src/Avalonia.SceneGraph/Media/LinearGradientBrush.cs → src/Avalonia.Visuals/Media/LinearGradientBrush.cs

0
src/Avalonia.SceneGraph/Media/MatrixTransform.cs → src/Avalonia.Visuals/Media/MatrixTransform.cs

0
src/Avalonia.SceneGraph/Media/MediaExtensions.cs → src/Avalonia.Visuals/Media/MediaExtensions.cs

0
src/Avalonia.SceneGraph/Media/Mutable/SolidColorBrush.cs → src/Avalonia.Visuals/Media/Mutable/SolidColorBrush.cs

0
src/Avalonia.SceneGraph/Media/PathFigure.cs → src/Avalonia.Visuals/Media/PathFigure.cs

0
src/Avalonia.SceneGraph/Media/PathGeometry.cs → src/Avalonia.Visuals/Media/PathGeometry.cs

0
src/Avalonia.SceneGraph/Media/PathGeometryCollections.cs → src/Avalonia.Visuals/Media/PathGeometryCollections.cs

0
src/Avalonia.SceneGraph/Media/PathMarkupParser.cs → src/Avalonia.Visuals/Media/PathMarkupParser.cs

0
src/Avalonia.SceneGraph/Media/PathSegment.cs → src/Avalonia.Visuals/Media/PathSegment.cs

0
src/Avalonia.SceneGraph/Media/Pen.cs → src/Avalonia.Visuals/Media/Pen.cs

0
src/Avalonia.SceneGraph/Media/PenLineCap.cs → src/Avalonia.Visuals/Media/PenLineCap.cs

0
src/Avalonia.SceneGraph/Media/PenLineJoin.cs → src/Avalonia.Visuals/Media/PenLineJoin.cs

0
src/Avalonia.SceneGraph/Media/PolylineGeometry.cs → src/Avalonia.Visuals/Media/PolylineGeometry.cs

0
src/Avalonia.SceneGraph/Media/QuadraticBezierSegment .cs → src/Avalonia.Visuals/Media/QuadraticBezierSegment .cs

0
src/Avalonia.SceneGraph/Media/RadialGradientBrush.cs → src/Avalonia.Visuals/Media/RadialGradientBrush.cs

0
src/Avalonia.SceneGraph/Media/RectangleGeometry.cs → src/Avalonia.Visuals/Media/RectangleGeometry.cs

0
src/Avalonia.SceneGraph/Media/RotateTransform.cs → src/Avalonia.Visuals/Media/RotateTransform.cs

0
src/Avalonia.SceneGraph/Media/ScaleTransform.cs → src/Avalonia.Visuals/Media/ScaleTransform.cs

0
src/Avalonia.SceneGraph/Media/SolidColorBrush.cs → src/Avalonia.Visuals/Media/SolidColorBrush.cs

0
src/Avalonia.SceneGraph/Media/StreamGeometry.cs → src/Avalonia.Visuals/Media/StreamGeometry.cs

0
src/Avalonia.SceneGraph/Media/StreamGeometryContext.cs → src/Avalonia.Visuals/Media/StreamGeometryContext.cs

0
src/Avalonia.SceneGraph/Media/Stretch.cs → src/Avalonia.Visuals/Media/Stretch.cs

0
src/Avalonia.SceneGraph/Media/SweepDirection.cs → src/Avalonia.Visuals/Media/SweepDirection.cs

0
src/Avalonia.SceneGraph/Media/TextAlignment.cs → src/Avalonia.Visuals/Media/TextAlignment.cs

0
src/Avalonia.SceneGraph/Media/TextHitTestResult.cs → src/Avalonia.Visuals/Media/TextHitTestResult.cs

0
src/Avalonia.SceneGraph/Media/TextWrapping.cs → src/Avalonia.Visuals/Media/TextWrapping.cs

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save