]> git.saurik.com Git - wxWidgets.git/blobdiff - src/osx/carbon/dcclient.cpp
support for iPhone callbacks
[wxWidgets.git] / src / osx / carbon / dcclient.cpp
index 21f3c245bdfc8dd9d543e1e411830f2b011b8e02..bd3bd1ed752b3306ad8d2f45cfc11e312face830 100644 (file)
@@ -58,9 +58,17 @@ wxWindowDCImpl::wxWindowDCImpl( wxDC *owner, wxWindow *window )
     if ( cg == NULL )
     {
         SetGraphicsContext( wxGraphicsContext::Create( window ) ) ;
+        m_contentScaleFactor = window->GetContentScaleFactor();
+        SetDeviceOrigin(-window->MacGetLeftBorderSize() , -window->MacGetTopBorderSize());
     }
     else
     {
+        // determine content scale
+        CGRect userrect = CGRectMake(0, 0, 10, 10);
+        CGRect devicerect;
+        devicerect = CGContextConvertRectToDeviceSpace(cg, userrect);
+        m_contentScaleFactor = devicerect.size.height / userrect.size.height;
+
         CGContextSaveGState( cg );
         m_release = true ;
         // make sure the context is having its origin at the wx-window coordinates of the
@@ -157,7 +165,11 @@ wxClientDCImpl::wxClientDCImpl( wxDC *owner, wxWindow *window ) :
     m_window->GetClientSize( &m_width , &m_height);
     if ( !m_window->IsShownOnScreen() )
         m_width = m_height = 0;
-    SetDeviceOrigin( origin.x, origin.y );
+    
+    int x0,y0;
+    DoGetDeviceOrigin(&x0,&y0);
+    SetDeviceOrigin( origin.x + x0, origin.y + y0 );
+    
     DoSetClippingRegion( 0 , 0 , m_width , m_height ) ;
 }