|
|
|
@ -57,8 +57,6 @@ public: |
|
|
|
|
|
|
|
virtual HRESULT ObtainNSWindowHandle(void** ret) override |
|
|
|
{ |
|
|
|
START_COM_CALL; |
|
|
|
|
|
|
|
if (ret == nullptr) |
|
|
|
{ |
|
|
|
return E_POINTER; |
|
|
|
@ -71,8 +69,6 @@ public: |
|
|
|
|
|
|
|
virtual HRESULT ObtainNSWindowHandleRetained(void** ret) override |
|
|
|
{ |
|
|
|
START_COM_CALL; |
|
|
|
|
|
|
|
if (ret == nullptr) |
|
|
|
{ |
|
|
|
return E_POINTER; |
|
|
|
@ -85,8 +81,6 @@ public: |
|
|
|
|
|
|
|
virtual HRESULT ObtainNSViewHandle(void** ret) override |
|
|
|
{ |
|
|
|
START_COM_CALL; |
|
|
|
|
|
|
|
if (ret == nullptr) |
|
|
|
{ |
|
|
|
return E_POINTER; |
|
|
|
@ -99,8 +93,6 @@ public: |
|
|
|
|
|
|
|
virtual HRESULT ObtainNSViewHandleRetained(void** ret) override |
|
|
|
{ |
|
|
|
START_COM_CALL; |
|
|
|
|
|
|
|
if (ret == nullptr) |
|
|
|
{ |
|
|
|
return E_POINTER; |
|
|
|
@ -118,8 +110,6 @@ public: |
|
|
|
|
|
|
|
virtual HRESULT Show(bool activate, bool isDialog) override |
|
|
|
{ |
|
|
|
START_COM_CALL; |
|
|
|
|
|
|
|
@autoreleasepool |
|
|
|
{ |
|
|
|
SetPosition(lastPositionSet); |
|
|
|
@ -151,8 +141,6 @@ public: |
|
|
|
|
|
|
|
virtual HRESULT Hide () override |
|
|
|
{ |
|
|
|
START_COM_CALL; |
|
|
|
|
|
|
|
@autoreleasepool |
|
|
|
{ |
|
|
|
if(Window != nullptr) |
|
|
|
@ -167,8 +155,6 @@ public: |
|
|
|
|
|
|
|
virtual HRESULT Activate () override |
|
|
|
{ |
|
|
|
START_COM_CALL; |
|
|
|
|
|
|
|
@autoreleasepool |
|
|
|
{ |
|
|
|
if(Window != nullptr) |
|
|
|
@ -183,8 +169,6 @@ public: |
|
|
|
|
|
|
|
virtual HRESULT SetTopMost (bool value) override |
|
|
|
{ |
|
|
|
START_COM_CALL; |
|
|
|
|
|
|
|
@autoreleasepool |
|
|
|
{ |
|
|
|
[Window setLevel: value ? NSFloatingWindowLevel : NSNormalWindowLevel]; |
|
|
|
@ -195,8 +179,6 @@ public: |
|
|
|
|
|
|
|
virtual HRESULT Close() override |
|
|
|
{ |
|
|
|
START_COM_CALL; |
|
|
|
|
|
|
|
@autoreleasepool |
|
|
|
{ |
|
|
|
if (Window != nullptr) |
|
|
|
@ -210,8 +192,6 @@ public: |
|
|
|
|
|
|
|
virtual HRESULT GetClientSize(AvnSize* ret) override |
|
|
|
{ |
|
|
|
START_COM_CALL; |
|
|
|
|
|
|
|
@autoreleasepool |
|
|
|
{ |
|
|
|
if(ret == nullptr) |
|
|
|
@ -227,8 +207,6 @@ public: |
|
|
|
|
|
|
|
virtual HRESULT GetScaling (double* ret) override |
|
|
|
{ |
|
|
|
START_COM_CALL; |
|
|
|
|
|
|
|
@autoreleasepool |
|
|
|
{ |
|
|
|
if(ret == nullptr) |
|
|
|
@ -247,8 +225,6 @@ public: |
|
|
|
|
|
|
|
virtual HRESULT SetMinMaxSize (AvnSize minSize, AvnSize maxSize) override |
|
|
|
{ |
|
|
|
START_COM_CALL; |
|
|
|
|
|
|
|
@autoreleasepool |
|
|
|
{ |
|
|
|
[Window setMinSize: ToNSSize(minSize)]; |
|
|
|
@ -315,8 +291,6 @@ public: |
|
|
|
|
|
|
|
virtual HRESULT Invalidate (AvnRect rect) override |
|
|
|
{ |
|
|
|
START_COM_CALL; |
|
|
|
|
|
|
|
@autoreleasepool |
|
|
|
{ |
|
|
|
[View setNeedsDisplayInRect:[View frame]]; |
|
|
|
@ -327,8 +301,6 @@ public: |
|
|
|
|
|
|
|
virtual HRESULT SetMainMenu(IAvnMenu* menu) override |
|
|
|
{ |
|
|
|
START_COM_CALL; |
|
|
|
|
|
|
|
_mainMenu = menu; |
|
|
|
|
|
|
|
auto nativeMenu = dynamic_cast<AvnAppMenu*>(menu); |
|
|
|
@ -347,8 +319,6 @@ public: |
|
|
|
|
|
|
|
virtual HRESULT BeginMoveDrag () override |
|
|
|
{ |
|
|
|
START_COM_CALL; |
|
|
|
|
|
|
|
@autoreleasepool |
|
|
|
{ |
|
|
|
auto lastEvent = [View lastMouseDownEvent]; |
|
|
|
@ -366,15 +336,11 @@ public: |
|
|
|
|
|
|
|
virtual HRESULT BeginResizeDrag (AvnWindowEdge edge) override |
|
|
|
{ |
|
|
|
START_COM_CALL; |
|
|
|
|
|
|
|
return S_OK; |
|
|
|
} |
|
|
|
|
|
|
|
virtual HRESULT GetPosition (AvnPoint* ret) override |
|
|
|
{ |
|
|
|
START_COM_CALL; |
|
|
|
|
|
|
|
@autoreleasepool |
|
|
|
{ |
|
|
|
if(ret == nullptr) |
|
|
|
@ -395,8 +361,6 @@ public: |
|
|
|
|
|
|
|
virtual HRESULT SetPosition (AvnPoint point) override |
|
|
|
{ |
|
|
|
START_COM_CALL; |
|
|
|
|
|
|
|
@autoreleasepool |
|
|
|
{ |
|
|
|
lastPositionSet = point; |
|
|
|
@ -408,8 +372,6 @@ public: |
|
|
|
|
|
|
|
virtual HRESULT PointToClient (AvnPoint point, AvnPoint* ret) override |
|
|
|
{ |
|
|
|
START_COM_CALL; |
|
|
|
|
|
|
|
@autoreleasepool |
|
|
|
{ |
|
|
|
if(ret == nullptr) |
|
|
|
@ -428,8 +390,6 @@ public: |
|
|
|
|
|
|
|
virtual HRESULT PointToScreen (AvnPoint point, AvnPoint* ret) override |
|
|
|
{ |
|
|
|
START_COM_CALL; |
|
|
|
|
|
|
|
@autoreleasepool |
|
|
|
{ |
|
|
|
if(ret == nullptr) |
|
|
|
@ -447,16 +407,12 @@ public: |
|
|
|
|
|
|
|
virtual HRESULT ThreadSafeSetSwRenderedFrame(AvnFramebuffer* fb, IUnknown* dispose) override |
|
|
|
{ |
|
|
|
START_COM_CALL; |
|
|
|
|
|
|
|
[View setSwRenderedFrame: fb dispose: dispose]; |
|
|
|
return S_OK; |
|
|
|
} |
|
|
|
|
|
|
|
virtual HRESULT SetCursor(IAvnCursor* cursor) override |
|
|
|
{ |
|
|
|
START_COM_CALL; |
|
|
|
|
|
|
|
@autoreleasepool |
|
|
|
{ |
|
|
|
Cursor* avnCursor = dynamic_cast<Cursor*>(cursor); |
|
|
|
@ -486,8 +442,6 @@ public: |
|
|
|
|
|
|
|
virtual HRESULT CreateGlRenderTarget(IAvnGlSurfaceRenderTarget** ppv) override |
|
|
|
{ |
|
|
|
START_COM_CALL; |
|
|
|
|
|
|
|
if(View == NULL) |
|
|
|
return E_FAIL; |
|
|
|
*ppv = [renderTarget createSurfaceRenderTarget]; |
|
|
|
@ -496,8 +450,6 @@ public: |
|
|
|
|
|
|
|
virtual HRESULT CreateNativeControlHost(IAvnNativeControlHost** retOut) override |
|
|
|
{ |
|
|
|
START_COM_CALL; |
|
|
|
|
|
|
|
if(View == NULL) |
|
|
|
return E_FAIL; |
|
|
|
*retOut = ::CreateNativeControlHost(View); |
|
|
|
@ -506,8 +458,6 @@ public: |
|
|
|
|
|
|
|
virtual HRESULT SetBlurEnabled (bool enable) override |
|
|
|
{ |
|
|
|
START_COM_CALL; |
|
|
|
|
|
|
|
[StandardContainer ShowBlur:enable]; |
|
|
|
|
|
|
|
return S_OK; |
|
|
|
@ -517,8 +467,6 @@ public: |
|
|
|
IAvnClipboard* clipboard, IAvnDndResultCallback* cb, |
|
|
|
void* sourceHandle) override |
|
|
|
{ |
|
|
|
START_COM_CALL; |
|
|
|
|
|
|
|
auto item = TryGetPasteboardItem(clipboard); |
|
|
|
[item setString:@"" forType:GetAvnCustomDataType()]; |
|
|
|
if(item == nil) |
|
|
|
@ -652,8 +600,6 @@ private: |
|
|
|
|
|
|
|
virtual HRESULT Show (bool activate, bool isDialog) override |
|
|
|
{ |
|
|
|
START_COM_CALL; |
|
|
|
|
|
|
|
@autoreleasepool |
|
|
|
{ |
|
|
|
_isDialog = isDialog; |
|
|
|
@ -667,8 +613,6 @@ private: |
|
|
|
|
|
|
|
virtual HRESULT SetEnabled (bool enable) override |
|
|
|
{ |
|
|
|
START_COM_CALL; |
|
|
|
|
|
|
|
@autoreleasepool |
|
|
|
{ |
|
|
|
[Window setEnabled:enable]; |
|
|
|
@ -678,8 +622,6 @@ private: |
|
|
|
|
|
|
|
virtual HRESULT SetParent (IAvnWindow* parent) override |
|
|
|
{ |
|
|
|
START_COM_CALL; |
|
|
|
|
|
|
|
@autoreleasepool |
|
|
|
{ |
|
|
|
if(parent == nullptr) |
|
|
|
@ -798,8 +740,6 @@ private: |
|
|
|
|
|
|
|
virtual HRESULT SetCanResize(bool value) override |
|
|
|
{ |
|
|
|
START_COM_CALL; |
|
|
|
|
|
|
|
@autoreleasepool |
|
|
|
{ |
|
|
|
_canResize = value; |
|
|
|
@ -810,8 +750,6 @@ private: |
|
|
|
|
|
|
|
virtual HRESULT SetDecorations(SystemDecorations value) override |
|
|
|
{ |
|
|
|
START_COM_CALL; |
|
|
|
|
|
|
|
@autoreleasepool |
|
|
|
{ |
|
|
|
auto currentWindowState = _lastWindowState; |
|
|
|
@ -877,8 +815,6 @@ private: |
|
|
|
|
|
|
|
virtual HRESULT SetTitle (char* utf8title) override |
|
|
|
{ |
|
|
|
START_COM_CALL; |
|
|
|
|
|
|
|
@autoreleasepool |
|
|
|
{ |
|
|
|
_lastTitle = [NSString stringWithUTF8String:(const char*)utf8title]; |
|
|
|
@ -890,8 +826,6 @@ private: |
|
|
|
|
|
|
|
virtual HRESULT SetTitleBarColor(AvnColor color) override |
|
|
|
{ |
|
|
|
START_COM_CALL; |
|
|
|
|
|
|
|
@autoreleasepool |
|
|
|
{ |
|
|
|
float a = (float)color.Alpha / 255.0f; |
|
|
|
@ -921,8 +855,6 @@ private: |
|
|
|
|
|
|
|
virtual HRESULT GetWindowState (AvnWindowState*ret) override |
|
|
|
{ |
|
|
|
START_COM_CALL; |
|
|
|
|
|
|
|
@autoreleasepool |
|
|
|
{ |
|
|
|
if(ret == nullptr) |
|
|
|
@ -956,111 +888,86 @@ private: |
|
|
|
|
|
|
|
virtual HRESULT TakeFocusFromChildren () override |
|
|
|
{ |
|
|
|
START_COM_CALL; |
|
|
|
|
|
|
|
@autoreleasepool |
|
|
|
{ |
|
|
|
if(Window == nil) |
|
|
|
return S_OK; |
|
|
|
if([Window isKeyWindow]) |
|
|
|
[Window makeFirstResponder: View]; |
|
|
|
|
|
|
|
if(Window == nil) |
|
|
|
return S_OK; |
|
|
|
} |
|
|
|
if([Window isKeyWindow]) |
|
|
|
[Window makeFirstResponder: View]; |
|
|
|
|
|
|
|
return S_OK; |
|
|
|
} |
|
|
|
|
|
|
|
virtual HRESULT SetExtendClientArea (bool enable) override |
|
|
|
{ |
|
|
|
START_COM_CALL; |
|
|
|
_isClientAreaExtended = enable; |
|
|
|
|
|
|
|
@autoreleasepool |
|
|
|
if(enable) |
|
|
|
{ |
|
|
|
_isClientAreaExtended = enable; |
|
|
|
Window.titleVisibility = NSWindowTitleHidden; |
|
|
|
|
|
|
|
if(enable) |
|
|
|
[Window setTitlebarAppearsTransparent:true]; |
|
|
|
|
|
|
|
auto wantsTitleBar = (_extendClientHints & AvnSystemChrome) || (_extendClientHints & AvnPreferSystemChrome); |
|
|
|
|
|
|
|
if (wantsTitleBar) |
|
|
|
{ |
|
|
|
Window.titleVisibility = NSWindowTitleHidden; |
|
|
|
|
|
|
|
[Window setTitlebarAppearsTransparent:true]; |
|
|
|
|
|
|
|
auto wantsTitleBar = (_extendClientHints & AvnSystemChrome) || (_extendClientHints & AvnPreferSystemChrome); |
|
|
|
|
|
|
|
if (wantsTitleBar) |
|
|
|
{ |
|
|
|
[StandardContainer ShowTitleBar:true]; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
[StandardContainer ShowTitleBar:false]; |
|
|
|
} |
|
|
|
|
|
|
|
if(_extendClientHints & AvnOSXThickTitleBar) |
|
|
|
{ |
|
|
|
Window.toolbar = [NSToolbar new]; |
|
|
|
Window.toolbar.showsBaselineSeparator = false; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
Window.toolbar = nullptr; |
|
|
|
} |
|
|
|
[StandardContainer ShowTitleBar:true]; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
Window.titleVisibility = NSWindowTitleVisible; |
|
|
|
Window.toolbar = nullptr; |
|
|
|
[Window setTitlebarAppearsTransparent:false]; |
|
|
|
View.layer.zPosition = 0; |
|
|
|
[StandardContainer ShowTitleBar:false]; |
|
|
|
} |
|
|
|
|
|
|
|
[Window setIsExtended:enable]; |
|
|
|
|
|
|
|
HideOrShowTrafficLights(); |
|
|
|
|
|
|
|
UpdateStyle(); |
|
|
|
|
|
|
|
return S_OK; |
|
|
|
if(_extendClientHints & AvnOSXThickTitleBar) |
|
|
|
{ |
|
|
|
Window.toolbar = [NSToolbar new]; |
|
|
|
Window.toolbar.showsBaselineSeparator = false; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
Window.toolbar = nullptr; |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
Window.titleVisibility = NSWindowTitleVisible; |
|
|
|
Window.toolbar = nullptr; |
|
|
|
[Window setTitlebarAppearsTransparent:false]; |
|
|
|
View.layer.zPosition = 0; |
|
|
|
} |
|
|
|
|
|
|
|
[Window setIsExtended:enable]; |
|
|
|
|
|
|
|
HideOrShowTrafficLights(); |
|
|
|
|
|
|
|
UpdateStyle(); |
|
|
|
|
|
|
|
return S_OK; |
|
|
|
} |
|
|
|
|
|
|
|
virtual HRESULT SetExtendClientAreaHints (AvnExtendClientAreaChromeHints hints) override |
|
|
|
{ |
|
|
|
START_COM_CALL; |
|
|
|
_extendClientHints = hints; |
|
|
|
|
|
|
|
@autoreleasepool |
|
|
|
{ |
|
|
|
_extendClientHints = hints; |
|
|
|
|
|
|
|
SetExtendClientArea(_isClientAreaExtended); |
|
|
|
return S_OK; |
|
|
|
} |
|
|
|
SetExtendClientArea(_isClientAreaExtended); |
|
|
|
return S_OK; |
|
|
|
} |
|
|
|
|
|
|
|
virtual HRESULT GetExtendTitleBarHeight (double*ret) override |
|
|
|
{ |
|
|
|
START_COM_CALL; |
|
|
|
|
|
|
|
@autoreleasepool |
|
|
|
if(ret == nullptr) |
|
|
|
{ |
|
|
|
if(ret == nullptr) |
|
|
|
{ |
|
|
|
return E_POINTER; |
|
|
|
} |
|
|
|
|
|
|
|
*ret = [Window getExtendedTitleBarHeight]; |
|
|
|
|
|
|
|
return S_OK; |
|
|
|
return E_POINTER; |
|
|
|
} |
|
|
|
|
|
|
|
*ret = [Window getExtendedTitleBarHeight]; |
|
|
|
|
|
|
|
return S_OK; |
|
|
|
} |
|
|
|
|
|
|
|
virtual HRESULT SetExtendTitleBarHeight (double value) override |
|
|
|
{ |
|
|
|
START_COM_CALL; |
|
|
|
|
|
|
|
@autoreleasepool |
|
|
|
{ |
|
|
|
[StandardContainer SetTitleBarHeightHint:value]; |
|
|
|
return S_OK; |
|
|
|
} |
|
|
|
[StandardContainer SetTitleBarHeightHint:value]; |
|
|
|
return S_OK; |
|
|
|
} |
|
|
|
|
|
|
|
void EnterFullScreenMode () |
|
|
|
@ -1089,15 +996,8 @@ private: |
|
|
|
|
|
|
|
virtual HRESULT SetWindowState (AvnWindowState state) override |
|
|
|
{ |
|
|
|
START_COM_CALL; |
|
|
|
|
|
|
|
@autoreleasepool |
|
|
|
{ |
|
|
|
if(Window == nullptr) |
|
|
|
{ |
|
|
|
return S_OK; |
|
|
|
} |
|
|
|
|
|
|
|
if(_actualWindowState == state) |
|
|
|
{ |
|
|
|
return S_OK; |
|
|
|
|