From 8520eb32bc164b6ad648da7daeebd6c213597df0 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Sun, 22 Sep 2019 11:07:43 +0100 Subject: [PATCH] add scafolding for native osx menu --- .../AvaloniaNativeMenuExporter.cs | 25 +++++++++++++++++++ src/Avalonia.Native/WindowImpl.cs | 8 +++++- 2 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 src/Avalonia.Native/AvaloniaNativeMenuExporter.cs diff --git a/src/Avalonia.Native/AvaloniaNativeMenuExporter.cs b/src/Avalonia.Native/AvaloniaNativeMenuExporter.cs new file mode 100644 index 0000000000..76598237e2 --- /dev/null +++ b/src/Avalonia.Native/AvaloniaNativeMenuExporter.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Text; +using Avalonia.Controls; +using Avalonia.Controls.Platform; + +namespace Avalonia.Native +{ + class AvaloniaNativeMenuExporter : ITopLevelNativeMenuExporter + { + public bool IsNativeMenuExported => throw new NotImplementedException(); + + public event EventHandler OnIsNativeMenuExportedChanged; + + public void SetNativeMenu(NativeMenu menu) + { + throw new NotImplementedException(); + } + + public void SetPrependApplicationMenu(bool prepend) + { + throw new NotImplementedException(); + } + } +} diff --git a/src/Avalonia.Native/WindowImpl.cs b/src/Avalonia.Native/WindowImpl.cs index 490d5688a8..76ee52f3ab 100644 --- a/src/Avalonia.Native/WindowImpl.cs +++ b/src/Avalonia.Native/WindowImpl.cs @@ -3,13 +3,14 @@ using System; using Avalonia.Controls; +using Avalonia.Controls.Platform; using Avalonia.Native.Interop; using Avalonia.Platform; using Avalonia.Platform.Interop; namespace Avalonia.Native { - public class WindowImpl : WindowBaseImpl, IWindowImpl + public class WindowImpl : WindowBaseImpl, IWindowImpl, ITopLevelImplWithNativeMenuExporter { private readonly IAvaloniaNativeFactory _factory; private readonly AvaloniaNativePlatformOptions _opts; @@ -22,6 +23,8 @@ namespace Avalonia.Native { Init(_native = factory.CreateWindow(e), factory.CreateScreens()); } + + NativeMenuExporter = new AvaloniaNativeMenuExporter(); } class WindowEvents : WindowBaseEvents, IAvnWindowEvents @@ -104,6 +107,9 @@ namespace Avalonia.Native } public Func Closing { get; set; } + + public ITopLevelNativeMenuExporter NativeMenuExporter { get; } + public void Move(PixelPoint point) => Position = point; public override IPopupImpl CreatePopup() =>