Browse Source

implement app menu osx.

pull/2978/head
Dan Walmsley 6 years ago
parent
commit
c17058c9aa
  1. 5
      native/Avalonia.Native/src/OSX/menu.mm
  2. 9
      src/Avalonia.Native/AvaloniaNativeMenuExporter.cs

5
native/Avalonia.Native/src/OSX/menu.mm

@ -159,7 +159,10 @@ HRESULT AvnAppMenu::RemoveItem (IAvnAppMenuItem* item)
HRESULT AvnAppMenu::SetTitle (void* utf8String)
{
[_native setTitle:[NSString stringWithUTF8String:(const char*)utf8String]];
if (utf8String != nullptr)
{
[_native setTitle:[NSString stringWithUTF8String:(const char*)utf8String]];
}
return S_OK;
}

9
src/Avalonia.Native/AvaloniaNativeMenuExporter.cs

@ -54,6 +54,8 @@ namespace Avalonia.Native
{
_factory = factory;
_nativeWindow = nativeWindow;
DoLayoutReset();
}
public bool IsNativeMenuExported => _exported;
@ -107,7 +109,7 @@ namespace Avalonia.Native
_menuItems.Clear();
SetMenu(_nativeWindow, _menu.Items);
SetMenu(_nativeWindow, _menu?.Items);
_exported = true;
}
@ -236,6 +238,11 @@ namespace Avalonia.Native
private void SetMenu(IAvnWindow avnWindow, ICollection<NativeMenuItem> menuItems)
{
if (menuItems is null)
{
menuItems = new List<NativeMenuItem>();
}
var menu = NativeMenu.GetMenu(Application.Current);
if (menu != null)

Loading…
Cancel
Save