]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/msw/dc.h
added wxART_BUTTON
[wxWidgets.git] / include / wx / msw / dc.h
index ac1f0a3989c83de77a6ad34db168061d754a5afb..cd92147a459a1b6aaae502144c98e0bb59bee068 100644 (file)
 #ifndef _WX_DC_H_
 #define _WX_DC_H_
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
     #pragma interface "dc.h"
 #endif
 
 #include "wx/defs.h"
-#include "wx/dc.h"
 
 // ---------------------------------------------------------------------------
 // macros
@@ -80,6 +79,7 @@ public:
                                  wxCoord *descent = NULL,
                                  wxCoord *externalLeading = NULL,
                                  wxFont *theFont = NULL) const;
+    virtual bool DoGetPartialTextExtents(const wxString& text, wxArrayInt& widths) const;
 
     virtual bool CanDrawBitmap() const;
     virtual bool CanGetTextExtent() const;
@@ -117,6 +117,13 @@ public:
     {
         m_hDC = dc;
         m_bOwnsDC = bOwnsDC;
+
+        // we might have a pre existing clipping region, make sure that we
+        // return it if asked -- but avoid calling ::GetClipBox() right now as
+        // it could be unnecessary wasteful
+        m_clipping = true;
+        m_clipX1 =
+        m_clipX2 = 0;
     }
 
     const wxBitmap& GetSelectedBitmap() const { return m_selectedBitmap; }
@@ -181,6 +188,8 @@ protected:
     {
         GetClippingBox(x, y, width, height);
     }
+    virtual void DoGetClippingBox(wxCoord *x, wxCoord *y,
+                                  wxCoord *w, wxCoord *h) const;
 
     virtual void DoGetSize(int *width, int *height) const;
     virtual void DoGetSizeMM(int* width, int* height) const;
@@ -190,6 +199,9 @@ protected:
     virtual void DoDrawPolygon(int n, wxPoint points[],
                                wxCoord xoffset, wxCoord yoffset,
                                int fillStyle = wxODDEVEN_RULE);
+    virtual void DoDrawPolyPolygon(int n, int count[], wxPoint points[],
+                                   wxCoord xoffset, wxCoord yoffset,
+                                   int fillStyle = wxODDEVEN_RULE);
 
 
 #if wxUSE_PALETTE
@@ -245,7 +257,7 @@ protected:
 };
 
 // ----------------------------------------------------------------------------
-// wxDCTemp: a wxDC which doesn't free the given HDC (used by wxWindows
+// wxDCTemp: a wxDC which doesn't free the given HDC (used by wxWidgets
 // only/mainly)
 // ----------------------------------------------------------------------------
 
@@ -254,6 +266,9 @@ class WXDLLEXPORT wxDCTemp : public wxDC
 public:
     wxDCTemp(WXHDC hdc) { SetHDC(hdc); }
     virtual ~wxDCTemp() { SetHDC((WXHDC)NULL); }
+
+private:
+    DECLARE_NO_COPY_CLASS(wxDCTemp)
 };
 
 #endif