#endif // wxHAS_DRAW_TITLE_BAR_BITMAP
-// check if we're currently in a paint event
-inline bool wxInPaintEvent(wxWindow* win, wxDC& dc)
+// check if we're having a CGContext we can draw into
+inline bool wxHasCGContext(wxWindow* win, wxDC& dc)
{
- return win->MacGetCGContextRef() != NULL ||
- // wxMemoryDC's also have a valid CGContext.
- dc.IsKindOf( CLASSINFO(wxMemoryDC) );
+ wxGCDCImpl* gcdc = wxDynamicCast( dc.GetImpl() , wxGCDCImpl);
+
+ if ( gcdc )
+ {
+ if ( gcdc->GetGraphicsContext()->GetNativeContext() )
+ return true;
+ }
+ return false;
}
virtual int GetHeaderButtonHeight(wxWindow *win);
+ virtual int GetHeaderButtonMargin(wxWindow *win);
+
// draw the expanded/collapsed icon for a tree control item
virtual void DrawTreeItemButton( wxWindow *win,
wxDC& dc,
dc.SetBrush( *wxTRANSPARENT_BRUSH );
HIRect headerRect = CGRectMake( x, y, w, h );
- if ( !wxInPaintEvent(win, dc) )
+ if ( !wxHasCGContext(win, dc) )
{
win->Refresh( &rect );
}
return -1;
}
+int wxRendererMac::GetHeaderButtonMargin(wxWindow *WXUNUSED(win))
+{
+ wxFAIL_MSG( "GetHeaderButtonMargin() not implemented" );
+ return -1;
+}
+
void wxRendererMac::DrawTreeItemButton( wxWindow *win,
wxDC& dc,
const wxRect& rect,
dc.SetBrush( *wxTRANSPARENT_BRUSH );
HIRect headerRect = CGRectMake( x, y, w, h );
- if ( !wxInPaintEvent(win, dc) )
+ if ( !wxHasCGContext(win, dc) )
{
win->Refresh( &rect );
}
// under compositing we should only draw when called by the OS, otherwise just issue a redraw command
// strange redraw errors occur if we don't do this
- if ( !wxInPaintEvent(win, dc) )
+ if ( !wxHasCGContext(win, dc) )
{
wxRect rect( (int) splitterRect.origin.x, (int) splitterRect.origin.y, (int) splitterRect.size.width,
(int) splitterRect.size.height );
dc.SetBrush( *wxTRANSPARENT_BRUSH );
HIRect headerRect = CGRectMake( x, y, w, h );
- if ( !wxInPaintEvent(win, dc) )
+ if ( !wxHasCGContext(win, dc) )
{
win->Refresh( &rect );
}
dc.SetBrush( *wxTRANSPARENT_BRUSH );
HIRect hiRect = CGRectMake( x, y, w, h );
- if ( !wxInPaintEvent(win, dc) )
+ if ( !wxHasCGContext(win, dc) )
{
win->Refresh( &rect );
}