X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/c5789d15269c02979eef2b5a1779c35af5151473..660296aa90ad5ecc98c585cc24567cee8130499a:/include/wx/mac/carbon/dc.h diff --git a/include/wx/mac/carbon/dc.h b/include/wx/mac/carbon/dc.h index 4410680253..62a3961fa2 100644 --- a/include/wx/mac/carbon/dc.h +++ b/include/wx/mac/carbon/dc.h @@ -44,6 +44,43 @@ 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 ®ion ) = 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