bool wxApp::SetNativeTheme(const wxString& theme) { #ifdef __WXGTK3__ wxUnusedVar(theme); return false; #else 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; #endif }
int main (int argc, char **argv) { gchar *new_default_files[1] = {NULL}; GtkSettings *settings; gint i; gtk_init (&argc, &argv); /* we get a gtkrc from GTK2_RC_FILES, remove the users theme ... */ settings = gtk_settings_get_default (); g_object_set (settings, "gtk-theme-name", "Raleigh", NULL); create_testwidgets (); window = gtk_window_new (GTK_WINDOW_POPUP); box = gtk_vbox_new (FALSE, 0); gtk_container_add ((GtkContainer*)window, box); for (i = 0; i < WIDGET_COUNT; i++) { if (widgets[i] && !widgets[i]->parent) gtk_box_pack_end (GTK_BOX (box), widgets[i], FALSE, FALSE, 0); } while (gdk_events_pending ()) gtk_main_iteration_do (FALSE); gtk_widget_show_all (window); while (gdk_events_pending ()) gtk_main_iteration_do (FALSE); for (i = 0; i < G_N_ELEMENTS (tests); i++) run_test (i); /* remove the rc file again. This should cause an unload of the engine * and destruction of all engine objects. */ gtk_rc_set_default_files (new_default_files); gtk_rc_reparse_all_for_settings (settings, TRUE); gtk_widget_hide (window); gtk_widget_unmap (window); while (gdk_events_pending ()) gtk_main_iteration_do (FALSE); gtk_widget_destroy (window); while (gdk_events_pending ()) gtk_main_iteration_do (FALSE); /* TODO: It would be really cool to check if there is no * loaded engine at this point. */ /* * HRM: Calling the follwing causes an assertion failure inside cairo here -- 01.10.2010, Benjamin cairo_debug_reset_static_data (); */ return 0; }
bool wxApp::SetNativeTheme(const wxString& theme) { if ( wxFileExists(theme) ) { gtk_rc_add_default_file(wxGTK_CONV(theme)); } else { return false; } gtk_rc_reparse_all_for_settings(gtk_settings_get_default(), TRUE); return true; }
int main (int argc, char **argv) { GObject *desktop; gchar *gtkrc = NULL; g_thread_init (NULL); setlocale (LC_ALL, ""); bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR); bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8"); textdomain (GETTEXT_PACKAGE); /* Read the maemo-af-desktop gtkrc file */ gtkrc = g_build_filename (g_get_home_dir (), OSSO_USER_DIR, HILDON_DESKTOP_GTKRC, NULL); if (gtkrc && g_file_test ((gtkrc), G_FILE_TEST_EXISTS)) { gtk_rc_add_default_file (gtkrc); } g_free (gtkrc); /* If gtk_init was called already (maemo-launcher is used), * re-parse the gtkrc to include the maemo-af-desktop specific one */ if (gdk_screen_get_default ()) { gtk_rc_reparse_all_for_settings ( gtk_settings_get_for_screen (gdk_screen_get_default ()), TRUE); } gtk_init (&argc, &argv); gnome_vfs_init (); signal (SIGTERM, signal_handler); desktop = hd_desktop_new (); hd_desktop_run (HD_DESKTOP (desktop)); gtk_main (); return 0; }
static VALUE rg_m_reparse_all_for_settings(G_GNUC_UNUSED VALUE self, VALUE settings, VALUE force_load) { return CBOOL2RVAL(gtk_rc_reparse_all_for_settings(GTK_SETTINGS(RVAL2GOBJ(settings)), RVAL2CBOOL(force_load))); }