- virtual bool StartDoc(const wxString& message);
- virtual void EndDoc(void);
- virtual void StartPage(void);
- virtual void EndPage(void);
- virtual void SetMapMode(int mode);
- virtual void SetUserScale(double x, double y);
- virtual void SetSystemScale(double x, double y);
- virtual void SetLogicalOrigin(long x, long y);
- virtual void SetDeviceOrigin(long x, long y);
- virtual void SetAxisOrientation(bool xLeftRight, bool yBottomUp);
-
- // This group of functions does actual conversion
- // of the input, as you'd expect.
-
- long DeviceToLogicalX(long x) const;
- long DeviceToLogicalY(long y) const;
- long DeviceToLogicalXRel(long x) const;
- long DeviceToLogicalYRel(long y) const;
- long LogicalToDeviceX(long x) const;
- long LogicalToDeviceY(long y) const;
- long LogicalToDeviceXRel(long x) const;
- long LogicalToDeviceYRel(long y) const;
-
- // This group of functions may not do any conversion
- // if m_scaleGDI is TRUE, since the HDC does the
- // conversion automatically.
- // m_scaleGDI NOW OBSOLETE
- long ImplDeviceToLogicalX(long x) const;
- long ImplDeviceToLogicalY(long y) const;
- long ImplDeviceToLogicalXRel(long x) const;
- long ImplDeviceToLogicalYRel(long y) const;
- long ImplLogicalToDeviceX(long x) const;
- long ImplLogicalToDeviceY(long y) const;
- long ImplLogicalToDeviceXRel(long x) const;
- long ImplLogicalToDeviceYRel(long y) const;
-
- virtual bool Blit(long xdest, long ydest, long width, long height,
- wxDC *source, long xsrc, long ysrc, int rop = wxCOPY, bool useMask = FALSE);
-
- virtual bool CanDrawBitmap(void) const;
- virtual bool CanGetTextExtent(void) const;
-
- //
- // This function is intended to improves drawing, by avoiding to
- // repeatly call ::SetPen/::SetBrush. If set to FALSE, these functions
- // aren't called when calling ::DrawLine(),...
- // Please note that this is YOUR responsability to use it, and do it
- // only when you KNOWN that pen/brush isn't changed between 2 calls to
- // DrawLine,... !!!
- // Note also that in X, we don't test m_autoSetting on brushes, because they
- // modify Foreground, as pens. So, convention is:
- // - call your SetBrush(), THEN your SetPen, THEN AutoSetTools(FALSE)
- // - call DrawLine,...
- // [mainly coded for Windows]
- inline virtual void AutoSetTools(bool auto_setting) { m_autoSetting = auto_setting ; }
- inline virtual void DrawPoint(wxPoint& point) { DrawPoint(point.x, point.y); }
- virtual void DrawLines(wxList *list, long xoffset = 0, long yoffset = 0);
- virtual void DrawPolygon(wxList *list, long xoffset = 0, long yoffset = 0, int fillStyle=wxODDEVEN_RULE);
-#if USE_SPLINES
- // Splines
- // 3-point spline
- virtual void DrawSpline(long x1, long y1, long x2, long y2, long x3, long y3);
- // Any number of control points - a list of pointers to wxPoints
- virtual void DrawSpline(wxList *points);
- virtual void DrawSpline(int n, wxPoint points[]);
+protected:
+ virtual bool DoFloodFill(wxCoord x, wxCoord y, const wxColour& col,
+ int style = wxFLOOD_SURFACE);
+
+ virtual bool DoGetPixel(wxCoord x, wxCoord y, wxColour *col) const;
+
+ virtual void DoDrawPoint(wxCoord x, wxCoord y);
+ virtual void DoDrawLine(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2);
+
+ virtual void DoDrawArc(wxCoord x1, wxCoord y1,
+ wxCoord x2, wxCoord y2,
+ wxCoord xc, wxCoord yc);
+ virtual void DoDrawCheckMark(wxCoord x, wxCoord y,
+ wxCoord width, wxCoord height);
+ virtual void DoDrawEllipticArc(wxCoord x, wxCoord y, wxCoord w, wxCoord h,
+ double sa, double ea);
+
+ virtual void DoDrawRectangle(wxCoord x, wxCoord y, wxCoord width, wxCoord height);
+ virtual void DoDrawRoundedRectangle(wxCoord x, wxCoord y,
+ wxCoord width, wxCoord height,
+ double radius);
+ virtual void DoDrawEllipse(wxCoord x, wxCoord y, wxCoord width, wxCoord height);
+
+#if wxUSE_SPLINES
+ virtual void DoDrawSpline(wxList *points);