]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/cocoa/dc.h
Remove virtual from the newly added Create methods.
[wxWidgets.git] / include / wx / cocoa / dc.h
index ccf45da7984895b1e2a532c2f00e3cbd7a7a1517..7fcc9be39c4faeab2df2031b5124a41ee159c75d 100644 (file)
@@ -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;