- Made wxSizer::Fit() set the client size of the target window
- Add support for wxDatePickerCtrl in wxGenericValidator (Herry Ayen Yang)
- Added wxWindow::HasFocus().
-- Added wxGLCanvas::IsDisplaySupported()
+- Added wxGLCanvas::IsDisplaySupported().
+- Added wxApp::SetNativeTheme() (Stefan H.).
wxGTK:
\helpref{wxApp::GetInstance}{wxappgetinstance}
+\membersection{wxApp::SetNativeTheme}\label{wxappsetnativetheme}
+
+\func{bool}{SetNativeTheme}{\param{const}{wxString\&}{theme}}
+
+Allows runtime switching of the UI environment theme. Currently implemented for wxGTK2-only.
+
+Return \true if theme was successfully changed.
+
+\wxheading{Parameters}
+
+\docparam{theme}{The name of the new theme or an absolute path to a gtkrc-theme-file}
+
+
\membersection{wxApp::SetTopWindow}\label{wxappsettopwindow}
\func{void}{SetTopWindow}{\param{wxWindow* }{window}}
// if it's unknown
virtual wxLayoutDirection GetLayoutDirection() const;
+ // Change the theme used by the application, return true on success.
+ virtual bool SetNativeTheme(const wxString& WXUNUSED(theme)) { return false; }
+
// command line parsing (GUI-specific)
// ------------------------------------------------------------------------
* (palette/visual/colorcube). under wxMSW, OnInitGui() does nothing by
* default. when overriding this method, the code in it is likely to be
* platform dependent, otherwise use OnInit(). */
+ virtual bool SetNativeTheme(const wxString& theme);
virtual bool OnInitGui();
// override base class (pure) virtuals
{
}
+bool wxApp::SetNativeTheme(const wxString& theme)
+{
+ wxString path;
+ path = gtk_rc_get_theme_dir();
+ path += "/";
+ path += theme.utf8_str();
+ path += "/gtk-2.0/gtkrc";
+
+ if ( wxFileExists(path.utf8_str()) )
+ gtk_rc_add_default_file(path.utf8_str());
+ else if ( wxFileExists(theme.utf8_str()) )
+ gtk_rc_add_default_file(theme.utf8_str());
+ else
+ {
+ wxLogWarning("Theme \"%s\" not available.", theme);
+
+ return false;
+ }
+
+ gtk_rc_reparse_all_for_settings(gtk_settings_get_default(), TRUE);
+
+ return true;
+}
+
bool wxApp::OnInitGui()
{
if ( !wxAppBase::OnInitGui() )