static AppearanceData * init_appearance_data (int *argc, char ***argv, GOptionContext *context) { AppearanceData *data = NULL; gchar *uifile; GtkBuilder *ui; GError *err = NULL; g_thread_init (NULL); gdk_threads_init (); gdk_threads_enter (); theme_thumbnail_factory_init (*argc, *argv); capplet_init (context, argc, argv); activate_settings_daemon (); /* set up the data */ uifile = g_build_filename (MATECC_GTKBUILDER_DIR, "appearance.ui", NULL); ui = gtk_builder_new (); gtk_builder_add_from_file (ui, uifile, &err); g_free (uifile); if (err) { g_warning (_("Could not load user interface file: %s"), err->message); g_error_free (err); g_object_unref (ui); } else { data = g_new (AppearanceData, 1); data->settings = g_settings_new (APPEARANCE_SCHEMA); data->wp_settings = g_settings_new (WP_SCHEMA); data->caja_settings = g_settings_new (CAJA_SCHEMA); data->interface_settings = g_settings_new (INTERFACE_SCHEMA); data->marco_settings = g_settings_new (MARCO_SCHEMA); data->mouse_settings = g_settings_new (MOUSE_SCHEMA); #ifdef HAVE_XFT2 data->font_settings = g_settings_new (FONT_RENDER_SCHEMA); #endif /* HAVE_XFT2 */ data->ui = ui; data->thumb_factory = mate_desktop_thumbnail_factory_new (MATE_DESKTOP_THUMBNAIL_SIZE_NORMAL); } return data; }
int main(int argc, char **argv) { GdkPixbuf *pixbuf; GnomeThemeMetaInfo *theme; GnomeVFSURI *uri; g_thread_init (NULL); theme_thumbnail_factory_init (argc, argv); if (argc != 3) { g_printerr ("usage: gnome-theme-thumbnailer theme output-image\n"); return 1; } if (!gnome_vfs_init ()) { g_printerr ("could not initialise gnome-vfs\n"); return 1; } uri = gnome_vfs_uri_new (argv[1]); theme = gnome_theme_read_meta_theme (uri); gnome_vfs_uri_unref (uri); if (theme) { pixbuf = generate_meta_theme_thumbnail (theme); gnome_theme_meta_info_free (theme); if (pixbuf) { save_pixbuf (pixbuf, argv[2]); gdk_pixbuf_unref (pixbuf); } else { g_printerr ("could not generate thumbnail\n"); return 1; } } else { g_printerr ("usage: gnome-theme-thumbnailer theme output-image\n"); return 1; } return 0; }