+// ========================================================================
+// wxWindowCocoaHider
+// ========================================================================
+class wxWindowCocoaHider: protected wxCocoaNSView
+{
+ DECLARE_NO_COPY_CLASS(wxWindowCocoaHider)
+public:
+ wxWindowCocoaHider(wxWindow *owner);
+ virtual ~wxWindowCocoaHider();
+ inline WX_NSView GetNSView() { return m_dummyNSView; }
+protected:
+ wxWindowCocoa *m_owner;
+ WX_NSView m_dummyNSView;
+ virtual void Cocoa_FrameChanged(void);
+private:
+ wxWindowCocoaHider();
+};
+
+// ========================================================================
+// wxWindowCocoaHider
+// ========================================================================
+wxWindowCocoaHider::wxWindowCocoaHider(wxWindow *owner)
+: m_owner(owner)
+{
+ wxASSERT(owner);
+ wxASSERT(owner->GetNSViewForHiding());
+ m_dummyNSView = [[NSView alloc]
+ initWithFrame:[owner->GetNSViewForHiding() frame]];
+ AssociateNSView(m_dummyNSView);
+}
+
+wxWindowCocoaHider::~wxWindowCocoaHider()
+{
+ DisassociateNSView(m_dummyNSView);
+ [m_dummyNSView release];
+}
+
+void wxWindowCocoaHider::Cocoa_FrameChanged(void)
+{
+ // Keep the real window in synch with the dummy
+ wxASSERT(m_dummyNSView);
+ [m_owner->GetNSViewForHiding() setFrame:[m_dummyNSView frame]];
+}
+
+// ========================================================================
+// wxWindowCocoa
+// ========================================================================