From d0da5061ce7a1df3e7f453cf2d004a2e3a7dc969 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Thu, 20 Oct 2011 16:45:48 +0000 Subject: [PATCH] Dirty hack to allow generic wxDatePickerCtrl to compile under MSW. Don't make wxDateTimePickerCtrl methods pure virtual in its MSW-specific version as the generic wx{Date,Time}PickerCtrl implementations not using these methods also inherit from it currently. This is wrong and would need to be fixed properly later but for now this hack at least allows the generic classes to compile and, apparently, work under MSW again. Remove the equally dirty hack used in the generic wxTimePickerCtrl to allow it to compile which is not needed any more because this one replaces it. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@69489 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- include/wx/generic/timectrl.h | 23 ----------------------- include/wx/msw/datetimectrl.h | 28 +++++++++++++++++++++++++--- 2 files changed, 25 insertions(+), 26 deletions(-) diff --git a/include/wx/generic/timectrl.h b/include/wx/generic/timectrl.h index e2052cc1cf..09a91ee983 100644 --- a/include/wx/generic/timectrl.h +++ b/include/wx/generic/timectrl.h @@ -55,29 +55,6 @@ protected: virtual void DoMoveWindow(int x, int y, int width, int height); - // This is a really ugly hack but to compile this class in wxMSW we must - // define these functions even though they are never called because they're - // only used by the native implementation. -#ifdef __WXMSW__ - virtual wxLocaleInfo MSWGetFormat() const - { - wxFAIL_MSG( "Unreachable" ); - return wxLOCALE_TIME_FMT; - } - - virtual bool MSWAllowsNone() const - { - wxFAIL_MSG( "Unreachable" ); - return false; - } - - virtual bool MSWOnDateTimeChange(const tagNMDATETIMECHANGE& WXUNUSED(dtch)) - { - wxFAIL_MSG( "Unreachable" ); - return false; - } -#endif // __WXMSW__ - private: void Init(); diff --git a/include/wx/msw/datetimectrl.h b/include/wx/msw/datetimectrl.h index 1efcaa242c..2e79c599a5 100644 --- a/include/wx/msw/datetimectrl.h +++ b/include/wx/msw/datetimectrl.h @@ -47,15 +47,37 @@ protected: const wxValidator& validator, const wxString& name); + // Notice that the methods below must be overridden in all native MSW + // classes inheriting from this one but they can't be pure virtual because + // the generic implementations, not needing nor able to implement them, is + // also derived from this class currently. The real problem is, of course, + // this wrong class structure because the generic classes also inherit the + // wrong implementations of Set/GetValue() and DoGetBestSize() but as they + // override these methods anyhow, it does work -- but is definitely ugly + // and need to be changed (but how?) in the future. + // Override to return the date/time format used by this control. - virtual wxLocaleInfo MSWGetFormat() const = 0; + virtual wxLocaleInfo MSWGetFormat() const /* = 0 */ + { + wxFAIL_MSG( "Unreachable" ); + return wxLOCALE_TIME_FMT; + } // Override to indicate whether we can have no date at all. - virtual bool MSWAllowsNone() const = 0; + virtual bool MSWAllowsNone() const /* = 0 */ + { + wxFAIL_MSG( "Unreachable" ); + return false; + } // Override to update m_date and send the event when the control contents // changes, return true if the event was handled. - virtual bool MSWOnDateTimeChange(const tagNMDATETIMECHANGE& dtch) = 0; + virtual bool MSWOnDateTimeChange(const tagNMDATETIMECHANGE& dtch) /* = 0 */ + { + wxUnusedVar(dtch); + wxFAIL_MSG( "Unreachable" ); + return false; + } // the date currently shown by the control, may be invalid -- 2.45.2