X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ca7db61eace93e5b8c710113dbab743085a155fa..05a09b0b9f9d93cd2a149efc0c1ccc0790cdc82c:/include/wx/dc.h diff --git a/include/wx/dc.h b/include/wx/dc.h index 84f9b5f4d5..465d2e9588 100644 --- a/include/wx/dc.h +++ b/include/wx/dc.h @@ -26,7 +26,6 @@ #include "wx/brush.h" #include "wx/pen.h" #include "wx/palette.h" -#include "wx/list.h" // we use wxList in inline functions #include "wx/dynarray.h" #include "wx/math.h" #include "wx/image.h" @@ -37,6 +36,11 @@ #if wxUSE_NEW_DC class WXDLLIMPEXP_FWD_CORE wxDC; +class WXDLLIMPEXP_FWD_CORE wxClientDC; +class WXDLLIMPEXP_FWD_CORE wxPaintDC; +class WXDLLIMPEXP_FWD_CORE wxWindowDC; +class WXDLLIMPEXP_FWD_CORE wxScreenDC; +class WXDLLIMPEXP_FWD_CORE wxMemoryDC; #else class WXDLLIMPEXP_FWD_CORE wxDCBase; #endif @@ -117,15 +121,16 @@ public: wxDCFactory() {} virtual ~wxDCFactory() {} - virtual wxImplDC* CreateWindowDC() = 0; - virtual wxImplDC* CreateWindowDC( wxWindow *window ) = 0; - virtual wxImplDC* CreateClientDC() = 0; - virtual wxImplDC* CreateClientDC( wxWindow *window ) = 0; - virtual wxImplDC* CreatePaintDC() = 0; - virtual wxImplDC* CreatePaintDC( wxWindow *window ) = 0; - virtual wxImplDC* CreateMemoryDC() = 0; - virtual wxImplDC* CreateMemoryDC( wxBitmap &bitmap ) = 0; - virtual wxImplDC* CreateMemoryDC( wxDC *dc ) = 0; + virtual wxImplDC* CreateWindowDC( wxWindowDC *owner ) = 0; + virtual wxImplDC* CreateWindowDC( wxWindowDC *owner, wxWindow *window ) = 0; + virtual wxImplDC* CreateClientDC( wxClientDC *owner ) = 0; + virtual wxImplDC* CreateClientDC( wxClientDC *owner, wxWindow *window ) = 0; + virtual wxImplDC* CreatePaintDC( wxPaintDC *owner ) = 0; + virtual wxImplDC* CreatePaintDC( wxPaintDC *owner, wxWindow *window ) = 0; + virtual wxImplDC* CreateMemoryDC( wxMemoryDC *owner ) = 0; + virtual wxImplDC* CreateMemoryDC( wxMemoryDC *owner, wxBitmap &bitmap ) = 0; + virtual wxImplDC* CreateMemoryDC( wxMemoryDC *owner, wxDC *dc ) = 0; + virtual wxImplDC* CreateScreenDC( wxScreenDC *owner ) = 0; static void SetDCFactory( wxDCFactory *factory ); static wxDCFactory *GetFactory(); @@ -137,20 +142,21 @@ private: // wxNativeDCFactory //----------------------------------------------------------------------------- -class WXDLLIMPEXP_CORE wxNativeDCFactory +class WXDLLIMPEXP_CORE wxNativeDCFactory: public wxDCFactory { public: wxNativeDCFactory() {} - virtual wxImplDC* CreateWindowDC(); - virtual wxImplDC* CreateWindowDC( wxWindow *window ); - virtual wxImplDC* CreateClientDC(); - virtual wxImplDC* CreateClientDC( wxWindow *window ); - virtual wxImplDC* CreatePaintDC(); - virtual wxImplDC* CreatePaintDC( wxWindow *window ); - virtual wxImplDC* CreateMemoryDC(); - virtual wxImplDC* CreateMemoryDC( wxBitmap &bitmap ); - virtual wxImplDC* CreateMemoryDC( wxDC *dc ); + virtual wxImplDC* CreateWindowDC( wxWindowDC *owner ); + virtual wxImplDC* CreateWindowDC( wxWindowDC *owner, wxWindow *window ); + virtual wxImplDC* CreateClientDC( wxClientDC *owner ); + virtual wxImplDC* CreateClientDC( wxClientDC *owner, wxWindow *window ); + virtual wxImplDC* CreatePaintDC( wxPaintDC *owner ); + virtual wxImplDC* CreatePaintDC( wxPaintDC *owner, wxWindow *window ); + virtual wxImplDC* CreateMemoryDC( wxMemoryDC *owner ); + virtual wxImplDC* CreateMemoryDC( wxMemoryDC *owner, wxBitmap &bitmap ); + virtual wxImplDC* CreateMemoryDC( wxMemoryDC *owner, wxDC *dc ); + virtual wxImplDC* CreateScreenDC( wxScreenDC *owner ); }; //----------------------------------------------------------------------------- @@ -163,7 +169,7 @@ public: wxImplDC( wxDC *owner ); ~wxImplDC(); - wxDC *GetOwner() { return m_owner; } + wxDC *GetOwner() const { return m_owner; } virtual bool IsOk() const { return m_ok; } @@ -434,7 +440,7 @@ public: #if wxUSE_SPLINES virtual void DoDrawSpline(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2, wxCoord x3, wxCoord y3); virtual void DoDrawSpline(int n, wxPoint points[]); - virtual void DoDrawSpline(wxList *points); + virtual void DoDrawSpline(const wxPointList *points); #endif private: @@ -507,6 +513,9 @@ class wxDC: public wxObject public: wxDC() { m_pimpl = NULL; } + wxImplDC *GetImpl() + { return m_pimpl; } + bool IsOk() const { return m_pimpl && m_pimpl->IsOk(); } @@ -831,7 +840,7 @@ public: #if 0 // needs to be removed - void DrawLines(const wxList *list, + void DrawLines(const wxPointList *list, wxCoord xoffset = 0, wxCoord yoffset = 0) #endif @@ -842,7 +851,7 @@ public: #if 0 // needs to be removed - void DrawPolygon(const wxList *list, + void DrawPolygon(const wxPointList *list, wxCoord xoffset = 0, wxCoord yoffset = 0, int fillStyle = wxODDEVEN_RULE) { m_pimpl->DrawPolygon( list, xoffset, yoffset, fillStyle ); } @@ -965,12 +974,8 @@ public: { m_pimpl->DoDrawSpline(x1,y1,x2,y2,x3,y3); } void DrawSpline(int n, wxPoint points[]) { m_pimpl->DoDrawSpline(n,points); } - -#if 0 - // needs to be removed - void DrawSpline(wxList *points) + void DrawSpline(const wxPointList *points) { m_pimpl->DoDrawSpline(points); } -#endif #endif // wxUSE_SPLINES @@ -1023,21 +1028,6 @@ private: DECLARE_DYNAMIC_CLASS(wxClientDC) }; -//----------------------------------------------------------------------------- -// wxMemoryDC -//----------------------------------------------------------------------------- - -class WXDLLIMPEXP_CORE wxMemoryDC: public wxDC -{ -public: - wxMemoryDC(); - wxMemoryDC( wxBitmap& bitmap ); - wxMemoryDC( wxDC *dc ); - -private: - DECLARE_DYNAMIC_CLASS(wxMemoryDC) -}; - //----------------------------------------------------------------------------- // wxPaintDC //----------------------------------------------------------------------------- @@ -1081,6 +1071,8 @@ public: CalcBoundingBox(drawobject->MaxX(),drawobject->MaxY()); } + wxDC *GetOwner() const { return (wxDC*) this; } + bool FloodFill(wxCoord x, wxCoord y, const wxColour& col, int style = wxFLOOD_SURFACE) { return DoFloodFill(x, y, col, style); } @@ -1152,18 +1144,30 @@ public: void DrawLines(int n, wxPoint points[], wxCoord xoffset = 0, wxCoord yoffset = 0) { DoDrawLines(n, points, xoffset, yoffset); } - void DrawLines(const wxList *list, + void DrawLines(const wxPointList *list, wxCoord xoffset = 0, wxCoord yoffset = 0); +#if WXWIN_COMPATIBILITY_2_8 + wxDEPRECATED( void DrawLines(const wxList *list, + wxCoord xoffset = 0, wxCoord yoffset = 0) ); +#endif // WXWIN_COMPATIBILITY_2_8 + + void DrawPolygon(int n, wxPoint points[], wxCoord xoffset = 0, wxCoord yoffset = 0, int fillStyle = wxODDEVEN_RULE) { DoDrawPolygon(n, points, xoffset, yoffset, fillStyle); } - void DrawPolygon(const wxList *list, + void DrawPolygon(const wxPointList *list, wxCoord xoffset = 0, wxCoord yoffset = 0, int fillStyle = wxODDEVEN_RULE); +#if WXWIN_COMPATIBILITY_2_8 + wxDEPRECATED( void DrawPolygon(const wxList *list, + wxCoord xoffset = 0, wxCoord yoffset = 0, + int fillStyle = wxODDEVEN_RULE) ); +#endif // WXWIN_COMPATIBILITY_2_8 + void DrawPolyPolygon(int n, int count[], wxPoint points[], wxCoord xoffset = 0, wxCoord yoffset = 0, int fillStyle = wxODDEVEN_RULE) @@ -1275,13 +1279,17 @@ public: } #if wxUSE_SPLINES - // TODO: this API needs fixing (wxPointList, why (!const) "wxList *"?) void DrawSpline(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2, wxCoord x3, wxCoord y3); void DrawSpline(int n, wxPoint points[]); - void DrawSpline(wxList *points) { DoDrawSpline(points); } + void DrawSpline(const wxPointList *points) { DoDrawSpline(points); } + +#if WXWIN_COMPATIBILITY_2_8 + wxDEPRECATED( void DrawSpline(const wxList *points) ); +#endif // WXWIN_COMPATIBILITY_2_8 + #endif // wxUSE_SPLINES // Eventually we will have wxUSE_GENERIC_DRAWELLIPSE @@ -1322,11 +1330,11 @@ public: * \param angle Rotating angle (counterclockwise, start at 3 o'clock, 360 is full circle). * \param center Center of rotation. */ - void Rotate( wxList* points, double angle, wxPoint center = wxPoint(0,0) ); + void Rotate( wxPointList* points, double angle, wxPoint center = wxPoint(0,0) ); // used by DrawEllipticArcRot // Careful: wxList gets filled with points you have to delete later. - void CalculateEllipticPoints( wxList* points, + void CalculateEllipticPoints( wxPointList* points, wxCoord xStart, wxCoord yStart, wxCoord w, wxCoord h, double sa, double ea ); @@ -1713,7 +1721,7 @@ protected: virtual bool DoGetPartialTextExtents(const wxString& text, wxArrayInt& widths) const; #if wxUSE_SPLINES - virtual void DoDrawSpline(wxList *points); + virtual void DoDrawSpline(const wxPointList *points); #endif protected: