]> git.saurik.com Git - wxWidgets.git/blobdiff - src/cocoa/dcclient.mm
Added minimal file dialog for SmartPhone
[wxWidgets.git] / src / cocoa / dcclient.mm
index b5da8bd6c3ebfa8e3d7d802835c899fc409dc118..b64c2ac01cf19fa984e33b53927b441796626801 100644 (file)
@@ -14,6 +14,9 @@
 
 #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");
 };
@@ -33,6 +38,19 @@ wxWindowDC::~wxWindowDC(void)
 {
 };
 
+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
  */
@@ -44,6 +62,7 @@ wxClientDC::wxClientDC(void)
 
 wxClientDC::wxClientDC( wxWindow *window )
 {
+    m_window = window;
 };
 
 wxClientDC::~wxClientDC(void)
@@ -61,9 +80,8 @@ wxPaintDC::wxPaintDC(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])
     {
@@ -86,7 +104,5 @@ wxPaintDC::wxPaintDC( wxWindow *window )
 
 wxPaintDC::~wxPaintDC(void)
 {
-    if(sm_focusedDC==this)
-        sm_focusedDC=NULL;
 };