Initial support for EVT_ERASE_BACKGROUND for OS X Cocoa.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@58796 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Kevin Ollivier
2009-02-09 02:20:03 +00:00
parent 80255b7eaf
commit f487501a2c

View File

@@ -12,6 +12,7 @@
#include "wx/wxprec.h" #include "wx/wxprec.h"
#ifndef WX_PRECOMP #ifndef WX_PRECOMP
#include "wx/dcclient.h"
#include "wx/nonownedwnd.h" #include "wx/nonownedwnd.h"
#include "wx/log.h" #include "wx/log.h"
#endif #endif
@@ -754,6 +755,20 @@ 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
// 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; wxPaintEvent event;
event.SetTimestamp(0); // todo event.SetTimestamp(0); // todo
event.SetEventObject(wxpeer); event.SetEventObject(wxpeer);