Fix linking when wxUSE_VALIDATORS==0

The changes from 25e9be6873 don't work, at least with GCC 9, as the compiler
seems to be removing the definition of the wxDefaultValidator variable.
This commit is contained in:
Paul Cornett
2019-10-12 09:18:19 -07:00
parent 5e3ba81bbf
commit 0cced058d8
2 changed files with 6 additions and 9 deletions

View File

@@ -99,19 +99,19 @@ private:
#define wxVALIDATOR_PARAM(val) val
extern WXDLLIMPEXP_DATA_CORE(const wxValidator) wxDefaultValidator;
#else // !wxUSE_VALIDATORS
// wxWidgets is compiled without support for wxValidator, but we still
// want to be able to pass wxDefaultValidator to the functions which take
// a wxValidator parameter to avoid using "#if wxUSE_VALIDATORS"
// everywhere
class WXDLLIMPEXP_FWD_CORE wxValidator;
class wxValidator { };
#define wxDefaultValidator wxValidator()
// this macro allows to avoid warnings about unused parameters when
// wxUSE_VALIDATORS == 0
#define wxVALIDATOR_PARAM(val)
#endif // wxUSE_VALIDATORS/!wxUSE_VALIDATORS
extern WXDLLIMPEXP_DATA_CORE(const wxValidator) wxDefaultValidator;
#endif // _WX_VALIDATE_H_

View File

@@ -25,6 +25,8 @@
wxIMPLEMENT_DYNAMIC_CLASS(wxValidator, wxEvtHandler);
const wxValidator wxDefaultValidator;
// VZ: personally, I think true would be more appropriate - these bells are
// _annoying_
bool wxValidator::ms_isSilent = false;
@@ -37,10 +39,5 @@ wxValidator::wxValidator()
wxValidator::~wxValidator()
{
}
#else
class WXDLLIMPEXP_CORE wxValidator { };
#endif // wxUSE_VALIDATORS
const wxValidator wxDefaultValidator;