diff --git a/include/wx/graphics.h b/include/wx/graphics.h index 1c748a249d..6c31955a47 100755 --- a/include/wx/graphics.h +++ b/include/wx/graphics.h @@ -26,7 +26,7 @@ class WXDLLEXPORT wxWindowDC; * in direction of positive y axis. */ -class WXDLLEXPORT wxGraphicsPath +class WXDLLEXPORT wxGraphicsPath : public wxObject { public : wxGraphicsPath() {} @@ -83,7 +83,16 @@ public : void AddArc( const wxPoint2DDouble& c, wxDouble r, wxDouble startAngle, wxDouble endAngle, bool clockwise); + /* + // returns the native path + virtual void * GetNativePath() = 0; + + // give the native path returned by GetNativePath() back (there might be some deallocations necessary) + virtual void UnGetNativePath(void *p) = 0; + */ + DECLARE_NO_COPY_CLASS(wxGraphicsPath) + DECLARE_ABSTRACT_CLASS(wxGraphicsPath) }; /* @@ -120,7 +129,7 @@ public : } ; */ -class WXDLLEXPORT wxGraphicsContext +class WXDLLEXPORT wxGraphicsContext : public wxObject { public: wxGraphicsContext() {} @@ -259,6 +268,7 @@ public: // wrappers using wxPoint2DDouble TODO DECLARE_NO_COPY_CLASS(wxGraphicsContext) + DECLARE_ABSTRACT_CLASS(wxGraphicsContext) }; #endif diff --git a/src/common/graphcmn.cpp b/src/common/graphcmn.cpp index b66531f910..f921072da7 100644 --- a/src/common/graphcmn.cpp +++ b/src/common/graphcmn.cpp @@ -48,6 +48,8 @@ static inline double DegToRad(double deg) //----------------------------------------------------------------------------- +IMPLEMENT_ABSTRACT_CLASS(wxGraphicsPath, wxObject) + wxPoint2DDouble wxGraphicsPath::GetCurrentPoint() { wxDouble x,y; @@ -150,6 +152,8 @@ void wxGraphicsPath::AddArcToPoint( wxDouble x1, wxDouble y1 , wxDouble x2, wxDo // wxGraphicsContext Convenience Methods //----------------------------------------------------------------------------- +IMPLEMENT_ABSTRACT_CLASS(wxGraphicsContext, wxObject) + void wxGraphicsContext::DrawPath( const wxGraphicsPath *path, int fillStyle ) { FillPath( path , fillStyle ); @@ -1089,7 +1093,7 @@ bool wxGCDC::DoBlit( wxCoord wwdest = LogicalToDeviceXRel(width); wxCoord hhdest = LogicalToDeviceYRel(height); - wxMemoryDC* memdc = dynamic_cast(source); + wxMemoryDC* memdc = wxDynamicCast(source,wxMemoryDC); if ( memdc && logical_func == wxCOPY ) { wxBitmap blit = memdc->GetSelectedBitmap();