// 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 wxColourScheme;
class WXDLLEXPORT wxInputHandler;
+class WXDLLEXPORT wxArtProvider;
struct WXDLLEXPORT wxThemeInfo;
class WXDLLEXPORT wxTheme
// this theme
virtual wxRenderer *GetRenderer() = 0;
+ // get the art provider to be used together with this theme
+ virtual wxArtProvider *GetArtProvider() = 0;
+
// get the input handler of the given type
virtual wxInputHandler *GetInputHandler(const wxString& handlerType) = 0;
// the current theme
static wxTheme *ms_theme;
-#ifdef __MWERKS__
- friend class wxThemeInfo;
-#else
- friend wxThemeInfo;
-#endif
+ friend 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
// 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_