From e5b5049cc3d09477b906081a8eb92e5b429d5537 Mon Sep 17 00:00:00 2001 From: Artur Wieczorek Date: Wed, 11 Jan 2017 20:31:11 +0100 Subject: [PATCH] Make wxGraphicsContext::CreateFromUnknownDC() operational also when C++ RTTI is not used Use wxDynamicCast() to cast to the various wxDC types if wxNO_RTTI is defined. --- src/common/graphcmn.cpp | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/src/common/graphcmn.cpp b/src/common/graphcmn.cpp index 111fa17d7c..60dbf25885 100644 --- a/src/common/graphcmn.cpp +++ b/src/common/graphcmn.cpp @@ -946,7 +946,25 @@ wxGraphicsContext* wxGraphicsContext::CreateFromUnknownDC(const wxDC& dc) return Create(*mfdc); #endif #endif -#endif // !wxNO_RTTI +#else // wxNO_RTTI + if ( const wxWindowDC *windc = wxDynamicCast(&dc, wxWindowDC) ) + return Create(*windc); + + if ( const wxMemoryDC *memdc = wxDynamicCast(&dc, wxMemoryDC) ) + return Create(*memdc); + +#if wxUSE_PRINTING_ARCHITECTURE + if ( const wxPrinterDC *printdc = wxDynamicCast(&dc, wxPrinterDC) ) + return Create(*printdc); +#endif + +#ifdef __WXMSW__ +#if wxUSE_ENH_METAFILE + if ( const wxEnhMetaFileDC *mfdc = wxDynamicCast(&dc, wxEnhMetaFileDC) ) + return Create(*mfdc); +#endif +#endif +#endif // !wxNO_RTTI/wxNO_RTTI return NULL; }