Пример #1
0
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;
}