typedef enum { THEME_TARBALL_TYPE_STANDARD, THEME_TARBALL_TYPE_ICON, THEME_TARBALL_TYPE_ENGINE, THEME_TARBALL_TYPE_SOURCE_TARBALL, THEME_TARBALL_TYPE_UNKNOWN } ThemeTarballType; typedef enum { /* error types */ THEME_TARBALL_ERROR_PERMISSION_DENIED, THEME_TARBALL_ERROR_CORRUPT_THEME } ThemeTarballError; typedef enum { UNKNOWN, GZIP, BZIP2 } ThemeTarballCompression; typedef struct _GnomeThemeTarball { gchar *src_uri; gchar *tmp_uri; gchar *target_dir; ThemeTarballType type; ThemeTarballCompression compression; } GnomeThemeTarball; gboolean tarball_contains_file (gchar *tarball_uri, gchar *filename); GnomeThemeTarball * gnome_theme_tarball_new (void); void gnome_theme_tarball_free (GnomeThemeTarball *theme_tarball); void gnome_theme_tarball_get_type (GnomeThemeTarball *theme_tarball); void gnome_theme_tarball_get_compression (GnomeThemeTarball *theme_tarball); void gnome_theme_tarball_build_paths (GnomeThemeTarball *theme_tarball); GnomeThemeTarball * gnome_theme_tarball_init (gchar *uri); void gnome_theme_tarball_install (GnomeThemeTarball *theme_tarball);