X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/442b35b53bf95f5c6c003ea9ddbefd17adbc2a00..fb63a24232a48e4b634124c7eaa968974c3c24a1:/include/wx/univ/theme.h diff --git a/include/wx/univ/theme.h b/include/wx/univ/theme.h index c60cd4aa19..64417f0900 100644 --- a/include/wx/univ/theme.h +++ b/include/wx/univ/theme.h @@ -8,23 +8,21 @@ // Created: 06.08.00 // RCS-ID: $Id$ // Copyright: (c) 2000 SciTech Software, Inc. (www.scitechsoft.com) -// Licence: wxWindows license +// Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// #ifndef _WX_UNIV_THEME_H_ #define _WX_UNIV_THEME_H_ -#ifdef __GNUG__ - #pragma interface "theme.h" -#endif - // ---------------------------------------------------------------------------- // wxTheme // ---------------------------------------------------------------------------- -class WXDLLEXPORT wxRenderer; +class WXDLLEXPORT wxArtProvider; class WXDLLEXPORT wxColourScheme; +class WXDLLEXPORT wxInputConsumer; class WXDLLEXPORT wxInputHandler; +class WXDLLEXPORT wxRenderer; struct WXDLLEXPORT wxThemeInfo; class WXDLLEXPORT wxTheme @@ -52,8 +50,12 @@ public: // this theme virtual wxRenderer *GetRenderer() = 0; - // get the input handler of the given type - virtual wxInputHandler *GetInputHandler(const wxString& handlerType) = 0; + // get the art provider to be used together with this theme + virtual wxArtProvider *GetArtProvider() = 0; + + // get the input handler of the given type, forward to the standard one + virtual wxInputHandler *GetInputHandler(const wxString& handlerType, + wxInputConsumer *consumer) = 0; // get the colour scheme for the control with this name virtual wxColourScheme *GetColourScheme() = 0; @@ -69,8 +71,7 @@ private: // the current theme static wxTheme *ms_theme; - - friend wxThemeInfo; + friend struct WXDLLEXPORT wxThemeInfo; }; // ---------------------------------------------------------------------------- @@ -102,10 +103,10 @@ struct WXDLLEXPORT wxThemeInfo // without it, an over optimizing linker may discard the object module // containing the theme implementation entirely #define WX_USE_THEME(themename) \ - extern bool wxThemeUse##themename; \ + extern WXDLLEXPORT_DATA(bool) wxThemeUse##themename; \ static struct wxThemeUserFor##themename \ { \ - wxThemeUserFor##themename() { wxThemeUse##themename = TRUE; } \ + wxThemeUserFor##themename() { wxThemeUse##themename = true; } \ } wxThemeDoUse##themename // to declare a new theme, this macro must be used in the class declaration @@ -118,10 +119,10 @@ struct WXDLLEXPORT wxThemeInfo // and this one must be inserted in the source file #define WX_IMPLEMENT_THEME(classname, themename, themedesc) \ - bool wxThemeUse##themename = TRUE; \ + WXDLLEXPORT_DATA(bool) wxThemeUse##themename = true; \ wxTheme *wxCtorFor##themename() { return new classname; } \ wxThemeInfo classname::ms_info##themename(wxCtorFor##themename, \ - #themename, themedesc) + wxT( #themename ), themedesc) #endif // _WX_UNIV_THEME_H_