[file-roller] Use G_DECLARE_TYPE boilerplate for archive type classes



commit a7796cb7053e5b434ed338de23f247914210af32
Author: Robert Ancell <robert ancell canonical com>
Date:   Fri Oct 5 15:27:43 2018 +1300

    Use G_DECLARE_TYPE boilerplate for archive type classes

 src/fr-command-7z.c         | 11 ++++++++++-
 src/fr-command-7z.h         | 27 +--------------------------
 src/fr-command-ace.c        | 11 ++++++++++-
 src/fr-command-ace.h        | 26 +-------------------------
 src/fr-command-alz.c        | 12 +++++++++++-
 src/fr-command-alz.h        | 29 +----------------------------
 src/fr-command-ar.c         |  8 +++++++-
 src/fr-command-ar.h         | 24 +-----------------------
 src/fr-command-arj.c        | 13 ++++++++++++-
 src/fr-command-arj.h        | 29 +----------------------------
 src/fr-command-cfile.c      | 10 +++++++++-
 src/fr-command-cfile.h      | 28 +---------------------------
 src/fr-command-cpio.c       |  9 ++++++++-
 src/fr-command-cpio.h       | 25 +------------------------
 src/fr-command-dpkg.c       |  9 ++++++++-
 src/fr-command-dpkg.h       | 25 +------------------------
 src/fr-command-iso.c        | 10 +++++++++-
 src/fr-command-iso.h        | 26 +-------------------------
 src/fr-command-jar.c        |  8 +++++++-
 src/fr-command-jar.h        | 23 +----------------------
 src/fr-command-lha.c        |  8 +++++++-
 src/fr-command-lha.h        | 24 +-----------------------
 src/fr-command-lrzip.c      |  8 +++++++-
 src/fr-command-lrzip.h      | 24 +-----------------------
 src/fr-command-rar.c        | 14 +++++++++++++-
 src/fr-command-rar.h        | 31 +------------------------------
 src/fr-command-rpm.c        |  9 ++++++++-
 src/fr-command-rpm.h        | 25 +------------------------
 src/fr-command-tar.c        | 14 +++++++++++++-
 src/fr-command-tar.h        | 33 +--------------------------------
 src/fr-command-unarchiver.c | 10 +++++++++-
 src/fr-command-unarchiver.h | 28 +---------------------------
 src/fr-command-unsquashfs.c |  8 +++++++-
 src/fr-command-unsquashfs.h | 24 +-----------------------
 src/fr-command-unstuff.c    | 11 ++++++++++-
 src/fr-command-unstuff.h    | 28 +---------------------------
 src/fr-command-zip.c        | 33 +++++++++++++++++++++------------
 src/fr-command-zip.h        | 22 ++--------------------
 src/fr-command-zoo.c        |  8 +++++++-
 src/fr-command-zoo.h        | 25 +------------------------
 src/fr-command.h            |  2 ++
 src/fr-init.c               | 44 ++++++++++++++++++++++----------------------
 42 files changed, 238 insertions(+), 558 deletions(-)
---
diff --git a/src/fr-command-7z.c b/src/fr-command-7z.c
index 617a964c..8ad69cf4 100644
--- a/src/fr-command-7z.c
+++ b/src/fr-command-7z.c
@@ -34,7 +34,16 @@
 #include "rar-utils.h"
 
 
-G_DEFINE_TYPE (FrCommand7z, fr_command_7z, FR_TYPE_COMMAND)
+struct _FrCommand7z
+{
+       FrCommand  parent_instance;
+       gboolean   list_started;
+       gboolean   old_style;
+       FileData  *fdata;
+};
+
+
+G_DEFINE_TYPE (FrCommand7z, fr_command_7z, fr_command_get_type ())
 
 
 /* -- list -- */
diff --git a/src/fr-command-7z.h b/src/fr-command-7z.h
index fab3b04f..f0dc67c9 100644
--- a/src/fr-command-7z.h
+++ b/src/fr-command-7z.h
@@ -22,33 +22,8 @@
 #ifndef FR_COMMAND_7Z_H
 #define FR_COMMAND_7Z_H
 
-#include <glib.h>
 #include "fr-command.h"
-#include "fr-process.h"
 
-#define FR_TYPE_COMMAND_7Z            (fr_command_7z_get_type ())
-#define FR_COMMAND_7Z(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), FR_TYPE_COMMAND_7Z, FrCommand7z))
-#define FR_COMMAND_7Z_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), FR_TYPE_COMMAND_7Z, 
FrCommand7zClass))
-#define FR_IS_COMMAND_7Z(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FR_TYPE_COMMAND_7Z))
-#define FR_IS_COMMAND_7Z_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FR_TYPE_COMMAND_7Z))
-#define FR_COMMAND_7Z_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj), FR_TYPE_COMMAND_7Z, 
FrCommand7zClass))
-
-typedef struct _FrCommand7z       FrCommand7z;
-typedef struct _FrCommand7zClass  FrCommand7zClass;
-
-struct _FrCommand7z
-{
-       FrCommand __parent;
-       gboolean   list_started;
-       gboolean   old_style;
-       FileData  *fdata;
-};
-
-struct _FrCommand7zClass
-{
-       FrCommandClass __parent_class;
-};
-
-GType fr_command_7z_get_type (void);
+G_DECLARE_FINAL_TYPE (FrCommand7z, fr_command_7z, FR, COMMAND_7Z, FrCommand)
 
 #endif /* FR_COMMAND_7Z_H */
diff --git a/src/fr-command-ace.c b/src/fr-command-ace.c
index 507a6f19..58709962 100644
--- a/src/fr-command-ace.c
+++ b/src/fr-command-ace.c
@@ -31,7 +31,16 @@
 #include "fr-command-ace.h"
 
 
-G_DEFINE_TYPE (FrCommandAce, fr_command_ace, FR_TYPE_COMMAND)
+struct _FrCommandAce
+{
+       FrCommand    parent_instance;
+
+       gboolean     list_started;
+       FrAceCommand command_type;
+};
+
+
+G_DEFINE_TYPE (FrCommandAce, fr_command_ace, fr_command_get_type ())
 
 /* -- list -- */
 
diff --git a/src/fr-command-ace.h b/src/fr-command-ace.h
index 563a444a..f120f51f 100644
--- a/src/fr-command-ace.h
+++ b/src/fr-command-ace.h
@@ -22,38 +22,14 @@
 #ifndef FR_COMMAND_ACE_H
 #define FR_COMMAND_ACE_H
 
-#include <glib.h>
 #include "fr-command.h"
 
-#define FR_TYPE_COMMAND_ACE            (fr_command_ace_get_type ())
-#define FR_COMMAND_ACE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), FR_TYPE_COMMAND_ACE, 
FrCommandAce))
-#define FR_COMMAND_ACE_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), FR_TYPE_COMMAND_ACE, 
FrCommandAceClass))
-#define FR_IS_COMMAND_ACE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FR_TYPE_COMMAND_ACE))
-#define FR_IS_COMMAND_ACE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FR_TYPE_COMMAND_ACE))
-#define FR_COMMAND_ACE_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj), FR_TYPE_COMMAND_ACE, 
FrCommandAceClass))
-
 typedef enum {
        FR_ACE_COMMAND_UNKNOWN = 0,
        FR_ACE_COMMAND_PUBLIC,
        FR_ACE_COMMAND_NONFREE
 } FrAceCommand;
 
-typedef struct _FrCommandAce       FrCommandAce;
-typedef struct _FrCommandAceClass  FrCommandAceClass;
-
-struct _FrCommandAce
-{
-       FrCommand  __parent;
-
-       gboolean     list_started;
-       FrAceCommand command_type;
-};
-
-struct _FrCommandAceClass
-{
-       FrCommandClass __parent_class;
-};
-
-GType fr_command_ace_get_type (void);
+G_DECLARE_FINAL_TYPE (FrCommandAce, fr_command_ace, FR, COMMAND_ACE, FrCommand)
 
 #endif /* FR_COMMAND_ACE_H */
diff --git a/src/fr-command-alz.c b/src/fr-command-alz.c
index f2b94d02..9c559f0e 100644
--- a/src/fr-command-alz.c
+++ b/src/fr-command-alz.c
@@ -32,7 +32,17 @@
 #include "glib-utils.h"
 
 
-G_DEFINE_TYPE (FrCommandAlz, fr_command_alz, FR_TYPE_COMMAND)
+struct _FrCommandAlz
+{
+       FrCommand  parent_instance;
+
+       gboolean   extract_none;
+       gboolean   invalid_password;
+       gboolean   list_started;
+};
+
+
+G_DEFINE_TYPE (FrCommandAlz, fr_command_alz, fr_command_get_type ())
 
 
 /* -- list -- */
diff --git a/src/fr-command-alz.h b/src/fr-command-alz.h
index 69ae14d5..4a54ea09 100644
--- a/src/fr-command-alz.h
+++ b/src/fr-command-alz.h
@@ -22,35 +22,8 @@
 #ifndef FR_COMMAND_ALZ_H
 #define FR_COMMAND_ALZ_H
 
-#include <glib.h>
-#include "file-data.h"
 #include "fr-command.h"
-#include "fr-process.h"
 
-#define FR_TYPE_COMMAND_ALZ            (fr_command_alz_get_type ())
-#define FR_COMMAND_ALZ(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), FR_TYPE_COMMAND_ALZ, 
FrCommandAlz))
-#define FR_COMMAND_ALZ_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), FR_TYPE_COMMAND_ALZ, 
FrCommandAlzClass))
-#define FR_IS_COMMAND_ALZ(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FR_TYPE_COMMAND_ALZ))
-#define FR_IS_COMMAND_ALZ_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FR_TYPE_COMMAND_ALZ))
-#define FR_COMMAND_ALZ_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj), FR_TYPE_COMMAND_ALZ, 
FrCommandAlzClass))
-
-typedef struct _FrCommandAlz       FrCommandAlz;
-typedef struct _FrCommandAlzClass  FrCommandAlzClass;
-
-struct _FrCommandAlz
-{
-       FrCommand  __parent;
-
-       gboolean extract_none;
-       gboolean invalid_password;
-       gboolean list_started;
-};
-
-struct _FrCommandAlzClass
-{
-       FrCommandClass __parent_class;
-};
-
-GType fr_command_alz_get_type (void);
+G_DECLARE_FINAL_TYPE (FrCommandAlz, fr_command_alz, FR, COMMAND_ALZ, FrCommand)
 
 #endif /* FR_COMMAND_ALZ_H */
diff --git a/src/fr-command-ar.c b/src/fr-command-ar.c
index 25009936..2561f3f0 100644
--- a/src/fr-command-ar.c
+++ b/src/fr-command-ar.c
@@ -31,7 +31,13 @@
 #include "glib-utils.h"
 
 
-G_DEFINE_TYPE (FrCommandAr, fr_command_ar, FR_TYPE_COMMAND)
+struct _FrCommandAr
+{
+       FrCommand  parent_instance;
+};
+
+
+G_DEFINE_TYPE (FrCommandAr, fr_command_ar, fr_command_get_type ())
 
 
 /* -- list -- */
diff --git a/src/fr-command-ar.h b/src/fr-command-ar.h
index bbd32574..3c72ba2c 100644
--- a/src/fr-command-ar.h
+++ b/src/fr-command-ar.h
@@ -22,30 +22,8 @@
 #ifndef FR_COMMAND_AR_H
 #define FR_COMMAND_AR_H
 
-#include <glib.h>
 #include "fr-command.h"
-#include "fr-process.h"
 
-#define FR_TYPE_COMMAND_AR            (fr_command_ar_get_type ())
-#define FR_COMMAND_AR(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), FR_TYPE_COMMAND_AR, FrCommandAr))
-#define FR_COMMAND_AR_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), FR_TYPE_COMMAND_AR, 
FrCommandArClass))
-#define FR_IS_COMMAND_AR(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FR_TYPE_COMMAND_AR))
-#define FR_IS_COMMAND_AR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FR_TYPE_COMMAND_AR))
-#define FR_COMMAND_AR_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj), FR_TYPE_COMMAND_AR, 
FrCommandArClass))
-
-typedef struct _FrCommandAr       FrCommandAr;
-typedef struct _FrCommandArClass  FrCommandArClass;
-
-struct _FrCommandAr
-{
-       FrCommand  __parent;
-};
-
-struct _FrCommandArClass
-{
-       FrCommandClass __parent_class;
-};
-
-GType fr_command_ar_get_type (void);
+G_DECLARE_FINAL_TYPE (FrCommandAr, fr_command_ar, FR, COMMAND_AR, FrCommand)
 
 #endif /* FR_COMMAND_AR_H */
diff --git a/src/fr-command-arj.c b/src/fr-command-arj.c
index d5296f08..6d6f5780 100644
--- a/src/fr-command-arj.c
+++ b/src/fr-command-arj.c
@@ -31,7 +31,18 @@
 #include "fr-command-arj.h"
 
 
-G_DEFINE_TYPE (FrCommandArj, fr_command_arj, FR_TYPE_COMMAND)
+struct _FrCommandArj
+{
+       FrCommand parent_instance;
+
+       gboolean  list_started;
+       int       line_no;
+       FileData *fdata;
+       GRegex   *filename_line_regex;
+};
+
+
+G_DEFINE_TYPE (FrCommandArj, fr_command_arj, fr_command_get_type ())
 
 
 /* -- list -- */
diff --git a/src/fr-command-arj.h b/src/fr-command-arj.h
index f0757b48..444dafbe 100644
--- a/src/fr-command-arj.h
+++ b/src/fr-command-arj.h
@@ -22,35 +22,8 @@
 #ifndef FR_COMMAND_ARJ_H
 #define FR_COMMAND_ARJ_H
 
-#include <glib.h>
 #include "fr-command.h"
-#include "fr-process.h"
 
-#define FR_TYPE_COMMAND_ARJ            (fr_command_arj_get_type ())
-#define FR_COMMAND_ARJ(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), FR_TYPE_COMMAND_ARJ, 
FrCommandArj))
-#define FR_COMMAND_ARJ_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), FR_TYPE_COMMAND_ARJ, 
FrCommandArjClass))
-#define FR_IS_COMMAND_ARJ(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FR_TYPE_COMMAND_ARJ))
-#define FR_IS_COMMAND_ARJ_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FR_TYPE_COMMAND_ARJ))
-#define FR_COMMAND_ARJ_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj), FR_TYPE_COMMAND_ARJ, 
FrCommandArjClass))
-
-typedef struct _FrCommandArj       FrCommandArj;
-typedef struct _FrCommandArjClass  FrCommandArjClass;
-
-struct _FrCommandArj
-{
-       FrCommand  __parent;
-
-       gboolean  list_started;
-       int       line_no;
-       FileData *fdata;
-       GRegex   *filename_line_regex;
-};
-
-struct _FrCommandArjClass
-{
-       FrCommandClass __parent_class;
-};
-
-GType fr_command_arj_get_type (void);
+G_DECLARE_FINAL_TYPE (FrCommandArj, fr_command_arj, FR, COMMAND_ARJ, FrCommand)
 
 #endif /* FR_COMMAND_ARJ_H */
diff --git a/src/fr-command-cfile.c b/src/fr-command-cfile.c
index 54388cfe..70cbb131 100644
--- a/src/fr-command-cfile.c
+++ b/src/fr-command-cfile.c
@@ -34,7 +34,15 @@
 #include "fr-command-cfile.h"
 
 
-G_DEFINE_TYPE (FrCommandCFile, fr_command_cfile, FR_TYPE_COMMAND)
+struct _FrCommandCFile
+{
+       FrCommand  parent_instance;
+
+       FrError    error;
+};
+
+
+G_DEFINE_TYPE (FrCommandCFile, fr_command_cfile, fr_command_get_type ())
 
 
 static char *
diff --git a/src/fr-command-cfile.h b/src/fr-command-cfile.h
index ded2eac8..e013cf7a 100644
--- a/src/fr-command-cfile.h
+++ b/src/fr-command-cfile.h
@@ -22,34 +22,8 @@
 #ifndef FR_COMMAND_CFILE_H
 #define FR_COMMAND_CFILE_H
 
-#include <gtk/gtk.h>
 #include "fr-command.h"
-#include "typedefs.h"
 
-#define FR_TYPE_COMMAND_CFILE            (fr_command_cfile_get_type ())
-#define FR_COMMAND_CFILE(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), FR_TYPE_COMMAND_CFILE, 
FrCommandCFile))
-#define FR_COMMAND_CFILE_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), FR_TYPE_COMMAND_CFILE, 
FrCommandCFileClass))
-#define FR_IS_COMMAND_CFILE(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FR_TYPE_COMMAND_CFILE))
-#define FR_IS_COMMAND_CFILE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FR_TYPE_COMMAND_CFILE))
-#define FR_COMMAND_CFILE_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj), FR_TYPE_COMMAND_CFILE, 
FrCommandCFileClass))
-
-typedef struct _FrCommandCFile       FrCommandCFile;
-typedef struct _FrCommandCFileClass  FrCommandCFileClass;
-
-struct _FrCommandCFile
-{
-       FrCommand  __parent;
-
-       /*<private>*/
-
-       FrError error;
-};
-
-struct _FrCommandCFileClass
-{
-       FrCommandClass __parent_class;
-};
-
-GType fr_command_cfile_get_type (void);
+G_DECLARE_FINAL_TYPE (FrCommandCFile, fr_command_cfile, FR, COMMAND_CFILE, FrCommand)
 
 #endif /* FR_COMMAND_CFILE_H */
diff --git a/src/fr-command-cpio.c b/src/fr-command-cpio.c
index 55a62f94..43105a31 100644
--- a/src/fr-command-cpio.c
+++ b/src/fr-command-cpio.c
@@ -31,7 +31,14 @@
 #include "fr-command-cpio.h"
 
 
-G_DEFINE_TYPE (FrCommandCpio, fr_command_cpio, FR_TYPE_COMMAND)
+struct _FrCommandCpio
+{
+       FrCommand  parent_instance;
+       gboolean   is_empty;
+};
+
+
+G_DEFINE_TYPE (FrCommandCpio, fr_command_cpio, fr_command_get_type ())
 
 
 /* -- list -- */
diff --git a/src/fr-command-cpio.h b/src/fr-command-cpio.h
index 99cc7b69..88a0cec7 100644
--- a/src/fr-command-cpio.h
+++ b/src/fr-command-cpio.h
@@ -22,31 +22,8 @@
 #ifndef FR_COMMAND_CPIO_H
 #define FR_COMMAND_CPIO_H
 
-#include <glib.h>
 #include "fr-command.h"
-#include "fr-process.h"
 
-#define FR_TYPE_COMMAND_CPIO            (fr_command_cpio_get_type ())
-#define FR_COMMAND_CPIO(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), FR_TYPE_COMMAND_CPIO, 
FrCommandCpio))
-#define FR_COMMAND_CPIO_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), FR_TYPE_COMMAND_CPIO, 
FrCommandCpioClass))
-#define FR_IS_COMMAND_CPIO(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FR_TYPE_COMMAND_CPIO))
-#define FR_IS_COMMAND_CPIO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FR_TYPE_COMMAND_CPIO))
-#define FR_COMMAND_CPIO_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj), FR_TYPE_COMMAND_CPIO, 
FrCommandCpioClass))
-
-typedef struct _FrCommandCpio       FrCommandCpio;
-typedef struct _FrCommandCpioClass  FrCommandCpioClass;
-
-struct _FrCommandCpio
-{
-       FrCommand  __parent;
-       gboolean   is_empty;
-};
-
-struct _FrCommandCpioClass
-{
-       FrCommandClass __parent_class;
-};
-
-GType fr_command_cpio_get_type (void);
+G_DECLARE_FINAL_TYPE (FrCommandCpio, fr_command_cpio, FR, COMMAND_CPIO, FrCommand)
 
 #endif /* FR_COMMAND_CPIO_H */
diff --git a/src/fr-command-dpkg.c b/src/fr-command-dpkg.c
index 3a12c288..a7d14897 100644
--- a/src/fr-command-dpkg.c
+++ b/src/fr-command-dpkg.c
@@ -31,7 +31,14 @@
 #include "fr-command-dpkg.h"
 
 
-G_DEFINE_TYPE (FrCommandDpkg, fr_command_dpkg, FR_TYPE_COMMAND)
+struct _FrCommandDpkg
+{
+       FrCommand  parent_instance;
+       gboolean   is_empty;
+};
+
+
+G_DEFINE_TYPE (FrCommandDpkg, fr_command_dpkg, fr_command_get_type ())
 
 
 static void
diff --git a/src/fr-command-dpkg.h b/src/fr-command-dpkg.h
index fd554cb6..2331c89f 100644
--- a/src/fr-command-dpkg.h
+++ b/src/fr-command-dpkg.h
@@ -22,31 +22,8 @@
 #ifndef FR_COMMAND_DPKG_H
 #define FR_COMMAND_DPKG_H
 
-#include <glib.h>
 #include "fr-command.h"
-#include "fr-process.h"
 
-#define FR_TYPE_COMMAND_DPKG            (fr_command_dpkg_get_type ())
-#define FR_COMMAND_DPKG(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), FR_TYPE_COMMAND_DPKG, 
FrCommandDpkg))
-#define FR_COMMAND_DPKG_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), FR_TYPE_COMMAND_DPKG, 
FrCommandDpkgClass))
-#define FR_IS_COMMAND_DPKG(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FR_TYPE_COMMAND_DPKG))
-#define FR_IS_COMMAND_DPKG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FR_TYPE_COMMAND_DPKG))
-#define FR_COMMAND_DPKG_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj), FR_TYPE_COMMAND_DPKG, 
FrCommandDpkgClass))
-
-typedef struct _FrCommandDpkg       FrCommandDpkg;
-typedef struct _FrCommandDpkgClass  FrCommandDpkgClass;
-
-struct _FrCommandDpkg
-{
-       FrCommand  __parent;
-       gboolean   is_empty;
-};
-
-struct _FrCommandDpkgClass
-{
-       FrCommandClass __parent_class;
-};
-
-GType fr_command_dpkg_get_type (void);
+G_DECLARE_FINAL_TYPE (FrCommandDpkg, fr_command_dpkg, FR, COMMAND_DPKG, FrCommand)
 
 #endif /* FR_COMMAND_DPKG_H */
diff --git a/src/fr-command-iso.c b/src/fr-command-iso.c
index 11326522..8839376f 100644
--- a/src/fr-command-iso.c
+++ b/src/fr-command-iso.c
@@ -31,7 +31,15 @@
 #include "fr-command-iso.h"
 
 
-G_DEFINE_TYPE (FrCommandIso, fr_command_iso, FR_TYPE_COMMAND)
+struct _FrCommandIso
+{
+       FrCommand  parent_instance;
+       char      *cur_path;
+       gboolean   joliet;
+};
+
+
+G_DEFINE_TYPE (FrCommandIso, fr_command_iso, fr_command_get_type ())
 
 
 static time_t
diff --git a/src/fr-command-iso.h b/src/fr-command-iso.h
index 41917ee1..6abdce1d 100644
--- a/src/fr-command-iso.h
+++ b/src/fr-command-iso.h
@@ -22,32 +22,8 @@
 #ifndef FR_COMMAND_ISO_H
 #define FR_COMMAND_ISO_H
 
-#include <glib.h>
 #include "fr-command.h"
-#include "fr-process.h"
 
-#define FR_TYPE_COMMAND_ISO            (fr_command_iso_get_type ())
-#define FR_COMMAND_ISO(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), FR_TYPE_COMMAND_ISO, 
FrCommandIso))
-#define FR_COMMAND_ISO_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), FR_TYPE_COMMAND_ISO, 
FrCommandIsoClass))
-#define FR_IS_COMMAND_ISO(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FR_TYPE_COMMAND_ISO))
-#define FR_IS_COMMAND_ISO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FR_TYPE_COMMAND_ISO))
-#define FR_COMMAND_ISO_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj), FR_TYPE_COMMAND_ISO, 
FrCommandIsoClass))
-
-typedef struct _FrCommandIso       FrCommandIso;
-typedef struct _FrCommandIsoClass  FrCommandIsoClass;
-
-struct _FrCommandIso
-{
-       FrCommand  __parent;
-       char      *cur_path;
-       gboolean   joliet;
-};
-
-struct _FrCommandIsoClass
-{
-       FrCommandClass __parent_class;
-};
-
-GType fr_command_iso_get_type (void);
+G_DECLARE_FINAL_TYPE (FrCommandIso, fr_command_iso, FR, COMMAND_ISO, FrCommand)
 
 #endif /* FR_COMMAND_ISO_H */
diff --git a/src/fr-command-jar.c b/src/fr-command-jar.c
index c0cd17a2..490fb1dd 100644
--- a/src/fr-command-jar.c
+++ b/src/fr-command-jar.c
@@ -32,7 +32,13 @@
 #include "java-utils.h"
 
 
-G_DEFINE_TYPE (FrCommandJar, fr_command_jar, FR_TYPE_COMMAND_ZIP)
+struct _FrCommandJar
+{
+       FrCommandZip  parent_instance;
+};
+
+
+G_DEFINE_TYPE (FrCommandJar, fr_command_jar, fr_command_zip_get_type ())
 
 
 typedef struct {
diff --git a/src/fr-command-jar.h b/src/fr-command-jar.h
index 4ad14e9b..8984b4c3 100644
--- a/src/fr-command-jar.h
+++ b/src/fr-command-jar.h
@@ -22,29 +22,8 @@
 #ifndef FR_COMMAND_JAR_H
 #define FR_COMMAND_JAR_H
 
-#include <glib.h>
 #include "fr-command-zip.h"
 
-#define FR_TYPE_COMMAND_JAR            (fr_command_jar_get_type ())
-#define FR_COMMAND_JAR(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), FR_TYPE_COMMAND_JAR, 
FrCommandJar))
-#define FR_COMMAND_JAR_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), FR_TYPE_COMMAND_JAR, 
FrCommandJarClass))
-#define FR_IS_COMMAND_JAR(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FR_TYPE_COMMAND_JAR))
-#define FR_IS_COMMAND_JAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FR_TYPE_COMMAND_JAR))
-#define FR_COMMAND_JAR_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj), FR_TYPE_COMMAND_JAR, 
FrCommandJarClass))
-
-typedef struct _FrCommandJar       FrCommandJar;
-typedef struct _FrCommandJarClass  FrCommandJarClass;
-
-struct _FrCommandJar
-{
-       FrCommandZip  __parent;
-};
-
-struct _FrCommandJarClass
-{
-       FrCommandZipClass __parent_class;
-};
-
-GType fr_command_jar_get_type (void);
+G_DECLARE_FINAL_TYPE (FrCommandJar, fr_command_jar, FR, COMMAND_JAR, FrCommandZip)
 
 #endif /* FR_COMMAND_JAR_H */
diff --git a/src/fr-command-lha.c b/src/fr-command-lha.c
index f1de0e1c..ba08e5bd 100644
--- a/src/fr-command-lha.c
+++ b/src/fr-command-lha.c
@@ -31,7 +31,13 @@
 #include "fr-command-lha.h"
 
 
-G_DEFINE_TYPE (FrCommandLha, fr_command_lha, FR_TYPE_COMMAND)
+struct _FrCommandLha
+{
+       FrCommand  parent_instance;
+};
+
+
+G_DEFINE_TYPE (FrCommandLha, fr_command_lha, fr_command_get_type ())
 
 
 /* -- list -- */
diff --git a/src/fr-command-lha.h b/src/fr-command-lha.h
index f042e791..3670eac5 100644
--- a/src/fr-command-lha.h
+++ b/src/fr-command-lha.h
@@ -22,30 +22,8 @@
 #ifndef FR_COMMAND_LHA_H
 #define FR_COMMAND_LHA_H
 
-#include <glib.h>
 #include "fr-command.h"
-#include "fr-process.h"
 
-#define FR_TYPE_COMMAND_LHA            (fr_command_lha_get_type ())
-#define FR_COMMAND_LHA(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), FR_TYPE_COMMAND_LHA, 
FrCommandLha))
-#define FR_COMMAND_LHA_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), FR_TYPE_COMMAND_LHA, 
FrCommandLhaClass))
-#define FR_IS_COMMAND_LHA(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FR_TYPE_COMMAND_LHA))
-#define FR_IS_COMMAND_LHA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FR_TYPE_COMMAND_LHA))
-#define FR_COMMAND_LHA_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj), FR_TYPE_COMMAND_LHA, 
FrCommandLhaClass))
-
-typedef struct _FrCommandLha       FrCommandLha;
-typedef struct _FrCommandLhaClass  FrCommandLhaClass;
-
-struct _FrCommandLha
-{
-       FrCommand  __parent;
-};
-
-struct _FrCommandLhaClass
-{
-       FrCommandClass __parent_class;
-};
-
-GType fr_command_lha_get_type (void);
+G_DECLARE_FINAL_TYPE (FrCommandLha, fr_command_lha, FR, COMMAND_LHA, FrCommand)
 
 #endif /* FR_COMMAND_LHA_H */
diff --git a/src/fr-command-lrzip.c b/src/fr-command-lrzip.c
index 4fd29277..ae3427f8 100644
--- a/src/fr-command-lrzip.c
+++ b/src/fr-command-lrzip.c
@@ -19,7 +19,13 @@
 #include "fr-command-lrzip.h"
 
 
-G_DEFINE_TYPE (FrCommandLrzip, fr_command_lrzip, FR_TYPE_COMMAND)
+struct _FrCommandLrzip
+{
+       FrCommand  parent_instance;
+};
+
+
+G_DEFINE_TYPE (FrCommandLrzip, fr_command_lrzip, fr_command_get_type ())
 
 
 /* -- list -- */
diff --git a/src/fr-command-lrzip.h b/src/fr-command-lrzip.h
index 910a6964..3251b6e2 100644
--- a/src/fr-command-lrzip.h
+++ b/src/fr-command-lrzip.h
@@ -8,30 +8,8 @@
 #ifndef FRCOMMANDLRZIP_H_
 #define FRCOMMANDLRZIP_H_
 
-#include <glib.h>
 #include "fr-command.h"
-#include "fr-process.h"
 
-#define FR_TYPE_COMMAND_LRZIP            (fr_command_lrzip_get_type ())
-#define FR_COMMAND_LRZIP(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), FR_TYPE_COMMAND_LRZIP, 
FrCommandLrzip))
-#define FR_COMMAND_LRZIP_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), FR_TYPE_COMMAND_LRZIP, 
FrCommandLrzipClass))
-#define FR_IS_COMMAND_LRZIP(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FR_TYPE_COMMAND_LRZIP))
-#define FR_IS_COMMAND_LRZIP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FR_TYPE_COMMAND_LRZIP))
-#define FR_COMMAND_LRZIP_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj), FR_TYPE_COMMAND_LRZIP, 
FrCommandLrzipClass))
-
-typedef struct _FrCommandLrzip       FrCommandLrzip;
-typedef struct _FrCommandLrzipClass  FrCommandLrzipClass;
-
-struct _FrCommandLrzip
-{
-       FrCommand  __parent;
-};
-
-struct _FrCommandLrzipClass
-{
-       FrCommandClass __parent_class;
-};
-
-GType fr_command_lrzip_get_type (void);
+G_DECLARE_FINAL_TYPE (FrCommandLrzip, fr_command_lrzip, FR, COMMAND_LRZIP, FrCommand)
 
 #endif /* FRCOMMANDLRZIP_H_ */
diff --git a/src/fr-command-rar.c b/src/fr-command-rar.c
index 8f31f7a3..8407f379 100644
--- a/src/fr-command-rar.c
+++ b/src/fr-command-rar.c
@@ -36,7 +36,19 @@
 #include "rar-utils.h"
 
 
-G_DEFINE_TYPE (FrCommandRar, fr_command_rar, FR_TYPE_COMMAND)
+struct _FrCommandRar
+{
+       FrCommand  parent_instance;
+
+       gboolean   list_started;
+       gboolean   rar4_odd_line;
+       gboolean   rar5;
+       gboolean   rar5_30;
+       FileData  *fdata;
+};
+
+
+G_DEFINE_TYPE (FrCommandRar, fr_command_rar, fr_command_get_type ())
 
 
 static gboolean
diff --git a/src/fr-command-rar.h b/src/fr-command-rar.h
index 2a6e671d..a6a64ea2 100644
--- a/src/fr-command-rar.h
+++ b/src/fr-command-rar.h
@@ -22,37 +22,8 @@
 #ifndef FR_COMMAND_RAR_H
 #define FR_COMMAND_RAR_H
 
-#include <glib.h>
-#include "file-data.h"
 #include "fr-command.h"
-#include "fr-process.h"
 
-#define FR_TYPE_COMMAND_RAR            (fr_command_rar_get_type ())
-#define FR_COMMAND_RAR(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), FR_TYPE_COMMAND_RAR, 
FrCommandRar))
-#define FR_COMMAND_RAR_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), FR_TYPE_COMMAND_RAR, 
FrCommandRarClass))
-#define FR_IS_COMMAND_RAR(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FR_TYPE_COMMAND_RAR))
-#define FR_IS_COMMAND_RAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FR_TYPE_COMMAND_RAR))
-#define FR_COMMAND_RAR_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj), FR_TYPE_COMMAND_RAR, 
FrCommandRarClass))
-
-typedef struct _FrCommandRar       FrCommandRar;
-typedef struct _FrCommandRarClass  FrCommandRarClass;
-
-struct _FrCommandRar
-{
-       FrCommand  __parent;
-
-       gboolean  list_started;
-       gboolean  rar4_odd_line;
-       gboolean  rar5;
-       gboolean  rar5_30;
-       FileData *fdata;
-};
-
-struct _FrCommandRarClass
-{
-       FrCommandClass __parent_class;
-};
-
-GType fr_command_rar_get_type (void);
+G_DECLARE_FINAL_TYPE (FrCommandRar, fr_command_rar, FR, COMMAND_RAR, FrCommand)
 
 #endif /* FR_COMMAND_RAR_H */
diff --git a/src/fr-command-rpm.c b/src/fr-command-rpm.c
index be86040a..0c130ded 100644
--- a/src/fr-command-rpm.c
+++ b/src/fr-command-rpm.c
@@ -31,7 +31,14 @@
 #include "fr-command-rpm.h"
 
 
-G_DEFINE_TYPE (FrCommandRpm, fr_command_rpm, FR_TYPE_COMMAND)
+struct _FrCommandRpm
+{
+       FrCommand  parent_instance;
+       gboolean   is_empty;
+};
+
+
+G_DEFINE_TYPE (FrCommandRpm, fr_command_rpm, fr_command_get_type ())
 
 
 /* -- list -- */
diff --git a/src/fr-command-rpm.h b/src/fr-command-rpm.h
index ee79994f..1b2f6b54 100644
--- a/src/fr-command-rpm.h
+++ b/src/fr-command-rpm.h
@@ -22,31 +22,8 @@
 #ifndef FR_COMMAND_RPM_H
 #define FR_COMMAND_RPM_H
 
-#include <glib.h>
 #include "fr-command.h"
-#include "fr-process.h"
 
-#define FR_TYPE_COMMAND_RPM            (fr_command_rpm_get_type ())
-#define FR_COMMAND_RPM(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), FR_TYPE_COMMAND_RPM, 
FrCommandRpm))
-#define FR_COMMAND_RPM_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), FR_TYPE_COMMAND_RPM, 
FrCommandRpmClass))
-#define FR_IS_COMMAND_RPM(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FR_TYPE_COMMAND_RPM))
-#define FR_IS_COMMAND_RPM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FR_TYPE_COMMAND_RPM))
-#define FR_COMMAND_RPM_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj), FR_TYPE_COMMAND_RPM, 
FrCommandRpmClass))
-
-typedef struct _FrCommandRpm       FrCommandRpm;
-typedef struct _FrCommandRpmClass  FrCommandRpmClass;
-
-struct _FrCommandRpm
-{
-       FrCommand  __parent;
-       gboolean   is_empty;
-};
-
-struct _FrCommandRpmClass
-{
-       FrCommandClass __parent_class;
-};
-
-GType fr_command_rpm_get_type (void);
+G_DECLARE_FINAL_TYPE (FrCommandRpm, fr_command_rpm, FR, COMMAND_RPM, FrCommand)
 
 #endif /* FR_COMMAND_RPM_H */
diff --git a/src/fr-command-tar.c b/src/fr-command-tar.c
index 83108e33..5e56b719 100644
--- a/src/fr-command-tar.c
+++ b/src/fr-command-tar.c
@@ -37,7 +37,19 @@
 #define ACTIVITY_DELAY 20
 
 
-G_DEFINE_TYPE (FrCommandTar, fr_command_tar, FR_TYPE_COMMAND)
+struct _FrCommandTar
+{
+       FrCommand  parent_instance;
+
+       char      *uncomp_filename;
+       gboolean   name_modified;
+       char      *compress_command;
+
+       char      *msg;
+};
+
+
+G_DEFINE_TYPE (FrCommandTar, fr_command_tar, fr_command_get_type ())
 
 
 /* -- list -- */
diff --git a/src/fr-command-tar.h b/src/fr-command-tar.h
index 77b03a73..e2afa929 100644
--- a/src/fr-command-tar.h
+++ b/src/fr-command-tar.h
@@ -22,39 +22,8 @@
 #ifndef FR_COMMAND_TAR_H
 #define FR_COMMAND_TAR_H
 
-#include <glib.h>
 #include "fr-command.h"
-#include "fr-process.h"
-#include "typedefs.h"
 
-#define FR_TYPE_COMMAND_TAR            (fr_command_tar_get_type ())
-#define FR_COMMAND_TAR(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), FR_TYPE_COMMAND_TAR, 
FrCommandTar))
-#define FR_COMMAND_TAR_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), FR_TYPE_COMMAND_TAR, 
FrCommandTarClass))
-#define FR_IS_COMMAND_TAR(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FR_TYPE_COMMAND_TAR))
-#define FR_IS_COMMAND_TAR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FR_TYPE_COMMAND_TAR))
-#define FR_COMMAND_TAR_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj), FR_TYPE_COMMAND_TAR, 
FrCommandTarClass))
-
-typedef struct _FrCommandTar       FrCommandTar;
-typedef struct _FrCommandTarClass  FrCommandTarClass;
-
-struct _FrCommandTar
-{
-       FrCommand  __parent;
-
-       /*<private>*/
-
-       char      *uncomp_filename;
-       gboolean   name_modified;
-       char      *compress_command;
-       
-       char      *msg;
-};
-
-struct _FrCommandTarClass
-{
-       FrCommandClass __parent_class;
-};
-
-GType fr_command_tar_get_type (void);
+G_DECLARE_FINAL_TYPE (FrCommandTar, fr_command_tar, FR, COMMAND_TAR, FrCommand)
 
 #endif /* FR_COMMAND_TAR_H */
diff --git a/src/fr-command-unarchiver.c b/src/fr-command-unarchiver.c
index 5e8fd705..6105e202 100644
--- a/src/fr-command-unarchiver.c
+++ b/src/fr-command-unarchiver.c
@@ -42,7 +42,15 @@
 #define UNARCHIVER_SPECIAL_CHARACTERS "["
 
 
-G_DEFINE_TYPE (FrCommandUnarchiver, fr_command_unarchiver, FR_TYPE_COMMAND)
+struct _FrCommandUnarchiver
+{
+       FrCommand     parent_instance;
+       GInputStream *stream;
+       int           n_line;
+};
+
+
+G_DEFINE_TYPE (FrCommandUnarchiver, fr_command_unarchiver, fr_command_get_type ())
 
 
 /* -- list -- */
diff --git a/src/fr-command-unarchiver.h b/src/fr-command-unarchiver.h
index 77d0aae2..9952f39b 100644
--- a/src/fr-command-unarchiver.h
+++ b/src/fr-command-unarchiver.h
@@ -22,34 +22,8 @@
 #ifndef FR_COMMAND_UNARCHIVER_H
 #define FR_COMMAND_UNARCHIVER_H
 
-#include <glib.h>
-#include "file-data.h"
 #include "fr-command.h"
-#include "fr-process.h"
 
-#define FR_TYPE_COMMAND_UNARCHIVER            (fr_command_unarchiver_get_type ())
-#define FR_COMMAND_UNARCHIVER(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), 
FR_TYPE_COMMAND_UNARCHIVER, FrCommandUnarchiver))
-#define FR_COMMAND_UNARCHIVER_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), FR_TYPE_COMMAND_UNARCHIVER, 
FrCommandUnarchiverClass))
-#define FR_IS_COMMAND_UNARCHIVER(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), 
FR_TYPE_COMMAND_UNARCHIVER))
-#define FR_IS_COMMAND_UNARCHIVER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FR_TYPE_COMMAND_UNARCHIVER))
-#define FR_COMMAND_UNARCHIVER_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj), FR_TYPE_COMMAND_UNARCHIVER, 
FrCommandUnarchiverClass))
-
-typedef struct _FrCommandUnarchiver       FrCommandUnarchiver;
-typedef struct _FrCommandUnarchiverClass  FrCommandUnarchiverClass;
-
-struct _FrCommandUnarchiver
-{
-       FrCommand  __parent;
-
-       GInputStream *stream;
-       int           n_line;
-};
-
-struct _FrCommandUnarchiverClass
-{
-       FrCommandClass __parent_class;
-};
-
-GType fr_command_unarchiver_get_type (void);
+G_DECLARE_FINAL_TYPE (FrCommandUnarchiver, fr_command_unarchiver, FR, COMMAND_UNARCHIVER, FrCommand)
 
 #endif /* FR_COMMAND_UNARCHIVER_H */
diff --git a/src/fr-command-unsquashfs.c b/src/fr-command-unsquashfs.c
index f568d856..9d23dafa 100644
--- a/src/fr-command-unsquashfs.c
+++ b/src/fr-command-unsquashfs.c
@@ -31,7 +31,13 @@
 #include "fr-command-unsquashfs.h"
 
 
-G_DEFINE_TYPE (FrCommandUnsquashfs, fr_command_unsquashfs, FR_TYPE_COMMAND)
+struct _FrCommandUnsquashfs
+{
+       FrCommand  parent_instance;
+};
+
+
+G_DEFINE_TYPE (FrCommandUnsquashfs, fr_command_unsquashfs, fr_command_get_type ())
 
 typedef struct {
         FrCommand *command;
diff --git a/src/fr-command-unsquashfs.h b/src/fr-command-unsquashfs.h
index 5a143ab0..d459ceac 100644
--- a/src/fr-command-unsquashfs.h
+++ b/src/fr-command-unsquashfs.h
@@ -22,30 +22,8 @@
 #ifndef FR_COMMAND_UNSQUASHFS_H
 #define FR_COMMAND_UNSQUASHFS_H
 
-#include <glib.h>
 #include "fr-command.h"
-#include "fr-process.h"
 
-#define FR_TYPE_COMMAND_UNSQUASHFS            (fr_command_unsquashfs_get_type ())
-#define FR_COMMAND_UNSQUASHFS(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), 
FR_TYPE_COMMAND_UNSQUASHFS, FrCommandUnsquashfs))
-#define FR_COMMAND_UNSQUASHFS_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), FR_TYPE_COMMAND_UNSQUASHFS, 
FrCommandUnsquashfsClass))
-#define FR_IS_COMMAND_UNSQUASHFS(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), 
FR_TYPE_COMMAND_UNSQUASHFS))
-#define FR_IS_COMMAND_UNSQUASHFS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FR_TYPE_COMMAND_UNSQUASHFS))
-#define FR_COMMAND_UNSQUASHFS_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj), FR_TYPE_COMMAND_UNSQUASHFS, 
FrCommandUnsquashfsClass))
-
-typedef struct _FrCommandUnsquashfs       FrCommandUnsquashfs;
-typedef struct _FrCommandUnsquashfsClass  FrCommandUnsquashfsClass;
-
-struct _FrCommandUnsquashfs
-{
-       FrCommand  __parent;
-};
-
-struct _FrCommandUnsquashfsClass
-{
-       FrCommandClass __parent_class;
-};
-
-GType fr_command_unsquashfs_get_type (void);
+G_DECLARE_FINAL_TYPE (FrCommandUnsquashfs, fr_command_unsquashfs, FR, COMMAND_UNSQUASHFS, FrCommand)
 
 #endif /* FR_COMMAND_UNSQUASHFS_H */
diff --git a/src/fr-command-unstuff.c b/src/fr-command-unstuff.c
index 8b3ccdf8..24da605b 100644
--- a/src/fr-command-unstuff.c
+++ b/src/fr-command-unstuff.c
@@ -32,7 +32,16 @@
 #include "glib-utils.h"
 
 
-G_DEFINE_TYPE (FrCommandUnstuff, fr_command_unstuff, FR_TYPE_COMMAND)
+struct _FrCommandUnstuff
+{
+       FrCommand  parent_instance;
+
+       char      *target_dir;
+       FileData  *fdata;
+};
+
+
+G_DEFINE_TYPE (FrCommandUnstuff, fr_command_unstuff, fr_command_get_type ())
 
 
 /* recursive rmdir to remove the left-overs from unstuff */
diff --git a/src/fr-command-unstuff.h b/src/fr-command-unstuff.h
index d508cc6e..9005c109 100644
--- a/src/fr-command-unstuff.h
+++ b/src/fr-command-unstuff.h
@@ -22,34 +22,8 @@
 #ifndef FR_COMMAND_UNSTUFF_H
 #define FR_COMMAND_UNSTUFF_H
 
-#include <glib.h>
-#include "file-data.h"
 #include "fr-command.h"
-#include "fr-process.h"
 
-#define FR_TYPE_COMMAND_UNSTUFF            (fr_command_unstuff_get_type ())
-#define FR_COMMAND_UNSTUFF(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), FR_TYPE_COMMAND_UNSTUFF, 
FrCommandUnstuff))
-#define FR_COMMAND_UNSTUFF_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), FR_TYPE_COMMAND_UNSTUFF, 
FrCommandUnstuffClass))
-#define FR_IS_COMMAND_UNSTUFF(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FR_TYPE_COMMAND_UNSTUFF))
-#define FR_IS_COMMAND_UNSTUFF_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FR_TYPE_COMMAND_UNSTUFF))
-#define FR_COMMAND_UNSTUFF_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj), FR_TYPE_COMMAND_UNSTUFF, 
FrCommandUnstuffClass))
-
-typedef struct _FrCommandUnstuff       FrCommandUnstuff;
-typedef struct _FrCommandUnstuffClass  FrCommandUnstuffClass;
-
-struct _FrCommandUnstuff
-{
-       FrCommand  __parent;
-
-       char      *target_dir;
-       FileData  *fdata;
-};
-
-struct _FrCommandUnstuffClass
-{
-       FrCommandClass __parent_class;
-};
-
-GType fr_command_unstuff_get_type (void);
+G_DECLARE_FINAL_TYPE (FrCommandUnstuff, fr_command_unstuff, FR, COMMAND_UNSTUFF, FrCommand)
 
 #endif /* FR_COMMAND_UNSTUFF_H */
diff --git a/src/fr-command-zip.c b/src/fr-command-zip.c
index 937a2def..296d04b5 100644
--- a/src/fr-command-zip.c
+++ b/src/fr-command-zip.c
@@ -34,7 +34,13 @@
 #define ZIP_SPECIAL_CHARACTERS "[]*?!^-\\"
 
 
-G_DEFINE_TYPE (FrCommandZip, fr_command_zip, FR_TYPE_COMMAND)
+typedef struct
+{
+       gboolean   is_empty;
+} FrCommandZipPrivate;
+
+
+G_DEFINE_TYPE_WITH_PRIVATE (FrCommandZip, fr_command_zip, fr_command_get_type ())
 
 
 /* -- list -- */
@@ -88,17 +94,18 @@ static void
 list__process_line (char     *line,
                    gpointer  data)
 {
-       FileData    *fdata;
-       FrCommand   *comm = FR_COMMAND (data);
-       char       **fields;
-       const char  *name_field;
-       gint         line_l;
+       FrCommandZip        *comm = data;
+       FrCommandZipPrivate *priv = fr_command_zip_get_instance_private (comm);
+       FileData            *fdata;
+       char               **fields;
+       const char          *name_field;
+       gint                 line_l;
 
        g_return_if_fail (line != NULL);
 
        /* check whether unzip gave the empty archive warning. */
 
-       if (FR_COMMAND_ZIP (comm)->is_empty)
+       if (priv->is_empty)
                return;
 
        line_l = strlen (line);
@@ -107,7 +114,7 @@ list__process_line (char     *line,
                return;
 
        if (strcmp (line, EMPTY_ARCHIVE_WARNING) == 0) {
-               FR_COMMAND_ZIP (comm)->is_empty = TRUE;
+               priv->is_empty = TRUE;
                return;
        }
 
@@ -168,9 +175,10 @@ add_password_arg (FrCommand  *comm,
 static void
 list__begin (gpointer data)
 {
-       FrCommandZip *comm = data;
+       FrCommandZip        *comm = data;
+       FrCommandZipPrivate *priv = fr_command_zip_get_instance_private (comm);
 
-       comm->is_empty = FALSE;
+       priv->is_empty = FALSE;
 }
 
 
@@ -467,7 +475,8 @@ fr_command_zip_class_init (FrCommandZipClass *klass)
 static void
 fr_command_zip_init (FrCommandZip *self)
 {
-       FrArchive *base = FR_ARCHIVE (self);
+       FrCommandZipPrivate *priv = fr_command_zip_get_instance_private (self);
+       FrArchive           *base = FR_ARCHIVE (self);
 
        base->propAddCanUpdate             = TRUE;
        base->propAddCanReplace            = TRUE;
@@ -479,5 +488,5 @@ fr_command_zip_init (FrCommandZip *self)
        base->propPassword                 = TRUE;
        base->propTest                     = TRUE;
 
-       self->is_empty = FALSE;
+       priv->is_empty = FALSE;
 }
diff --git a/src/fr-command-zip.h b/src/fr-command-zip.h
index 9ba6211f..2287d175 100644
--- a/src/fr-command-zip.h
+++ b/src/fr-command-zip.h
@@ -22,31 +22,13 @@
 #ifndef FR_COMMAND_ZIP_H
 #define FR_COMMAND_ZIP_H
 
-#include <glib.h>
 #include "fr-command.h"
-#include "fr-process.h"
 
-#define FR_TYPE_COMMAND_ZIP            (fr_command_zip_get_type ())
-#define FR_COMMAND_ZIP(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), FR_TYPE_COMMAND_ZIP, 
FrCommandZip))
-#define FR_COMMAND_ZIP_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), FR_TYPE_COMMAND_ZIP, 
FrCommandZipClass))
-#define FR_IS_COMMAND_ZIP(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FR_TYPE_COMMAND_ZIP))
-#define FR_IS_COMMAND_ZIP_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FR_TYPE_COMMAND_ZIP))
-#define FR_COMMAND_ZIP_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj), FR_TYPE_COMMAND_ZIP, 
FrCommandZipClass))
-
-typedef struct _FrCommandZip       FrCommandZip;
-typedef struct _FrCommandZipClass  FrCommandZipClass;
-
-struct _FrCommandZip
-{
-       FrCommand  __parent;
-       gboolean   is_empty;
-};
+G_DECLARE_DERIVABLE_TYPE (FrCommandZip, fr_command_zip, FR, COMMAND_ZIP, FrCommand)
 
 struct _FrCommandZipClass
 {
-       FrCommandClass __parent_class;
+       FrCommandClass parent_class;
 };
 
-GType fr_command_zip_get_type (void);
-
 #endif /* FR_COMMAND_ZIP_H */
diff --git a/src/fr-command-zoo.c b/src/fr-command-zoo.c
index c8f210af..6cb754ab 100644
--- a/src/fr-command-zoo.c
+++ b/src/fr-command-zoo.c
@@ -31,7 +31,13 @@
 #include "fr-command-zoo.h"
 
 
-G_DEFINE_TYPE (FrCommandZoo, fr_command_zoo, FR_TYPE_COMMAND)
+struct _FrCommandZoo
+{
+       FrCommand  parent_instance;
+};
+
+
+G_DEFINE_TYPE (FrCommandZoo, fr_command_zoo, fr_command_get_type ())
 
 
 /* -- list -- */
diff --git a/src/fr-command-zoo.h b/src/fr-command-zoo.h
index 0a7d891b..198ec31b 100644
--- a/src/fr-command-zoo.h
+++ b/src/fr-command-zoo.h
@@ -22,31 +22,8 @@
 #ifndef FR_COMMAND_ZOO_H
 #define FR_COMMAND_ZOO_H
 
-#include <glib.h>
 #include "fr-command.h"
-#include "fr-process.h"
-#include "typedefs.h"
 
-#define FR_TYPE_COMMAND_ZOO            (fr_command_zoo_get_type ())
-#define FR_COMMAND_ZOO(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), FR_TYPE_COMMAND_ZOO, 
FrCommandZoo))
-#define FR_COMMAND_ZOO_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), FR_TYPE_COMMAND_ZOO, 
FrCommandZooClass))
-#define FR_IS_COMMAND_ZOO(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FR_TYPE_COMMAND_ZOO))
-#define FR_IS_COMMAND_ZOO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FR_TYPE_COMMAND_ZOO))
-#define FR_COMMAND_ZOO_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS((obj), FR_TYPE_COMMAND_ZOO, 
FrCommandZooClass))
-
-typedef struct _FrCommandZoo       FrCommandZoo;
-typedef struct _FrCommandZooClass  FrCommandZooClass;
-
-struct _FrCommandZoo
-{
-       FrCommand  __parent;
-};
-
-struct _FrCommandZooClass
-{
-       FrCommandClass __parent_class;
-};
-
-GType fr_command_zoo_get_type (void);
+G_DECLARE_FINAL_TYPE (FrCommandZoo, fr_command_zoo, FR, COMMAND_ZOO, FrCommand)
 
 #endif /* FR_COMMAND_ZOO_H */
diff --git a/src/fr-command.h b/src/fr-command.h
index 1acf2203..c51327b5 100644
--- a/src/fr-command.h
+++ b/src/fr-command.h
@@ -39,6 +39,8 @@ typedef struct _FrCommand        FrCommand;
 typedef struct _FrCommandClass   FrCommandClass;
 typedef struct _FrCommandPrivate FrCommandPrivate;
 
+G_DEFINE_AUTOPTR_CLEANUP_FUNC (FrCommand, g_object_unref)
+
 struct _FrCommand {
        FrArchive  __parent;
        FrCommandPrivate *priv;
diff --git a/src/fr-init.c b/src/fr-init.c
index e4269bb1..583b9ade 100644
--- a/src/fr-init.c
+++ b/src/fr-init.c
@@ -363,31 +363,31 @@ register_archives (void)
         * format, regardless of the registration order. */
 
 #if ENABLE_LIBARCHIVE
-       register_archive (FR_TYPE_ARCHIVE_LIBARCHIVE);
+       register_archive (fr_archive_libarchive_get_type ());
 #endif
 
-       register_archive (FR_TYPE_COMMAND_TAR);
-       register_archive (FR_TYPE_COMMAND_CFILE);
-       register_archive (FR_TYPE_COMMAND_7Z);
-       register_archive (FR_TYPE_COMMAND_DPKG);
-
-       register_archive (FR_TYPE_COMMAND_ACE);
-       register_archive (FR_TYPE_COMMAND_ALZ);
-       register_archive (FR_TYPE_COMMAND_AR);
-       register_archive (FR_TYPE_COMMAND_ARJ);
-       register_archive (FR_TYPE_COMMAND_CPIO);
-       register_archive (FR_TYPE_COMMAND_ISO);
-       register_archive (FR_TYPE_COMMAND_JAR);
-       register_archive (FR_TYPE_COMMAND_LHA);
-       register_archive (FR_TYPE_COMMAND_RAR);
-       register_archive (FR_TYPE_COMMAND_RPM);
-       register_archive (FR_TYPE_COMMAND_UNSQUASHFS);
-       register_archive (FR_TYPE_COMMAND_UNSTUFF);
-       register_archive (FR_TYPE_COMMAND_ZIP);
-       register_archive (FR_TYPE_COMMAND_LRZIP);
-       register_archive (FR_TYPE_COMMAND_ZOO);
+       register_archive (fr_command_tar_get_type ());
+       register_archive (fr_command_cfile_get_type ());
+       register_archive (fr_command_7z_get_type ());
+       register_archive (fr_command_dpkg_get_type ());
+
+       register_archive (fr_command_ace_get_type ());
+       register_archive (fr_command_alz_get_type ());
+       register_archive (fr_command_ar_get_type ());
+       register_archive (fr_command_arj_get_type ());
+       register_archive (fr_command_cpio_get_type ());
+       register_archive (fr_command_iso_get_type ());
+       register_archive (fr_command_jar_get_type ());
+       register_archive (fr_command_lha_get_type ());
+       register_archive (fr_command_rar_get_type ());
+       register_archive (fr_command_rpm_get_type ());
+       register_archive (fr_command_unsquashfs_get_type ());
+       register_archive (fr_command_unstuff_get_type ());
+       register_archive (fr_command_zip_get_type ());
+       register_archive (fr_command_lrzip_get_type ());
+       register_archive (fr_command_zoo_get_type ());
 #if HAVE_JSON_GLIB
-       register_archive (FR_TYPE_COMMAND_UNARCHIVER);
+       register_archive (fr_command_unarchiver_get_type ());
 #endif
 }
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]