|
|
|
@ -1,6 +1,7 @@ |
|
|
|
using System; |
|
|
|
using System.Collections.Generic; |
|
|
|
using System.Collections.Specialized; |
|
|
|
using System.Linq; |
|
|
|
using System.Text; |
|
|
|
using Avalonia.Controls; |
|
|
|
using Avalonia.Controls.Platform; |
|
|
|
@ -47,6 +48,7 @@ namespace Avalonia.Native |
|
|
|
private bool _resetQueued; |
|
|
|
private bool _exported = false; |
|
|
|
private IAvnWindow _nativeWindow; |
|
|
|
private bool _prependAppMenu; |
|
|
|
private List<NativeMenuItem> _menuItems = new List<NativeMenuItem>(); |
|
|
|
|
|
|
|
public AvaloniaNativeMenuExporter(IAvnWindow nativeWindow, IAvaloniaNativeFactory factory) |
|
|
|
@ -74,7 +76,7 @@ namespace Avalonia.Native |
|
|
|
|
|
|
|
public void SetPrependApplicationMenu(bool prepend) |
|
|
|
{ |
|
|
|
throw new NotImplementedException(); |
|
|
|
_prependAppMenu = prepend; |
|
|
|
} |
|
|
|
|
|
|
|
private void OnItemPropertyChanged(object sender, AvaloniaPropertyChangedEventArgs e) |
|
|
|
@ -235,6 +237,17 @@ namespace Avalonia.Native |
|
|
|
|
|
|
|
private void SetMenu(IAvnWindow avnWindow, ICollection<NativeMenuItem> menuItems) |
|
|
|
{ |
|
|
|
if (_prependAppMenu) |
|
|
|
{ |
|
|
|
var menu = NativeMenu.GetMenu(Application.Current); |
|
|
|
|
|
|
|
var items = menuItems.ToList(); |
|
|
|
|
|
|
|
items.InsertRange(0, menu.Items); |
|
|
|
|
|
|
|
menuItems = items; |
|
|
|
} |
|
|
|
|
|
|
|
var appMenu = avnWindow.ObtainMainMenu(); |
|
|
|
|
|
|
|
if(appMenu is null) |
|
|
|
|