thisWindow->GetCaret()->OnKillFocus();
}
#endif // wxUSE_CARET
- wxFocusEvent event( wxEVT_KILL_FOCUS, thisWindow->GetId());
- event.SetEventObject(thisWindow);
- thisWindow->GetEventHandler()->ProcessEvent(event) ;
+ static bool inKillFocusEvent = false ;
+ if ( !inKillFocusEvent )
+ {
+ inKillFocusEvent = true ;
+ wxFocusEvent event( wxEVT_KILL_FOCUS, thisWindow->GetId());
+ event.SetEventObject(thisWindow);
+ thisWindow->GetEventHandler()->ProcessEvent(event) ;
+ inKillFocusEvent = false ;
+ }
}
else
{
// implementation
// ===========================================================================
-#if KEY_wxList_DEPRECATED
-wxList wxWinMacControlList(wxKEY_INTEGER);
-
-wxWindow *wxFindControlFromMacControl(ControlRef inControl )
-{
- wxNode *node = wxWinMacControlList.Find((long)inControl);
- if (!node)
- return NULL;
- return (wxControl *)node->GetData();
-}
-
-void wxAssociateControlWithMacControl(ControlRef inControl, wxWindow *control)
-{
- // adding NULL ControlRef is (first) surely a result of an error and
- // (secondly) breaks native event processing
- wxCHECK_RET( inControl != (ControlRef) NULL, wxT("attempt to add a NULL WindowRef to window list") );
-
- if ( !wxWinMacControlList.Find((long)inControl) )
- wxWinMacControlList.Append((long)inControl, control);
-}
-
-void wxRemoveMacControlAssociation(wxWindow *control)
-{
- // remove all associations pointing to us
- while ( wxWinMacControlList.DeleteObject(control) )
- {}
-}
-#else
-
WX_DECLARE_HASH_MAP(ControlRef, wxWindow*, wxPointerHash, wxPointerEqual, MacControlMap);
static MacControlMap wxWinMacControlList;
}
}
}
-#endif // deprecated wxList
// ----------------------------------------------------------------------------
// constructors and such
{
// in case the callback might be called during destruction
wxRemoveMacControlAssociation( this) ;
+ ::RemoveEventHandler( (EventHandlerRef ) m_macControlEventHandler ) ;
// we currently are not using this hook
// ::SetControlColorProc( *m_peer , NULL ) ;
m_peer->Dispose() ;
return;
}
- if ( x == -1 && !(sizeFlags & wxSIZE_ALLOW_MINUS_ONE) )
+ if ( x == wxDefaultCoord && !(sizeFlags & wxSIZE_ALLOW_MINUS_ONE) )
x = currentX;
- if ( y == -1 && !(sizeFlags & wxSIZE_ALLOW_MINUS_ONE) )
+ if ( y == wxDefaultCoord && !(sizeFlags & wxSIZE_ALLOW_MINUS_ONE) )
y = currentY;
AdjustForParentClientOrigin(x, y, sizeFlags);
- wxSize size(-1, -1);
- if ( width == -1 )
+ wxSize size = wxDefaultSize;
+ if ( width == wxDefaultCoord )
{
if ( sizeFlags & wxSIZE_AUTO_WIDTH )
{
}
}
- if ( height == -1 )
+ if ( height == wxDefaultCoord )
{
if ( sizeFlags & wxSIZE_AUTO_HEIGHT )
{
- if ( size.x == -1 )
+ if ( size.x == wxDefaultCoord )
{
size = DoGetBestSize();
}
void wxWindowMac::DoSetClientSize(int clientwidth, int clientheight)
{
- if ( clientheight != -1 || clientheight != -1 )
+ if ( clientheight != wxDefaultCoord || clientheight != wxDefaultCoord )
{
int currentclientwidth , currentclientheight ;
int currentwidth , currentheight ;
GetClientSize( ¤tclientwidth , ¤tclientheight ) ;
GetSize( ¤twidth , ¤theight ) ;
- DoSetSize( -1 , -1 , currentwidth + clientwidth - currentclientwidth ,
+ DoSetSize( wxDefaultCoord , wxDefaultCoord , currentwidth + clientwidth - currentclientwidth ,
currentheight + clientheight - currentclientheight , wxSIZE_USE_EXISTING ) ;
}
}
void wxWindowMac::OnEraseBackground(wxEraseEvent& event)
{
- if ( MacGetTopLevelWindow() == NULL )
- return ;
+ if ( MacGetTopLevelWindow() == NULL )
+ return ;
#if TARGET_API_MAC_OSX
if ( MacGetTopLevelWindow()->MacUsesCompositing() && (m_macBackgroundBrush.Ok() == false || m_macBackgroundBrush.GetStyle() == wxTRANSPARENT ) )
{
if( dx == 0 && dy ==0 )
return ;
- int width , height ;
- GetClientSize( &width , &height ) ;
+ int width , height ;
+ GetClientSize( &width , &height ) ;
#if TARGET_API_MAC_OSX
if ( 1 /* m_peer->IsCompositing() */ )
{
Rect scrollrect;
RgnHandle updateRgn = NewRgn() ;
- {
+ {
wxClientDC dc(this) ;
wxMacPortSetter helper(&dc) ;
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;
+}