From 6c729fa79eca0949dfcfc799293ee0f98a135e3a Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Thu, 18 Oct 2018 12:34:35 +0300 Subject: [PATCH] Line endings and csproj integration --- Avalonia.sln | 26 +++ src/Avalonia.Native/Avalonia.Native.csproj | 62 +++--- src/Avalonia.Native/AvaloniaNativePlatform.cs | 183 +++++++++--------- .../AvaloniaNativePlatformExtensions.cs | 34 ++-- .../PlatformThreadingInterface.cs | 4 +- src/Avalonia.Native/ScreenImpl.cs | 40 ++-- 6 files changed, 187 insertions(+), 162 deletions(-) diff --git a/Avalonia.sln b/Avalonia.sln index f71a94888d..0883e051c1 100644 --- a/Avalonia.sln +++ b/Avalonia.sln @@ -188,6 +188,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Avalonia.Skia.UnitTests", " EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.OpenGL", "src\Avalonia.OpenGL\Avalonia.OpenGL.csproj", "{7CCAEFC4-135D-401D-BDDD-896B9B7D3569}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Avalonia.Native", "src\Avalonia.Native\Avalonia.Native.csproj", "{12A91A62-C064-42CA-9A8C-A1272F354388}" +EndProject Global GlobalSection(SharedMSBuildProjectFiles) = preSolution src\Shared\RenderHelpers\RenderHelpers.projitems*{3c4c0cb4-0c0f-4450-a37b-148c84ff905f}*SharedItemsImports = 13 @@ -1689,6 +1691,30 @@ Global {7CCAEFC4-135D-401D-BDDD-896B9B7D3569}.Release|iPhone.Build.0 = Release|Any CPU {7CCAEFC4-135D-401D-BDDD-896B9B7D3569}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU {7CCAEFC4-135D-401D-BDDD-896B9B7D3569}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {12A91A62-C064-42CA-9A8C-A1272F354388}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU + {12A91A62-C064-42CA-9A8C-A1272F354388}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU + {12A91A62-C064-42CA-9A8C-A1272F354388}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU + {12A91A62-C064-42CA-9A8C-A1272F354388}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU + {12A91A62-C064-42CA-9A8C-A1272F354388}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {12A91A62-C064-42CA-9A8C-A1272F354388}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU + {12A91A62-C064-42CA-9A8C-A1272F354388}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU + {12A91A62-C064-42CA-9A8C-A1272F354388}.AppStore|Any CPU.Build.0 = Debug|Any CPU + {12A91A62-C064-42CA-9A8C-A1272F354388}.AppStore|iPhone.ActiveCfg = Debug|Any CPU + {12A91A62-C064-42CA-9A8C-A1272F354388}.AppStore|iPhone.Build.0 = Debug|Any CPU + {12A91A62-C064-42CA-9A8C-A1272F354388}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {12A91A62-C064-42CA-9A8C-A1272F354388}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU + {12A91A62-C064-42CA-9A8C-A1272F354388}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {12A91A62-C064-42CA-9A8C-A1272F354388}.Debug|Any CPU.Build.0 = Debug|Any CPU + {12A91A62-C064-42CA-9A8C-A1272F354388}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {12A91A62-C064-42CA-9A8C-A1272F354388}.Debug|iPhone.Build.0 = Debug|Any CPU + {12A91A62-C064-42CA-9A8C-A1272F354388}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {12A91A62-C064-42CA-9A8C-A1272F354388}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {12A91A62-C064-42CA-9A8C-A1272F354388}.Release|Any CPU.ActiveCfg = Release|Any CPU + {12A91A62-C064-42CA-9A8C-A1272F354388}.Release|Any CPU.Build.0 = Release|Any CPU + {12A91A62-C064-42CA-9A8C-A1272F354388}.Release|iPhone.ActiveCfg = Release|Any CPU + {12A91A62-C064-42CA-9A8C-A1272F354388}.Release|iPhone.Build.0 = Release|Any CPU + {12A91A62-C064-42CA-9A8C-A1272F354388}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {12A91A62-C064-42CA-9A8C-A1272F354388}.Release|iPhoneSimulator.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/src/Avalonia.Native/Avalonia.Native.csproj b/src/Avalonia.Native/Avalonia.Native.csproj index fdcc5afd5c..8407a1b3f6 100644 --- a/src/Avalonia.Native/Avalonia.Native.csproj +++ b/src/Avalonia.Native/Avalonia.Native.csproj @@ -1,31 +1,31 @@ - - - - netstandard2.0 - /usr/local/bin/castxml - true - $(MSBuildThisFileDirectory)/Generated - - - - - - - - - - - - - - - - - - - runtimes/osx/native/libAvaloniaNative.dylib - true - PreserveNewest - - - + + + + netstandard2.0 + /usr/bin/castxml + /usr/local/bin/castxml + + true + $(MSBuildThisFileDirectory)/Generated + + + + + + + + + + + + + + + + + runtimes/osx/native/libAvaloniaNative.dylib + true + PreserveNewest + + + diff --git a/src/Avalonia.Native/AvaloniaNativePlatform.cs b/src/Avalonia.Native/AvaloniaNativePlatform.cs index 9fc1677611..0b5d71039d 100644 --- a/src/Avalonia.Native/AvaloniaNativePlatform.cs +++ b/src/Avalonia.Native/AvaloniaNativePlatform.cs @@ -1,7 +1,6 @@ -// Copyright (c) The Avalonia Project. All rights reserved. -// Licensed under the MIT license. See licence.md file in the project root for full license information. - -using System; +// Copyright (c) The Avalonia Project. All rights reserved. +// Licensed under the MIT license. See licence.md file in the project root for full license information. +using System; using System.Diagnostics.Contracts; using System.Runtime.InteropServices; using Avalonia.Controls.Platform; @@ -12,72 +11,72 @@ using Avalonia.OpenGL; using Avalonia.Platform; using Avalonia.Rendering; -namespace Avalonia.Native -{ - class AvaloniaNativePlatform : IPlatformSettings, IWindowingPlatform +namespace Avalonia.Native +{ + class AvaloniaNativePlatform : IPlatformSettings, IWindowingPlatform { private readonly IAvaloniaNativeFactory _factory; - [DllImport("libAvaloniaNative")] - static extern IntPtr CreateAvaloniaNative(); - - internal static readonly MouseDevice MouseDevice = new MouseDevice(); + [DllImport("libAvaloniaNative")] + static extern IntPtr CreateAvaloniaNative(); + + internal static readonly MouseDevice MouseDevice = new MouseDevice(); internal static readonly KeyboardDevice KeyboardDevice = new KeyboardDevice(); public Size DoubleClickSize => new Size(4, 4); public TimeSpan DoubleClickTime => TimeSpan.FromMilliseconds(500); //TODO - public static void Initialize(IntPtr factory, Action configure) - { - new AvaloniaNativePlatform(new IAvaloniaNativeFactory(factory)) - .DoInitialize(configure); + public static void Initialize(IntPtr factory, Action configure) + { + new AvaloniaNativePlatform(new IAvaloniaNativeFactory(factory)) + .DoInitialize(configure); + } + + delegate IntPtr CreateAvaloniaNativeDelegate(); + + public static void Initialize(string library, Action configure) + { + var loader = RuntimeInformation.IsOSPlatform(OSPlatform.Windows) + ? (IDynLoader)new Win32Loader() : new UnixLoader(); + var lib = loader.LoadLibrary(library); + var proc = loader.GetProcAddress(lib, "CreateAvaloniaNative", false); + var d = Marshal.GetDelegateForFunctionPointer(proc); + + + Initialize(d(), configure); } - - delegate IntPtr CreateAvaloniaNativeDelegate(); - - public static void Initialize(string library, Action configure) - { - var loader = RuntimeInformation.IsOSPlatform(OSPlatform.Windows) - ? (IDynLoader)new Win32Loader() : new UnixLoader(); - var lib = loader.LoadLibrary(library); - var proc = loader.GetProcAddress(lib, "CreateAvaloniaNative", false); - var d = Marshal.GetDelegateForFunctionPointer(proc); - - - Initialize(d(), configure); - } - - public static void Initialize(Action configure) - { - Initialize(CreateAvaloniaNative(), configure); - } - - private AvaloniaNativePlatform(IAvaloniaNativeFactory factory) + + public static void Initialize(Action configure) { - _factory = factory; - } - - void DoInitialize(Action configure) - { - var opts = new AvaloniaNativeOptions(_factory); - configure?.Invoke(opts); - _factory.Initialize(); - - AvaloniaLocator.CurrentMutable - .Bind().ToConstant(new PlatformThreadingInterface(_factory.CreatePlatformThreadingInterface())) - .Bind().ToConstant(new CursorFactory(_factory.CreateCursorFactory())) - .Bind().ToSingleton() - .Bind().ToConstant(KeyboardDevice) - .Bind().ToConstant(MouseDevice) - .Bind().ToConstant(this) - .Bind().ToConstant(this) - .Bind().ToConstant(new ClipboardImpl(_factory.CreateClipboard())) - .Bind().ToConstant(new RenderLoop()) - .Bind().ToConstant(new DefaultRenderTimer(60)) - .Bind().ToConstant(new SystemDialogs(_factory.CreateSystemDialogs())) - .Bind().ToConstant(new GlPlatformFeature(_factory.ObtainGlFeature())) - .Bind().ToConstant(opts); + Initialize(CreateAvaloniaNative(), configure); + } + + private AvaloniaNativePlatform(IAvaloniaNativeFactory factory) + { + _factory = factory; + } + + void DoInitialize(Action configure) + { + var opts = new AvaloniaNativeOptions(_factory); + configure?.Invoke(opts); + _factory.Initialize(); + + AvaloniaLocator.CurrentMutable + .Bind().ToConstant(new PlatformThreadingInterface(_factory.CreatePlatformThreadingInterface())) + .Bind().ToConstant(new CursorFactory(_factory.CreateCursorFactory())) + .Bind().ToSingleton() + .Bind().ToConstant(KeyboardDevice) + .Bind().ToConstant(MouseDevice) + .Bind().ToConstant(this) + .Bind().ToConstant(this) + .Bind().ToConstant(new ClipboardImpl(_factory.CreateClipboard())) + .Bind().ToConstant(new RenderLoop()) + .Bind().ToConstant(new DefaultRenderTimer(60)) + .Bind().ToConstant(new SystemDialogs(_factory.CreateSystemDialogs())) + .Bind().ToConstant(new GlPlatformFeature(_factory.ObtainGlFeature())) + .Bind().ToConstant(opts); } public IWindowImpl CreateWindow() @@ -91,43 +90,43 @@ namespace Avalonia.Native } public IPopupImpl CreatePopup() - { + { return new PopupImpl(_factory); } - } - - public class AvaloniaNativeMacOptions + } + + public class AvaloniaNativeMacOptions { private readonly IAvnMacOptions _opts; private bool _showInDock; - internal AvaloniaNativeMacOptions(IAvnMacOptions opts) - { - _opts = opts; - ShowInDock = true; - } - - public bool ShowInDock - { - get => _showInDock; - set - { - _showInDock = value; - _opts.ShowInDock = value ? 1 : 0; - } - } - } - - public class AvaloniaNativeOptions - { - public AvaloniaNativeMacOptions MacOptions { get; set; } - public bool UseDeferredRendering { get; set; } = true; + internal AvaloniaNativeMacOptions(IAvnMacOptions opts) + { + _opts = opts; + ShowInDock = true; + } + + public bool ShowInDock + { + get => _showInDock; + set + { + _showInDock = value; + _opts.ShowInDock = value ? 1 : 0; + } + } + } + + public class AvaloniaNativeOptions + { + public AvaloniaNativeMacOptions MacOptions { get; set; } + public bool UseDeferredRendering { get; set; } = true; public bool UseGpu { get; set; } = false; - internal AvaloniaNativeOptions(IAvaloniaNativeFactory factory) - { - var mac = factory.GetMacOptions(); - if (mac != null) + internal AvaloniaNativeOptions(IAvaloniaNativeFactory factory) + { + var mac = factory.GetMacOptions(); + if (mac != null) MacOptions = new AvaloniaNativeMacOptions(mac); - } - - } -} + } + + } +} diff --git a/src/Avalonia.Native/AvaloniaNativePlatformExtensions.cs b/src/Avalonia.Native/AvaloniaNativePlatformExtensions.cs index d455eb47bc..b14a313546 100644 --- a/src/Avalonia.Native/AvaloniaNativePlatformExtensions.cs +++ b/src/Avalonia.Native/AvaloniaNativePlatformExtensions.cs @@ -1,29 +1,29 @@ -// Copyright (c) The Avalonia Project. All rights reserved. -// Licensed under the MIT license. See licence.md file in the project root for full license information. - -using System; +// Copyright (c) The Avalonia Project. All rights reserved. +// Licensed under the MIT license. See licence.md file in the project root for full license information. + +using System; using Avalonia.Controls; using Avalonia.Native; - -namespace Avalonia + +namespace Avalonia { - public static class AvaloniaNativePlatformExtensions + public static class AvaloniaNativePlatformExtensions { public static T UseAvaloniaNative(this T builder, - string libraryPath = null, + string libraryPath = null, Action configure = null) - where T : AppBuilderBase, new() - { + where T : AppBuilderBase, new() + { if (libraryPath == null) { builder.UseWindowingSubsystem(() => AvaloniaNativePlatform.Initialize(configure)); - } + } else { builder.UseWindowingSubsystem(() => AvaloniaNativePlatform.Initialize(libraryPath, configure)); - } - - return builder; - } - } -} + } + + return builder; + } + } +} diff --git a/src/Avalonia.Native/PlatformThreadingInterface.cs b/src/Avalonia.Native/PlatformThreadingInterface.cs index 514ddf03a9..5f215b3c2d 100644 --- a/src/Avalonia.Native/PlatformThreadingInterface.cs +++ b/src/Avalonia.Native/PlatformThreadingInterface.cs @@ -1,4 +1,4 @@ -// Copyright (c) The Avalonia Project. All rights reserved. +// Copyright (c) The Avalonia Project. All rights reserved. // Licensed under the MIT license. See licence.md file in the project root for full license information. using System; @@ -49,7 +49,7 @@ namespace Avalonia.Native _native = native; using (var cb = new SignaledCallback(this)) _native.SignaledCallback = cb; - } + } public bool CurrentThreadIsLoopThread => _native.CurrentThreadIsLoopThread; diff --git a/src/Avalonia.Native/ScreenImpl.cs b/src/Avalonia.Native/ScreenImpl.cs index c956cb09ff..079062c254 100644 --- a/src/Avalonia.Native/ScreenImpl.cs +++ b/src/Avalonia.Native/ScreenImpl.cs @@ -1,44 +1,44 @@ -// Copyright (c) The Avalonia Project. All rights reserved. -// Licensed under the MIT license. See licence.md file in the project root for full license information. - -using System; -using Avalonia.Native.Interop; +// Copyright (c) The Avalonia Project. All rights reserved. +// Licensed under the MIT license. See licence.md file in the project root for full license information. + +using System; +using Avalonia.Native.Interop; using Avalonia.Platform; namespace Avalonia.Native { class ScreenImpl : IScreenImpl, IDisposable { - private IAvnScreens _native; - + private IAvnScreens _native; + public ScreenImpl(IAvnScreens native) { _native = native; - } + } public int ScreenCount => _native.GetScreenCount(); - public Screen[] AllScreens + public Screen[] AllScreens { get - { - var count = ScreenCount; - var result = new Screen[count]; - + { + var count = ScreenCount; + var result = new Screen[count]; + for(int i = 0; i < count; i++) - { - var screen = _native.GetScreen(i); + { + var screen = _native.GetScreen(i); result[i] = new Screen(screen.Bounds.ToAvaloniaRect(), screen.WorkingArea.ToAvaloniaRect(), screen.Primary); - } - + } + return result; } - } - + } + public void Dispose () { - _native.Dispose(); + _native.Dispose(); _native = null; } }