X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ab171e95021482a8a0c0e24ebe050fa0181e7af0..1bd01c51622ff35ec5a6072db767dd2b94e7d3bf:/include/wx/dc.h diff --git a/include/wx/dc.h b/include/wx/dc.h index 58bb92bb83..97f362589c 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" @@ -42,6 +41,8 @@ class WXDLLIMPEXP_FWD_CORE wxPaintDC; class WXDLLIMPEXP_FWD_CORE wxWindowDC; class WXDLLIMPEXP_FWD_CORE wxScreenDC; class WXDLLIMPEXP_FWD_CORE wxMemoryDC; +class WXDLLIMPEXP_FWD_CORE wxPrinterDC; +#include "wx/cmndata.h" #else class WXDLLIMPEXP_FWD_CORE wxDCBase; #endif @@ -132,6 +133,7 @@ public: virtual wxImplDC* CreateMemoryDC( wxMemoryDC *owner, wxBitmap &bitmap ) = 0; virtual wxImplDC* CreateMemoryDC( wxMemoryDC *owner, wxDC *dc ) = 0; virtual wxImplDC* CreateScreenDC( wxScreenDC *owner ) = 0; + virtual wxImplDC* CreatePrinterDC( wxPrinterDC *owner, const wxPrintData &data ) = 0; static void SetDCFactory( wxDCFactory *factory ); static wxDCFactory *GetFactory(); @@ -158,6 +160,7 @@ public: virtual wxImplDC* CreateMemoryDC( wxMemoryDC *owner, wxBitmap &bitmap ); virtual wxImplDC* CreateMemoryDC( wxMemoryDC *owner, wxDC *dc ); virtual wxImplDC* CreateScreenDC( wxScreenDC *owner ); + virtual wxImplDC* CreatePrinterDC( wxPrinterDC *owner, const wxPrintData &data ); }; //----------------------------------------------------------------------------- @@ -200,6 +203,9 @@ public: virtual void StartPage() { } virtual void EndPage() { } + // flushing the content of this dc immediately eg onto screen + virtual void Flush() { } + // bounding box virtual void CalcBoundingBox(wxCoord x, wxCoord y) @@ -428,22 +434,47 @@ public: virtual void DoDrawLines(int n, wxPoint points[], - wxCoord xoffset, wxCoord yoffset) = 0; + wxCoord xoffset, wxCoord yoffset ) = 0; + virtual void DrawLines(const wxPointList *list, + wxCoord xoffset, wxCoord yoffset ); + virtual void DoDrawPolygon(int n, wxPoint points[], wxCoord xoffset, wxCoord yoffset, int fillStyle = wxODDEVEN_RULE) = 0; virtual void DoDrawPolyPolygon(int n, int count[], wxPoint points[], wxCoord xoffset, wxCoord yoffset, int fillStyle); - + void DrawPolygon(const wxPointList *list, + wxCoord xoffset, wxCoord yoffset, + int fillStyle ); #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 + // --------------------------------------------------------- + // wxMemoryDC Impl API + + virtual void DoSelect(const wxBitmap& WXUNUSED(bmp)) + { } + + virtual const wxBitmap& GetSelectedBitmap() const + { return wxNullBitmap; } + virtual wxBitmap& GetSelectedBitmap() + { return wxNullBitmap; } + + // --------------------------------------------------------- + // wxPrinterDC Impl API + + virtual wxRect GetPaperRect() + { int w = 0; int h = 0; DoGetSize( &w, &h ); return wxRect(0,0,w,h); } + + virtual int GetResolution() + { return -1; } + private: wxDC *m_owner; @@ -516,6 +547,9 @@ public: wxImplDC *GetImpl() { return m_pimpl; } + const wxImplDC *GetImpl() const + { return m_pimpl; } + bool IsOk() const { return m_pimpl && m_pimpl->IsOk(); } @@ -553,6 +587,9 @@ public: wxSize GetPPI() const { return m_pimpl->GetPPI(); } + virtual int GetResolution() + { return m_pimpl->GetResolution(); } + // Right-To-Left (RTL) modes void SetLayoutDirection(wxLayoutDirection dir) @@ -838,30 +875,31 @@ public: void DrawLines(int n, wxPoint points[], wxCoord xoffset = 0, wxCoord yoffset = 0) { m_pimpl->DoDrawLines(n, points, xoffset, yoffset); } - -#if 0 - // needs to be removed - void DrawLines(const wxList *list, + void DrawLines(const wxPointList *list, wxCoord xoffset = 0, wxCoord yoffset = 0) -#endif + { m_pimpl->DrawLines( list, xoffset, yoffset ); } +#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) { m_pimpl->DoDrawPolygon(n, points, xoffset, yoffset, fillStyle); } - -#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 ); } -#endif - void DrawPolyPolygon(int n, int count[], wxPoint points[], wxCoord xoffset = 0, wxCoord yoffset = 0, int fillStyle = wxODDEVEN_RULE) { m_pimpl->DoDrawPolyPolygon(n, count, points, xoffset, yoffset, fillStyle); } +#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 DrawRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height) { m_pimpl->DoDrawRectangle(x, y, width, height); } @@ -975,12 +1013,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 @@ -1149,18 +1183,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) @@ -1272,13 +1318,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 @@ -1319,11 +1369,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 ); @@ -1456,6 +1506,9 @@ public: // Resolution in Pixels per inch virtual wxSize GetPPI() const = 0; + virtual int GetResolution() + { return -1; } + virtual bool Ok() const { return IsOk(); } virtual bool IsOk() const { return m_ok; } @@ -1710,7 +1763,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: