X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b95edd4708105589d03267b5932f3a42e89b0d06..adb799d6ef8e1ba754ab08b26e64fa40219f95f8:/include/wx/msw/dc.h diff --git a/include/wx/msw/dc.h b/include/wx/msw/dc.h index f28ffedd8d..8ed710e9e6 100644 --- a/include/wx/msw/dc.h +++ b/include/wx/msw/dc.h @@ -12,7 +12,7 @@ #ifndef _WX_DC_H_ #define _WX_DC_H_ -#ifdef __GNUG__ +#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) #pragma interface "dc.h" #endif @@ -80,6 +80,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 +118,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; } @@ -135,7 +143,7 @@ public: #endif protected: - virtual void DoFloodFill(wxCoord x, wxCoord y, const wxColour& col, + virtual bool DoFloodFill(wxCoord x, wxCoord y, const wxColour& col, int style = wxFLOOD_SURFACE); virtual bool DoGetPixel(wxCoord x, wxCoord y, wxColour *col) const; @@ -181,6 +189,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 +200,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 @@ -241,10 +254,11 @@ protected: #endif DECLARE_DYNAMIC_CLASS(wxDC) + DECLARE_NO_COPY_CLASS(wxDC) }; // ---------------------------------------------------------------------------- -// 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) // ---------------------------------------------------------------------------- @@ -253,6 +267,9 @@ class WXDLLEXPORT wxDCTemp : public wxDC public: wxDCTemp(WXHDC hdc) { SetHDC(hdc); } virtual ~wxDCTemp() { SetHDC((WXHDC)NULL); } + +private: + DECLARE_NO_COPY_CLASS(wxDCTemp) }; #endif