Browse Source

Single menu context menus working. (#1808)

pull/1813/head
WojciechKrysiak 8 years ago
committed by Nelson Carrillo
parent
commit
dbe8f748c9
  1. 14
      src/OSX/Avalonia.MonoMac/PopupImpl.cs
  2. 16
      src/OSX/Avalonia.MonoMac/WindowBaseImpl.cs

14
src/OSX/Avalonia.MonoMac/PopupImpl.cs

@ -8,11 +8,23 @@ namespace Avalonia.MonoMac
public PopupImpl()
{
UpdateStyle();
Window.Level = NSWindowLevel.PopUpMenu;
}
protected override NSWindowStyle GetStyle()
{
return NSWindowStyle.Borderless;
}
protected override CustomWindow CreateCustomWindow() => new CustomPopupWindow(this);
private class CustomPopupWindow : CustomWindow
{
public CustomPopupWindow(WindowBaseImpl impl)
: base(impl)
{ }
public override bool WorksWhenModal() => true;
}
}
}
}

16
src/OSX/Avalonia.MonoMac/WindowBaseImpl.cs

@ -19,14 +19,13 @@ namespace Avalonia.MonoMac
public WindowBaseImpl()
{
_managedDrag = new ManagedWindowResizeDragHelper(this, _ => { }, ResizeForManagedDrag);
Window = new CustomWindow(this)
{
StyleMask = NSWindowStyle.Titled,
BackingType = NSBackingStore.Buffered,
ContentView = View,
// ReSharper disable once VirtualMemberCallInConstructor
Delegate = CreateWindowDelegate()
};
// ReSharper disable once VirtualMemberCallInConstructor
Window = CreateCustomWindow();
Window.StyleMask = NSWindowStyle.Titled;
Window.BackingType = NSBackingStore.Buffered;
Window.ContentView = View;
// ReSharper disable once VirtualMemberCallInConstructor
Window.Delegate = CreateWindowDelegate();
}
public class CustomWindow : NSWindow
@ -57,6 +56,7 @@ namespace Avalonia.MonoMac
public void SetCanBecomeKeyAndMain() => _canBecomeKeyAndMain = true;
}
protected virtual CustomWindow CreateCustomWindow() => new CustomWindow(this);
protected virtual NSWindowDelegate CreateWindowDelegate() => new WindowBaseDelegate(this);
public class WindowBaseDelegate : NSWindowDelegate

Loading…
Cancel
Save