]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/mac/carbon/dc.h
Wrap <commdlgs.h> as <commctls.h>. Required makefiles rebuilded.
[wxWidgets.git] / include / wx / mac / carbon / dc.h
index 441068025322fecf4319ceaa9a70c8b820b765c3..62a3961fa2e9f166be12ad783b72817933271198 100644 (file)
 extern int wxPageNumber;
 
 class wxMacPortStateHelper ;
+
+class WXDLLEXPORT wxGraphicPath
+{
+public :
+    virtual ~wxGraphicPath() {} 
+    
+    virtual void MoveToPoint( wxCoord x1 , wxCoord y1 ) = 0 ;
+    
+    virtual void AddLineToPoint( wxCoord x1 , wxCoord y1 ) = 0 ;
+    
+    virtual void AddRectangle( wxCoord x, wxCoord y, wxCoord w, wxCoord h ) = 0 ;
+    
+    virtual void AddCircle( wxCoord x, wxCoord y , wxCoord r ) = 0 ;
+
+    virtual void CloseSubpath() = 0 ;
+} ;
+
+class WXDLLEXPORT wxGraphicContext
+{
+public:
+    virtual ~wxGraphicContext() {}
+
+    virtual void Clip( const wxRegion &region ) = 0 ;
+
+    virtual void StrokePath( const wxGraphicPath *path ) = 0 ;
+
+    virtual void DrawPath( const wxGraphicPath *path , int fillStyle = wxWINDING_RULE ) = 0 ;
+    
+    virtual void FillPath( const wxGraphicPath *path , const wxColor &fillColor , int fillStyle = wxWINDING_RULE ) = 0 ;
+        
+    virtual void SetPen( const wxPen &pen ) = 0 ;
+    
+    virtual void SetBrush( const wxBrush &brush ) = 0 ;
+    
+    virtual wxGraphicPath* CreatePath() = 0 ;
+} ;
+
 //-----------------------------------------------------------------------------
 // wxDC
 //-----------------------------------------------------------------------------
@@ -64,7 +101,7 @@ class WXDLLEXPORT wxDC: public wxDCBase
 
     virtual void Clear();
 
-    virtual bool StartDoc( const wxString& WXUNUSED(message) ) { return TRUE; }
+    virtual bool StartDoc( const wxString& WXUNUSED(message) ) { return true; }
     virtual void EndDoc(void) {};
 
     virtual void StartPage(void) {};
@@ -105,9 +142,9 @@ class WXDLLEXPORT wxDC: public wxDCBase
     virtual void SetTextForeground(const wxColour& colour) ;
     virtual void SetTextBackground(const wxColour& colour) ;
 
-    void ComputeScaleAndOrigin(void);
-  public:
+    virtual void ComputeScaleAndOrigin();
 
+  public:
 
     wxCoord XDEV2LOG(wxCoord x) const
     {
@@ -185,9 +222,12 @@ class WXDLLEXPORT wxDC: public wxDCBase
       else
         return (wxCoord)((double)(new_y) * m_scaleY - 0.5) * m_signY + m_deviceOriginY + m_macLocalOrigin.y ;
     }
-
+#if wxMAC_USE_CORE_GRAPHICS
+    wxGraphicContext* GetGraphicContext() { return m_graphicContext ; }
+#else
     WXHRGN MacGetCurrentClipRgn() { return m_macCurrentClipRgn ; }
     static void MacSetupBackgroundForCurrentPort(const wxBrush& background ) ;
+#endif
 //
 
 protected:
@@ -216,7 +256,7 @@ protected:
 
     virtual void DoDrawIcon(const wxIcon& icon, wxCoord x, wxCoord y);
     virtual void DoDrawBitmap(const wxBitmap &bmp, wxCoord x, wxCoord y,
-                              bool useMask = FALSE);
+                              bool useMask = false);
 
     virtual void DoDrawText(const wxString& text, wxCoord x, wxCoord y);
     virtual void DoDrawRotatedText(const wxString& text, wxCoord x, wxCoord y,
@@ -224,7 +264,7 @@ protected:
 
     virtual bool DoBlit(wxCoord xdest, wxCoord ydest, wxCoord width, wxCoord height,
                         wxDC *source, wxCoord xsrc, wxCoord ysrc,
-                        int rop = wxCOPY, bool useMask = FALSE, wxCoord xsrcMask = -1, wxCoord ysrcMask = -1);
+                        int rop = wxCOPY, bool useMask = false, wxCoord xsrcMask = -1, wxCoord ysrcMask = -1);
 
     // this is gnarly - we can't even call this function DoSetClippingRegion()
     // because of virtual function hiding
@@ -256,32 +296,46 @@ protected:
     // Begin implementation for Mac
     public:
 
-    WXHDC                m_macPort ;
+#if !wxMAC_USE_CORE_GRAPHICS
     WXHBITMAP            m_macMask ;
+#endif
 
     // in order to preserve the const inheritance of the virtual functions, we have to
     // use mutable variables starting from CWPro 5
 
     void                    MacInstallFont() const ;
+#if !wxMAC_USE_CORE_GRAPHICS
     void                    MacInstallPen() const ;
     void                    MacInstallBrush() const ;
+#endif
 
-    mutable bool    m_macFontInstalled ;
-    mutable bool    m_macPenInstalled ;
-    mutable bool    m_macBrushInstalled ;
-
-    WXHRGN                    m_macBoundaryClipRgn ;
-    WXHRGN                  m_macCurrentClipRgn ;
-    wxPoint                    m_macLocalOrigin ;
-    void                    MacSetupPort( wxMacPortStateHelper* ph ) const ;
-    void                    MacCleanupPort( wxMacPortStateHelper* ph ) const ;
+    wxPoint                         m_macLocalOrigin ;
     mutable void*                   m_macATSUIStyle ;
+
+    WXHDC                           m_macPort ;
+#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 wxMacPortStateHelper*   m_macCurrentPortStateHelper ;
     mutable bool                    m_macFormerAliasState ;
     mutable short                   m_macFormerAliasSize ;
     mutable bool                    m_macAliasWasEnabled ;
     mutable void*                   m_macForegroundPixMap ;
     mutable void*                   m_macBackgroundPixMap ;
+#endif
+    
+#if wxMAC_USE_CORE_GRAPHICS
+#endif
 };
 
 #endif