diff --git a/include/wx/mac/carbon/window.h b/include/wx/mac/carbon/window.h index e8ed1c6e1b..225604e445 100644 --- a/include/wx/mac/carbon/window.h +++ b/include/wx/mac/carbon/window.h @@ -109,6 +109,7 @@ public: virtual int GetScrollRange( int orient ) const; virtual void ScrollWindow( int dx, int dy, const wxRect* rect = (wxRect *) NULL ); + virtual bool Reparent( wxWindowBase *newParent ); #if wxUSE_DRAG_AND_DROP virtual void SetDropTarget( wxDropTarget *dropTarget ); diff --git a/src/mac/carbon/window.cpp b/src/mac/carbon/window.cpp index bbd59ffe8c..64a8737ec2 100644 --- a/src/mac/carbon/window.cpp +++ b/src/mac/carbon/window.cpp @@ -3241,4 +3241,18 @@ wxInt32 wxWindowMac::MacControlHit(WXEVENTHANDLERREF WXUNUSED(handler) , WXEVENT return eventNotHandledErr ; } +bool wxWindowMac::Reparent(wxWindowBase *newParentBase) +{ + wxWindowMac *newParent = (wxWindowMac *)newParentBase; + + if ( !wxWindowBase::Reparent(newParent) ) + return FALSE; + + //copied from MacPostControlCreate + ControlRef container = (ControlRef) GetParent()->GetHandle() ; + wxASSERT_MSG( container != NULL , wxT("No valid mac container control") ) ; + ::EmbedControl( m_peer->GetControlRef() , container ) ; + + return TRUE; +}