#import <AppKit/NSView.h>
#import <AppKit/NSAffineTransform.h>
+#import <AppKit/NSColor.h>
+#import <AppKit/NSGraphicsContext.h>
+#import <AppKit/NSBezierPath.h>
/*
* wxWindowDC
IMPLEMENT_DYNAMIC_CLASS(wxWindowDC, wxDC)
wxWindowDC::wxWindowDC(void)
+: m_window(NULL)
{
};
wxWindowDC::wxWindowDC( wxWindow *window )
+: m_window(window)
{
wxFAIL_MSG("non-client window DC's are not supported");
};
{
};
+void wxWindowDC::Clear()
+{
+ wxASSERT(m_window);
+
+ NSGraphicsContext *context = [NSGraphicsContext currentContext];
+ [context saveGraphicsState];
+
+ [m_backgroundBrush.GetNSColor() set];
+ [NSBezierPath fillRect:[m_window->GetNSView() bounds]];
+
+ [context restoreGraphicsState];
+}
+
/*
* wxClientDC
*/
wxClientDC::wxClientDC( wxWindow *window )
{
+ m_window = window;
};
wxClientDC::~wxClientDC(void)
wxPaintDC::wxPaintDC( wxWindow *window )
{
- wxASSERT_MSG(!sm_focusedDC,"Found another wxDC with focus. Do not use wxPaintDC outside of paint handlers!");
+ m_window = window;
wxASSERT_MSG([NSView focusView]==window->GetNSView(), "PaintDC's NSView does not have focus. Please use wxPaintDC only as the first DC created in a paint handler");
- sm_focusedDC=this;
// This transform flips the graphics since wxDC uses top-left origin
if(![window->GetNSView() isFlipped])
{
wxPaintDC::~wxPaintDC(void)
{
- if(sm_focusedDC==this)
- sm_focusedDC=NULL;
};