X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b1263dcfa3fb318e9a48bdbdfe548eb474ae5fde..b5ec7dd6eebda65b5f430cebf2f92eaddc4f7c9e:/include/wx/cocoa/dc.h diff --git a/include/wx/cocoa/dc.h b/include/wx/cocoa/dc.h index ccf45da798..7fcc9be39c 100644 --- a/include/wx/cocoa/dc.h +++ b/include/wx/cocoa/dc.h @@ -12,7 +12,9 @@ #ifndef __WX_COCOA_DC_H__ #define __WX_COCOA_DC_H__ -class WXDLLEXPORT wxDC; +DECLARE_WXCOCOA_OBJC_CLASS(NSAffineTransform); + +class WXDLLIMPEXP_FWD_CORE wxDC; WX_DECLARE_LIST(wxDC, wxCocoaDCStack); //========================================================================= @@ -27,7 +29,7 @@ class WXDLLEXPORT wxDC: public wxDCBase //------------------------------------------------------------------------- public: wxDC(); - ~wxDC(); + virtual ~wxDC(); //------------------------------------------------------------------------- // wxCocoa specifics @@ -38,6 +40,8 @@ public: static WX_NSTextStorage sm_cocoaNSTextStorage; static WX_NSLayoutManager sm_cocoaNSLayoutManager; static WX_NSTextContainer sm_cocoaNSTextContainer; + // Create a simple Wx to Bounds transform (just flip the coordinate system) + static WX_NSAffineTransform CocoaGetWxToBoundsTransform(bool isFlipped, float height); protected: // DC stack static wxCocoaDCStack sm_cocoaDCStack; @@ -54,8 +58,12 @@ protected: void CocoaUnwindStackAndLoseFocus(); // DC flipping/transformation void CocoaApplyTransformations(); - float m_cocoaHeight; - bool m_cocoaFlipped; + void CocoaUnapplyTransformations(); + WX_NSAffineTransform m_cocoaWxToBoundsTransform; +// Get bounds rect (for Clear()) + // note: we use void * to mean NSRect * so that we can avoid + // putting NSRect in the headers. + virtual bool CocoaGetBounds(void *rectData); // Blitting virtual bool CocoaDoBlitOnFocusedDC(wxCoord xdest, wxCoord ydest, wxCoord width, wxCoord height, wxCoord xsrc, wxCoord ysrc, @@ -75,7 +83,7 @@ public: virtual void StartPage(void) {}; virtual void EndPage(void) {}; - virtual void SetFont(const wxFont& font) {} + virtual void SetFont(const wxFont& font); virtual void SetPen(const wxPen& pen); virtual void SetBrush(const wxBrush& brush); virtual void SetBackground(const wxBrush& brush); @@ -90,7 +98,7 @@ public: wxCoord *x, wxCoord *y, wxCoord *descent = NULL, wxCoord *externalLeading = NULL, - wxFont *theFont = NULL) const; + const wxFont *theFont = NULL) const; virtual bool CanDrawBitmap() const; virtual bool CanGetTextExtent() const;