+ wxGraphicsPath * CreatePath() { return NULL; }
+
+ virtual wxGraphicsPen* CreatePen(const wxPen& ) { return NULL; }
+
+ virtual wxGraphicsBrush* CreateBrush(const wxBrush& ) { return NULL; }
+
+ virtual wxGraphicsBrush* CreateLinearGradientBrush( wxDouble , wxDouble , wxDouble , wxDouble ,
+ const wxColour&, const wxColour&) { return NULL; }
+
+ virtual wxGraphicsBrush* CreateRadialGradientBrush( wxDouble xo, wxDouble yo,
+ wxDouble xc, wxDouble yc, wxDouble radius,
+ const wxColour &oColor, const wxColour &cColor) { return NULL; }
+
+ virtual wxGraphicsFont* CreateFont( const wxFont &, const wxColour & ) { return NULL; }
+
+ virtual wxGraphicsMatrix* CreateMatrix( wxDouble, wxDouble, wxDouble, wxDouble,
+ wxDouble, wxDouble) { return NULL; }
+
+ virtual void PushState() {}
+ virtual void PopState() {}
+ virtual void Clip( const wxRegion & ) {}
+ virtual void Clip( wxDouble , wxDouble , wxDouble , wxDouble ) {}
+ virtual void ResetClip() {}
+ virtual void * GetNativeContext() { return NULL; }
+ virtual void Translate( wxDouble , wxDouble ) {}
+ virtual void Scale( wxDouble , wxDouble ) {}
+ virtual void Rotate( wxDouble ) {}
+ virtual void ConcatTransform( const wxGraphicsMatrix* ) {}
+ virtual void SetTransform( const wxGraphicsMatrix* ) {}
+ virtual void GetTransform( wxGraphicsMatrix* ) {}
+
+ virtual void SetPen( wxGraphicsPen* , bool ) {}
+ void SetPen( const wxPen& ) {}
+
+ virtual void SetBrush( wxGraphicsBrush* , bool ) {}
+ void SetBrush( const wxBrush& ) {}
+
+ virtual void SetFont( wxGraphicsFont*, bool ) {}
+ void SetFont( const wxFont&, const wxColour& ) {}
+
+ virtual void StrokePath( const wxGraphicsPath * ) {}
+ virtual void FillPath( const wxGraphicsPath *, int ) {}
+ virtual void DrawPath( const wxGraphicsPath *, int ) {}
+
+ virtual void DrawText( const wxString &, wxDouble , wxDouble ) {}
+ virtual void DrawText( const wxString &, wxDouble , wxDouble , wxDouble ) {}
+ virtual void GetTextExtent( const wxString &, wxDouble *, wxDouble *,
+ wxDouble *, wxDouble * ) const {}
+ virtual void GetPartialTextExtents(const wxString& , wxArrayDouble& ) const {}
+
+ virtual void DrawBitmap( const wxBitmap &, wxDouble , wxDouble , wxDouble , wxDouble ) {}
+ virtual void DrawIcon( const wxIcon &, wxDouble , wxDouble , wxDouble , wxDouble ) {}
+
+ virtual void StrokeLine( wxDouble , wxDouble , wxDouble , wxDouble ) {}
+ virtual void StrokeLines( size_t , const wxPoint2DDouble *) {}
+ virtual void StrokeLines( size_t , const wxPoint2DDouble *, const wxPoint2DDouble *) {}
+ virtual void DrawLines( size_t , const wxPoint2DDouble *, int ) {}
+ virtual void DrawRectangle( wxDouble , wxDouble , wxDouble , wxDouble ) {}
+ virtual void DrawEllipse( wxDouble , wxDouble , wxDouble , wxDouble ) {}
+ virtual void DrawRoundedRectangle( wxDouble wxDouble , wxDouble , wxDouble , wxDouble ) {}
+ virtual bool ShouldOffset() const { return false; }
+};
+
+
+class wxGraphicsRenderer : public wxObject
+{
+public :
+ wxGraphicsRenderer() {
+ PyErr_SetString(PyExc_NotImplementedError,
+ "wx.GraphicsRenderer is not available on this platform.");
+ }
+
+ virtual ~wxGraphicsRenderer() {}