drawing code now in common file
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58807 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -755,34 +755,22 @@ void wxWidgetCocoaImpl::drawRect(void* rect, WXWidget slf, void *_cmd)
|
|||||||
wxpeer->GetUpdateRegion() = updateRgn;
|
wxpeer->GetUpdateRegion() = updateRgn;
|
||||||
wxpeer->MacSetCGContextRef( context );
|
wxpeer->MacSetCGContextRef( context );
|
||||||
|
|
||||||
// first send an erase event to the entire update area
|
bool handled = wxpeer->MacDoRedraw( 0 );
|
||||||
// for the toplevel window this really is the entire area
|
|
||||||
// for all the others only their client area, otherwise they
|
|
||||||
// might be drawing with full alpha and eg put blue into
|
|
||||||
// the grow-box area of a scrolled window (scroll sample)
|
|
||||||
|
|
||||||
wxDC* dc = new wxWindowDC(wxpeer);
|
|
||||||
dc->SetDeviceClippingRegion(updateRgn);
|
|
||||||
|
|
||||||
wxEraseEvent eevent( wxpeer->GetId(), dc );
|
|
||||||
eevent.SetEventObject( wxpeer );
|
|
||||||
wxpeer->HandleWindowEvent( eevent );
|
|
||||||
delete dc ;
|
|
||||||
|
|
||||||
wxPaintEvent event;
|
|
||||||
event.SetTimestamp(0); // todo
|
|
||||||
event.SetEventObject(wxpeer);
|
|
||||||
bool handled = wxpeer->HandleWindowEvent(event);
|
|
||||||
|
|
||||||
CGContextRestoreGState( context );
|
CGContextRestoreGState( context );
|
||||||
|
|
||||||
|
CGContextSaveGState( context );
|
||||||
if ( !handled )
|
if ( !handled )
|
||||||
{
|
{
|
||||||
// call super
|
// call super
|
||||||
SEL _cmd = @selector(drawRect:);
|
SEL _cmd = @selector(drawRect:);
|
||||||
wxOSX_DrawRectHandlerPtr superimpl = (wxOSX_DrawRectHandlerPtr) [[slf superclass] instanceMethodForSelector:_cmd];
|
wxOSX_DrawRectHandlerPtr superimpl = (wxOSX_DrawRectHandlerPtr) [[slf superclass] instanceMethodForSelector:_cmd];
|
||||||
superimpl(slf, _cmd, *(NSRect*)rect);
|
superimpl(slf, _cmd, *(NSRect*)rect);
|
||||||
|
CGContextRestoreGState( context );
|
||||||
|
CGContextSaveGState( context );
|
||||||
}
|
}
|
||||||
|
wxpeer->MacPaintChildrenBorders();
|
||||||
|
CGContextRestoreGState( context );
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxWidgetCocoaImpl::clickedAction( WXWidget slf, void *_cmd, void *sender)
|
void wxWidgetCocoaImpl::clickedAction( WXWidget slf, void *_cmd, void *sender)
|
||||||
|
Reference in New Issue
Block a user