From 2343dc153d83b08f0dfde422e78bb40e41fbdada Mon Sep 17 00:00:00 2001 From: jules Date: Wed, 17 Feb 2016 17:05:17 +0000 Subject: [PATCH] Added hidden internal helper function to access plugin carbon window wrappers --- .../juce_mac_CarbonViewWrapperComponent.h | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/modules/juce_gui_extra/native/juce_mac_CarbonViewWrapperComponent.h b/modules/juce_gui_extra/native/juce_mac_CarbonViewWrapperComponent.h index 6a1b747c10..bd1d56456b 100644 --- a/modules/juce_gui_extra/native/juce_mac_CarbonViewWrapperComponent.h +++ b/modules/juce_gui_extra/native/juce_mac_CarbonViewWrapperComponent.h @@ -40,9 +40,9 @@ class CarbonViewWrapperComponent : public Component, public: CarbonViewWrapperComponent() : ComponentMovementWatcher (this), + carbonWindow (nil), keepPluginWindowWhenHidden (false), - wrapperWindow (0), - carbonWindow (0), + wrapperWindow (nil), embeddedView (0), recursiveResize (false), repaintChildOnCreation (true) @@ -73,7 +73,7 @@ public: void createWindow() { - if (wrapperWindow == 0) + if (wrapperWindow == nil) { Rect r; r.left = (short) getScreenX(); @@ -135,7 +135,7 @@ public: removeView (embeddedView); embeddedView = 0; - if (wrapperWindow != 0) + if (wrapperWindow != nil) { NSWindow* ownerWindow = getOwnerWindow(); @@ -147,7 +147,7 @@ public: RemoveEventHandler (eventHandlerRef); DisposeWindow (wrapperWindow); - wrapperWindow = 0; + wrapperWindow = nil; } } @@ -192,7 +192,7 @@ public: HIViewSetFrame (embeddedView, &r); } - if (wrapperWindow != 0) + if (wrapperWindow != nil) { jassert (getTopLevelComponent()->getDesktopScaleFactor() == 1.0f); Rectangle screenBounds (getScreenBounds() * Desktop::getInstance().getGlobalScaleFactor()); @@ -316,11 +316,11 @@ public: return ((CarbonViewWrapperComponent*) userData)->carbonEventHandler (nextHandlerRef, event); } + NSWindow* carbonWindow; bool keepPluginWindowWhenHidden; protected: WindowRef wrapperWindow; - NSWindow* carbonWindow; HIViewRef embeddedView; bool recursiveResize, repaintChildOnCreation; Time creationTime; @@ -330,4 +330,15 @@ protected: NSWindow* getOwnerWindow() const { return [((NSView*) getWindowHandle()) window]; } }; +//============================================================================== +// Non-public utility function that hosts can use if they need to get hold of the +// internals of a carbon wrapper window.. +void* getCarbonWindow (Component* possibleCarbonComponent) +{ + if (CarbonViewWrapperComponent* cv = dynamic_cast (possibleCarbonComponent)) + return cv->carbonWindow; + + return nullptr; +} + #endif // JUCE_MAC_CARBONVIEWWRAPPERCOMPONENT_H_INCLUDED