Browse Source

enable show and hide of titlebar.

demo1
Dan Walmsley 6 years ago
parent
commit
feb10973c7
  1. 39
      native/Avalonia.Native/src/OSX/window.mm

39
native/Avalonia.Native/src/OSX/window.mm

@ -6,23 +6,6 @@
#include <OpenGL/gl.h> #include <OpenGL/gl.h>
#include "rendertarget.h" #include "rendertarget.h"
NSComparisonResult compareViews(id firstView, id secondView, void *context) {
int firstIndex = [firstView isKindOfClass:NSClassFromString(@"NSTitlebarContainerView")] ? 0 : 1;
int secondIndex = [secondView isKindOfClass:NSClassFromString(@"NSTitlebarContainerView")] ? 0 : 1;
if (firstIndex == secondIndex) {
return NSOrderedSame;
} else {
if (firstIndex < secondIndex) {
return NSOrderedAscending;
} else {
return NSOrderedDescending;
}
}
}
class WindowBaseImpl : public virtual ComSingleObject<IAvnWindowBase, &IID_IAvnWindowBase>, public INSWindowHolder class WindowBaseImpl : public virtual ComSingleObject<IAvnWindowBase, &IID_IAvnWindowBase>, public INSWindowHolder
{ {
private: private:
@ -792,22 +775,17 @@ private:
{ {
Window.titleVisibility = NSWindowTitleHidden; Window.titleVisibility = NSWindowTitleHidden;
[Window setTitlebarAppearsTransparent:true];
if(_extendClientHints & AvnChromeHintsSystemTitleBar) if(_extendClientHints & AvnChromeHintsSystemTitleBar)
{ {
[Window setTitlebarAppearsTransparent:true]; [VisualEffect ShowTitleBar:true];
//View.layer.zPosition = 2;
//VisualEffect.layer.zPosition = 0;
} }
else else
{ {
[Window setTitlebarAppearsTransparent:true]; [VisualEffect ShowTitleBar:false];
//[Window setTitlebarAppearsTransparent:true];
//View.layer.zPosition = 0;
//VisualEffect.layer.zPosition = 0;
} }
//[Window.contentView.superview sortSubviewsUsingFunction:(NSComparisonResult //(*)(id, id, void*))compareViews context:nil];
if(_extendClientHints & AvnChromeHintsOSXThickTitleBar) if(_extendClientHints & AvnChromeHintsOSXThickTitleBar)
{ {
Window.toolbar = [NSToolbar new]; Window.toolbar = [NSToolbar new];
@ -1035,6 +1013,7 @@ NSArray* AllLoopModes = [NSArray arrayWithObjects: NSDefaultRunLoopMode, NSEvent
[_titleBarMaterial setBlendingMode:NSVisualEffectBlendingModeWithinWindow]; [_titleBarMaterial setBlendingMode:NSVisualEffectBlendingModeWithinWindow];
[_titleBarMaterial setMaterial:NSVisualEffectMaterialTitlebar]; [_titleBarMaterial setMaterial:NSVisualEffectMaterialTitlebar];
[_titleBarMaterial setWantsLayer:true]; [_titleBarMaterial setWantsLayer:true];
_titleBarMaterial.hidden = true;
[self addSubview:_titleBarMaterial]; [self addSubview:_titleBarMaterial];
[self addSubview:_content]; [self addSubview:_content];
@ -1043,11 +1022,13 @@ NSArray* AllLoopModes = [NSArray arrayWithObjects: NSDefaultRunLoopMode, NSEvent
-(void) ShowTitleBar: (bool) show; -(void) ShowTitleBar: (bool) show;
{ {
//[_titleBarMaterial removeFromSuperview];
if(show) if(show)
{ {
_titleBarMaterial.hidden = false;
}
else
{
_titleBarMaterial.hidden = true;
} }
} }

Loading…
Cancel
Save