]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/dcbase.cpp
remove empty dirs
[wxWidgets.git] / src / common / dcbase.cpp
index 84ac42aa3c6ec51975dfad184a1cae4130d60074..6367f5ec2876b7db931f89f7ec8819069061cd5d 100644 (file)
@@ -1162,6 +1162,7 @@ void wxDCBase::CalculateEllipticPoints( wxList* points,
 
 #include "wx/mac/private.h"
 #include "wx/toplevel.h"
+#include "wx/graphics.h"
 
 class wxOverlayImpl
 {
@@ -1235,17 +1236,32 @@ OSStatus wxOverlayImpl::CreateOverlayWindow()
 
     WindowAttributes overlayAttributes  = kWindowIgnoreClicksAttribute;
         
-    m_overlayParentWindow =(WindowRef) m_window->MacGetTopLevelWindowRef();
+       if ( m_window )
+       {
+               m_overlayParentWindow =(WindowRef) m_window->MacGetTopLevelWindowRef();
     
-    Rect bounds ;
-    MacGetBounds(&bounds);
-    err  = CreateNewWindow( kOverlayWindowClass, overlayAttributes, &bounds, &m_overlayWindow );  
-    if ( err == noErr ) 
-    {
+               Rect bounds ;
+               MacGetBounds(&bounds);
+               err  = CreateNewWindow( kOverlayWindowClass, overlayAttributes, &bounds, &m_overlayWindow );  
+               if ( err == noErr ) 
+               {
         SetWindowGroup( m_overlayWindow, GetWindowGroup(m_overlayParentWindow));    //  Put them in the same group so that their window layers are consistent
-        ShowWindow(m_overlayWindow);
-    }
-    return err;
+               }
+       }
+       else
+       {
+               m_overlayParentWindow = NULL ;
+               CGRect cgbounds ;
+               cgbounds = CGDisplayBounds(CGMainDisplayID());
+               Rect bounds;
+               bounds.top = cgbounds.origin.y;
+               bounds.left = cgbounds.origin.x;
+               bounds.bottom = bounds.top + cgbounds.size.height;
+               bounds.right = bounds.left  + cgbounds.size.width;
+               err  = CreateNewWindow( kOverlayWindowClass, overlayAttributes, &bounds, &m_overlayWindow );            
+       }
+       ShowWindow(m_overlayWindow);
+       return err;
 }
 
 void wxOverlayImpl::Init( wxWindowDC* dc, int x , int y , int width , int height )
@@ -1270,6 +1286,9 @@ void wxOverlayImpl::Init( wxWindowDC* dc, int x , int y , int width , int height
 
 void wxOverlayImpl::BeginDrawing( wxWindowDC* dc)
 {
+// TODO CS
+       dc->SetGraphicsContext( wxGraphicsContext::CreateFromNative( m_overlayContext ) );
+/*
     delete dc->m_graphicContext ;
     dc->m_graphicContext = new wxMacCGContext( m_overlayContext );
     // we are right now startin at 0,0 not at the wxWindow's origin, so most of the calculations 
@@ -1277,15 +1296,14 @@ void wxOverlayImpl::BeginDrawing( wxWindowDC* dc)
     // just to make sure :
     dc->m_macLocalOrigin.x = 0 ;
     dc->m_macLocalOrigin.y = 0 ;
-    wxSize size = m_window->GetSize() ;
+       */
+    wxSize size = dc->GetSize() ;
     dc->SetClippingRegion( 0 , 0 , size.x , size.y ) ;
 }
 
 void wxOverlayImpl::EndDrawing( wxWindowDC* dc)
 {
-    delete dc->m_graphicContext ;
-    dc->m_graphicContext = NULL ;
-
+       dc->SetGraphicsContext(NULL);
 }
 
 void wxOverlayImpl::Clear(wxWindowDC* dc)