X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/13f6c4701e27dd96b58ac043406c6bc9777334bf..ce4b7808ca940be201422a066de141ca12f13863:/include/wx/univ/theme.h diff --git a/include/wx/univ/theme.h b/include/wx/univ/theme.h index a5712c0c85..a386a2cca8 100644 --- a/include/wx/univ/theme.h +++ b/include/wx/univ/theme.h @@ -14,6 +14,8 @@ #ifndef _WX_UNIV_THEME_H_ #define _WX_UNIV_THEME_H_ +#include "wx/string.h" + // ---------------------------------------------------------------------------- // wxTheme // ---------------------------------------------------------------------------- @@ -74,6 +76,34 @@ private: friend struct WXDLLEXPORT wxThemeInfo; }; +// ---------------------------------------------------------------------------- +// wxDelegateTheme: it is impossible to inherit from any of standard +// themes as their declarations are in private code, but you can use this +// class to override only some of their functions - all the other ones +// will be left to the original theme +// ---------------------------------------------------------------------------- + +class wxDelegateTheme : public wxTheme +{ +public: + wxDelegateTheme(const wxChar *theme); + virtual ~wxDelegateTheme(); + + virtual wxRenderer *GetRenderer(); + virtual wxArtProvider *GetArtProvider(); + virtual wxInputHandler *GetInputHandler(const wxString& control, + wxInputConsumer *consumer); + virtual wxColourScheme *GetColourScheme(); + +protected: + // gets or creates theme and sets m_theme to point to it, + // returns true on success + bool GetOrCreateTheme(); + + wxString m_themeName; + wxTheme *m_theme; +}; + // ---------------------------------------------------------------------------- // dynamic theme creation helpers // ----------------------------------------------------------------------------