]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/dc.h
corrected WX_DEFINE_VARARG_FUNC_NOP usage
[wxWidgets.git] / include / wx / dc.h
index 34ce1abdc255cd30493ed35aa32b7767230411b8..67fd8f48c84d76d8f517440af87adde7c7b18c4d 100644 (file)
@@ -313,6 +313,11 @@ public:
         return DoBlit(destPt.x, destPt.y, sz.x, sz.y,
                       source, srcPt.x, srcPt.y, rop, useMask, srcPtMask.x, srcPtMask.y);
     }
+    
+    wxBitmap GetAsBitmap(const wxRect *subrect = (const wxRect *) NULL) const
+    {
+        return DoGetAsBitmap(subrect);
+    }
 
 #if wxUSE_SPLINES
     // TODO: this API needs fixing (wxPointList, why (!const) "wxList *"?)
@@ -436,12 +441,26 @@ public:
                        wxFont *theFont = NULL) const
         { DoGetTextExtent(string, x, y, descent, externalLeading, theFont); }
 
+    wxSize GetTextExtent(const wxString& string) const
+    {
+        wxCoord w, h;
+        DoGetTextExtent(string, &w, &h);
+        return wxSize(w, h);
+    }
+
     // works for single as well as multi-line strings
-    virtual void GetMultiLineTextExtent(const wxString& text,
+    virtual void GetMultiLineTextExtent(const wxString& string,
                                         wxCoord *width,
                                         wxCoord *height,
                                         wxCoord *heightLine = NULL,
-                                        wxFont *font = NULL);
+                                        wxFont *font = NULL) const;
+
+    wxSize GetMultiLineTextExtent(const wxString& string) const
+    {
+        wxCoord w, h;
+        GetMultiLineTextExtent(string, &w, &h);
+        return wxSize(w, h);
+    }
 
     // Measure cumulative width of text after each character
     bool GetPartialTextExtents(const wxString& text, wxArrayInt& widths) const
@@ -558,11 +577,6 @@ public:
     virtual int GetLogicalFunction() const { return m_logicalFunction; }
     virtual void SetLogicalFunction(int function) = 0;
 
-#if WXWIN_COMPATIBILITY_2_4
-    virtual void SetOptimization(bool WXUNUSED(opt)) { }
-    virtual bool GetOptimization() { return false; }
-#endif
-
     // bounding box
     // ------------
 
@@ -712,6 +726,8 @@ protected:
                         wxDC *source, wxCoord xsrc, wxCoord ysrc,
                         int rop = wxCOPY, bool useMask = false, wxCoord xsrcMask = wxDefaultCoord, wxCoord ysrcMask = wxDefaultCoord) = 0;
 
+    virtual wxBitmap DoGetAsBitmap(const wxRect *WXUNUSED(subrect)) const { return wxNullBitmap; }
+
     virtual void DoGetSize(int *width, int *height) const = 0;
     virtual void DoGetSizeMM(int* width, int* height) const = 0;
 
@@ -728,13 +744,6 @@ protected:
     virtual void DoSetClippingRegion(wxCoord x, wxCoord y,
                                      wxCoord width, wxCoord height) = 0;
 
-#if WXWIN_COMPATIBILITY_2_4
-    // this was only for confusing people, use DoGetClippingBox only
-    virtual void DoGetClippingRegion(wxCoord *x, wxCoord *y,
-                                     wxCoord *w, wxCoord *h)
-        { DoGetClippingBox(x, y, w, h); }
-#endif
-
     virtual void DoGetClippingBox(wxCoord *x, wxCoord *y,
                                   wxCoord *w, wxCoord *h) const
     {
@@ -856,6 +865,10 @@ private:
     #include "wx/os2/dc.h"
 #endif
 
+#if wxUSE_GRAPHICS_CONTEXT
+    #include "wx/dcgraph.h"
+#endif
+
 // ----------------------------------------------------------------------------
 // helper class: you can use it to temporarily change the DC text colour and
 // restore it automatically when the object goes out of scope
@@ -866,6 +879,11 @@ class WXDLLEXPORT wxDCTextColourChanger
 public:
     wxDCTextColourChanger(wxDC& dc) : m_dc(dc), m_colFgOld() { }
 
+    wxDCTextColourChanger(wxDC& dc, const wxColour& col) : m_dc(dc)
+    {
+        Set(col);
+    }
+
     ~wxDCTextColourChanger()
     {
         if ( m_colFgOld.Ok() )
@@ -964,72 +982,4 @@ private:
     DECLARE_NO_COPY_CLASS(wxDCClipper)
 };
 
-// ----------------------------------------------------------------------------
-// creates an overlay over an existing window, allowing for manipulations like
-// rubberbanding etc. this API is not stable yet, not to be used outside wx
-// internal code
-// ----------------------------------------------------------------------------
-
-class WXDLLEXPORT wxOverlayImpl;
-class WXDLLEXPORT wxWindowDC;
-
-class WXDLLEXPORT wxOverlay
-{
-public:
-    wxOverlay();
-    ~wxOverlay();
-
-    // clears the overlay without restoring the former state
-    // to be done eg when the window content has been changed and repainted
-    void Reset();
-
-private:
-    friend class WXDLLEXPORT wxDCOverlay;
-
-    // returns true if it has been setup
-    bool IsOk();
-
-    void Init(wxWindowDC* dc, int x , int y , int width , int height);
-
-    void BeginDrawing(wxWindowDC* dc);
-
-    void EndDrawing(wxWindowDC* dc);
-
-    void Clear(wxWindowDC* dc);
-
-    wxOverlayImpl* m_impl;
-
-    bool m_inDrawing;
-
-
-    DECLARE_NO_COPY_CLASS(wxOverlay);
-};
-
-class WXDLLEXPORT wxDCOverlay
-{
-public:
-    // connects this overlay to the corresponding drawing dc, if the overlay is not initialized yet
-    // this call will do so
-    wxDCOverlay(wxOverlay &overlay, wxWindowDC *dc, int x , int y , int width , int height);
-
-    // convenience wrapper that behaves the same using the entire area of the dc
-    wxDCOverlay(wxOverlay &overlay, wxWindowDC *dc);
-
-    // removes the connection between the overlay and the dc
-    virtual ~wxDCOverlay();
-
-    // clears the layer, restoring the state at the last init
-    void Clear();
-
-private:
-    void Init(wxWindowDC *dc, int x , int y , int width , int height);
-
-    wxOverlay& m_overlay;
-
-    wxWindowDC* m_dc;
-
-
-    DECLARE_NO_COPY_CLASS(wxDCOverlay);
-};
-
 #endif // _WX_DC_H_BASE_