Merge branch 'sys-theme-fixes'

Fix disabling system theme for wxMSW wxListCtrl.

See https://github.com/wxWidgets/wxWidgets/pull/1332
This commit is contained in:
Vadim Zeitlin
2019-05-28 17:17:49 +02:00
6 changed files with 80 additions and 8 deletions

View File

@@ -21,7 +21,21 @@ class WXDLLIMPEXP_FWD_CORE wxWindow;
class WXDLLIMPEXP_CORE wxSystemThemedControlBase
{
public:
wxSystemThemedControlBase() { }
wxSystemThemedControlBase()
{
#ifdef wxHAS_SYSTEM_THEMED_CONTROL
m_systemThemeDisabled = false;
#endif // wxHAS_SYSTEM_THEMED_CONTROL
}
bool IsSystemThemeDisabled() const
{
#ifdef wxHAS_SYSTEM_THEMED_CONTROL
return m_systemThemeDisabled;
#else // !wxHAS_SYSTEM_THEMED_CONTROL
return false;
#endif // wxHAS_SYSTEM_THEMED_CONTROL/!wxHAS_SYSTEM_THEMED_CONTROL
}
virtual ~wxSystemThemedControlBase() { }
@@ -36,6 +50,11 @@ protected:
(bool WXUNUSED(enable), wxWindow* WXUNUSED(window)) { }
#endif // wxHAS_SYSTEM_THEMED_CONTROL
private:
#ifdef wxHAS_SYSTEM_THEMED_CONTROL
bool m_systemThemeDisabled;
#endif // wxHAS_SYSTEM_THEMED_CONTROL
wxDECLARE_NO_COPY_CLASS(wxSystemThemedControlBase);
};
@@ -54,6 +73,14 @@ public:
}
protected:
void EnableSystemThemeByDefault()
{
// Check if the system theme hadn't been explicitly disabled before
// enabling it by default.
if ( !this->IsSystemThemeDisabled() )
DoEnableSystemTheme(true, this);
}
wxDECLARE_NO_COPY_TEMPLATE_CLASS(wxSystemThemedControl, C);
};