git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@28644
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
wxWindow *parent = GetParent();
if ( parent )
{
wxWindow *parent = GetParent();
if ( parent )
{
- // we must first adjust it twice, as otherwise it gets lost by the clientareaorigin fix
- x1 += 2 * parent->MacGetLeftBorderSize() ;
- y1 += 2 * parent->MacGetTopBorderSize() ;
+ // we must first adjust it to be in window coordinates of the parent, as otherwise it gets lost by the clientareaorigin fix
+ x1 += parent->MacGetLeftBorderSize() ;
+ y1 += parent->MacGetTopBorderSize() ;
+ // and now to client coordinates
wxPoint pt(parent->GetClientAreaOrigin());
x1 -= pt.x ;
y1 -= pt.y ;
wxPoint pt(parent->GetClientAreaOrigin());
x1 -= pt.x ;
y1 -= pt.y ;
}
else if (HasFlag(wxSIMPLE_BORDER))
{
}
else if (HasFlag(wxSIMPLE_BORDER))
{
+#if wxMAC_USE_THEME_BORDER
+ SInt32 border = 0 ;
+ GetThemeMetric( kThemeMetricListBoxFrameOutset , &border ) ;
+ InsetRect( &rect , border , border );
+ DrawThemeListBoxFrame(&rect,IsEnabled() ? kThemeStateActive : kThemeStateInactive) ;
+#else
Rect rect = { top , left , h + top , w + left } ;
RGBForeColor( &darkShadow ) ;
FrameRect( &rect ) ;
Rect rect = { top , left , h + top , w + left } ;
RGBForeColor( &darkShadow ) ;
FrameRect( &rect ) ;
SetRectRgn( newupdate , origin.x , origin.y , origin.x + point.x , origin.y+point.y ) ;
SectRgn( newupdate , updatergn , newupdate ) ;
SetRectRgn( newupdate , origin.x , origin.y , origin.x + point.x , origin.y+point.y ) ;
SectRgn( newupdate , updatergn , newupdate ) ;
- if (!EmptyRgn(newupdate))
- {
+// if (!EmptyRgn(newupdate))
+// {
- dc.SetClippingRegion(wxRegion(newupdate));
+ dc.SetClippingRegion(wxRegion(updatergn));
wxEraseEvent eevent( GetId(), &dc );
eevent.SetEventObject( this );
GetEventHandler()->ProcessEvent( eevent );
wxEraseEvent eevent( GetId(), &dc );
eevent.SetEventObject( this );
GetEventHandler()->ProcessEvent( eevent );
// calculate a client-origin version of the update rgn and set m_updateRegion to that
OffsetRgn( newupdate , -origin.x , -origin.y ) ;
// calculate a client-origin version of the update rgn and set m_updateRegion to that
OffsetRgn( newupdate , -origin.x , -origin.y ) ;