]> git.saurik.com Git - wxWidgets.git/commitdiff
reintroducing direct access, cleanup
authorStefan Csomor <csomor@advancedconcepts.ch>
Fri, 18 Feb 2005 16:47:07 +0000 (16:47 +0000)
committerStefan Csomor <csomor@advancedconcepts.ch>
Fri, 18 Feb 2005 16:47:07 +0000 (16:47 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@32143 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/mac/carbon/dc.h
src/mac/carbon/dccg.cpp

index 835aa3a65fb2f04fe1ff11c47b0696c17b65488c..62a3961fa2e9f166be12ad783b72817933271198 100644 (file)
@@ -316,15 +316,16 @@ protected:
 #if wxMAC_USE_CORE_GRAPHICS
     // CoreGraphics
     wxGraphicContext                * m_graphicContext ;
+    wxPoint                         m_macLocalOriginInPort ;
 #else
-    mutable bool    m_macFontInstalled ;
-    mutable bool    m_macPenInstalled ;
-    mutable bool    m_macBrushInstalled ;
-
-    WXHRGN                    m_macBoundaryClipRgn ;
-    WXHRGN                  m_macCurrentClipRgn ;
-    void                    MacSetupPort( wxMacPortStateHelper* ph ) const ;
-    void                    MacCleanupPort( wxMacPortStateHelper* ph ) const ;
+    mutable bool                    m_macFontInstalled ;
+    mutable bool                    m_macPenInstalled ;
+    mutable bool                    m_macBrushInstalled ;
+
+    WXHRGN                          m_macBoundaryClipRgn ;
+    WXHRGN                          m_macCurrentClipRgn ;
+    void                            MacSetupPort( wxMacPortStateHelper* ph ) const ;
+    void                            MacCleanupPort( wxMacPortStateHelper* ph ) const ;
     mutable wxMacPortStateHelper*   m_macCurrentPortStateHelper ;
     mutable bool                    m_macFormerAliasState ;
     mutable short                   m_macFormerAliasSize ;
index c610c95a4e2967013036267eaea07d9c64fe75b1..4a26beeb285780b00d0b1360dfd8068ddfcecdf5 100755 (executable)
@@ -906,8 +906,17 @@ bool wxDC::DoFloodFill(wxCoord x, wxCoord y,
 bool  wxDC::DoGetPixel( wxCoord x, wxCoord y, wxColour *col ) const
 {
     wxCHECK_MSG( Ok(), false, wxT("wxDC::DoGetPixel  Invalid DC") );
-    wxFAIL_MSG( wxT("GetPixel not implemented on Core Graphics") ) ;
-    return false ;
+    wxCHECK_MSG( Ok(), false, wxT("wxDC::DoGetPixel  Invalid DC") );
+    wxMacPortSaver helper((CGrafPtr)m_macPort) ;
+    RGBColor colour;
+    GetCPixel( 
+        XLOG2DEVMAC(x) + m_macLocalOriginInPort.x - m_macLocalOrigin.x, 
+        YLOG2DEVMAC(y) + m_macLocalOriginInPort.y - m_macLocalOrigin.y, &colour );
+    // Convert from Mac colour to wx
+    col->Set( colour.red   >> 8,
+        colour.green >> 8,
+        colour.blue  >> 8);
+    return true ;
 }
 
 void  wxDC::DoDrawLine( wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2 )