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