Browse Source

implement window title.

pull/1977/head
Dan Walmsley 8 years ago
parent
commit
eea332a468
  1. 23
      src/Avalonia.Native.OSX/window.mm
  2. 1
      src/Avalonia.Native/WindowImpl.cs
  3. 1
      src/headers/avalonia-native.h

23
src/Avalonia.Native.OSX/window.mm

@ -17,8 +17,7 @@ public:
AvnWindow* Window;
ComPtr<IAvnWindowBaseEvents> BaseEvents;
AvnPoint lastPositionSet;
NSString* _lastTitle;
WindowBaseImpl(IAvnWindowBaseEvents* events)
{
@ -28,6 +27,7 @@ public:
lastPositionSet.X = 100;
lastPositionSet.Y = 100;
_lastTitle = @"";
[Window setStyleMask:NSWindowStyleMaskBorderless];
[Window setBackingType:NSBackingStoreBuffered];
@ -46,6 +46,9 @@ public:
SetPosition(lastPositionSet);
UpdateStyle();
[Window makeKeyAndOrderFront:Window];
[Window setTitle:_lastTitle];
[Window setTitleVisibility:NSWindowTitleVisible];
return S_OK;
}
@ -891,6 +894,9 @@ private:
SetPosition(lastPositionSet);
UpdateStyle();
[Window setTitle:_lastTitle];
[Window setTitleVisibility:NSWindowTitleVisible];
[Window pollModalSession:session];
return S_OK;
@ -947,6 +953,19 @@ private:
{
_hasDecorations = value;
UpdateStyle();
return S_OK;
}
}
virtual HRESULT SetTitle (const char* title)
{
@autoreleasepool
{
_lastTitle = [NSString stringWithUTF8String:title];
[Window setTitle:_lastTitle];
[Window setTitleVisibility:NSWindowTitleVisible];
return S_OK;
}
}

1
src/Avalonia.Native/WindowImpl.cs

@ -58,6 +58,7 @@ namespace Avalonia.Native
public void SetTitle(string title)
{
_native.SetTitle(title);
}
public WindowState WindowState

1
src/headers/avalonia-native.h

@ -195,6 +195,7 @@ AVNCOM(IAvnWindow, 04) : virtual IAvnWindowBase
virtual HRESULT ShowDialog (IUnknown**ppv) = 0;
virtual HRESULT SetCanResize(bool value) = 0;
virtual HRESULT SetHasDecorations(bool value) = 0;
virtual HRESULT SetTitle (const char* title) = 0;
virtual HRESULT SetTitleBarColor (AvnColor color) = 0;
virtual HRESULT SetWindowState(AvnWindowState state) = 0;
virtual HRESULT GetWindowState(AvnWindowState*ret) = 0;

Loading…
Cancel
Save