From 30b81f1ded2753d08c1023a5cbb7c08012794e96 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Tue, 19 May 2020 14:20:44 -0300 Subject: [PATCH] Add stubs for transparency in other toplevel impls. --- .../Embedding/Offscreen/OffscreenTopLevelImpl.cs | 6 ++++++ src/Avalonia.DesignerSupport/Remote/Stubs.cs | 4 ++++ src/Avalonia.Native/WindowImplBase.cs | 4 ++++ src/Avalonia.X11/X11Window.cs | 4 ++++ .../Avalonia.LinuxFramebuffer/FramebufferToplevelImpl.cs | 6 ++++++ 5 files changed, 24 insertions(+) diff --git a/src/Avalonia.Controls/Embedding/Offscreen/OffscreenTopLevelImpl.cs b/src/Avalonia.Controls/Embedding/Offscreen/OffscreenTopLevelImpl.cs index 29f0374301..5d7c968173 100644 --- a/src/Avalonia.Controls/Embedding/Offscreen/OffscreenTopLevelImpl.cs +++ b/src/Avalonia.Controls/Embedding/Offscreen/OffscreenTopLevelImpl.cs @@ -49,6 +49,9 @@ namespace Avalonia.Controls.Embedding.Offscreen public Action Paint { get; set; } public Action Resized { get; set; } public Action ScalingChanged { get; set; } + + public Action TransparencyLevelChanged { get; set; } + public void SetInputRoot(IInputRoot inputRoot) => InputRoot = inputRoot; public virtual Point PointToClient(PixelPoint point) => point.ToPoint(1); @@ -61,6 +64,9 @@ namespace Avalonia.Controls.Embedding.Offscreen public Action Closed { get; set; } public abstract IMouseDevice MouseDevice { get; } + + public WindowTransparencyLevel TransparencyLevel { get => WindowTransparencyLevel.None; set { } } + public IPopupImpl CreatePopup() => null; } } diff --git a/src/Avalonia.DesignerSupport/Remote/Stubs.cs b/src/Avalonia.DesignerSupport/Remote/Stubs.cs index 484cf3bc97..0b5d2cb2b9 100644 --- a/src/Avalonia.DesignerSupport/Remote/Stubs.cs +++ b/src/Avalonia.DesignerSupport/Remote/Stubs.cs @@ -37,6 +37,8 @@ namespace Avalonia.DesignerSupport.Remote public WindowState WindowState { get; set; } public Action WindowStateChanged { get; set; } + public Action TransparencyLevelChanged { get; set; } + public WindowStub(IWindowImpl parent = null) { if (parent != null) @@ -141,6 +143,8 @@ namespace Avalonia.DesignerSupport.Remote public IPopupPositioner PopupPositioner { get; } public Action GotInputWhenDisabled { get; set; } + + public WindowTransparencyLevel TransparencyLevel { get => WindowTransparencyLevel.None; set { } } } class ClipboardStub : IClipboard diff --git a/src/Avalonia.Native/WindowImplBase.cs b/src/Avalonia.Native/WindowImplBase.cs index 47127fafe0..3b616ef76b 100644 --- a/src/Avalonia.Native/WindowImplBase.cs +++ b/src/Avalonia.Native/WindowImplBase.cs @@ -369,6 +369,8 @@ namespace Avalonia.Native Action ITopLevelImpl.ScalingChanged { get; set; } + public Action TransparencyLevelChanged { get; set; } + public IScreenImpl Screen { get; private set; } // TODO @@ -389,6 +391,8 @@ namespace Avalonia.Native _native.BeginDragAndDropOperation(effects, point, clipboard, callback, sourceHandle); } + public WindowTransparencyLevel TransparencyLevel { get => WindowTransparencyLevel.None; set { } } + public IPlatformHandle Handle { get; private set; } } } diff --git a/src/Avalonia.X11/X11Window.cs b/src/Avalonia.X11/X11Window.cs index 643b037b3f..84f0b8c877 100644 --- a/src/Avalonia.X11/X11Window.cs +++ b/src/Avalonia.X11/X11Window.cs @@ -300,6 +300,9 @@ namespace Avalonia.X11 public Action Activated { get; set; } public Func Closing { get; set; } public Action WindowStateChanged { get; set; } + + public Action TransparencyLevelChanged { get; set; } + public Action Closed { get; set; } public Action PositionChanged { get; set; } @@ -1083,5 +1086,6 @@ namespace Avalonia.X11 public IPopupPositioner PopupPositioner { get; } public ITopLevelNativeMenuExporter NativeMenuExporter { get; } + public WindowTransparencyLevel TransparencyLevel { get; set; } } } diff --git a/src/Linux/Avalonia.LinuxFramebuffer/FramebufferToplevelImpl.cs b/src/Linux/Avalonia.LinuxFramebuffer/FramebufferToplevelImpl.cs index 9844cdc03b..fa518bafec 100644 --- a/src/Linux/Avalonia.LinuxFramebuffer/FramebufferToplevelImpl.cs +++ b/src/Linux/Avalonia.LinuxFramebuffer/FramebufferToplevelImpl.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using Avalonia.Controls; using Avalonia.Input; using Avalonia.Input.Raw; using Avalonia.LinuxFramebuffer.Input; @@ -70,6 +71,9 @@ namespace Avalonia.LinuxFramebuffer public Action Paint { get; set; } public Action Resized { get; set; } public Action ScalingChanged { get; set; } + + public Action TransparencyLevelChanged { get; set; } + public Action Closed { get; set; } public event Action LostFocus { @@ -78,5 +82,7 @@ namespace Avalonia.LinuxFramebuffer } public Size ScaledSize => _outputBackend.PixelSize.ToSize(Scaling); + + public WindowTransparencyLevel TransparencyLevel { get => WindowTransparencyLevel.None; set { } } } }