[gnome-commander] Use G_DEFINE_TYPE for GnomeCmdChownDialog



commit 4d2cbf2af81ee5c1b58f76fd72cfb8f9fd18a75f
Author: Piotr Eljasiak <epiotr src gnome org>
Date:   Sun Jan 23 14:30:00 2011 +0100

    Use G_DEFINE_TYPE for GnomeCmdChownDialog

 src/gnome-cmd-chown-dialog.cc |   73 +++++++----------------------------------
 src/gnome-cmd-chown-dialog.h  |   12 +++---
 2 files changed, 18 insertions(+), 67 deletions(-)
---
diff --git a/src/gnome-cmd-chown-dialog.cc b/src/gnome-cmd-chown-dialog.cc
index c372685..6646e95 100644
--- a/src/gnome-cmd-chown-dialog.cc
+++ b/src/gnome-cmd-chown-dialog.cc
@@ -40,17 +40,15 @@ struct GnomeCmdChownDialogPrivate
     GtkWidget *recurse_check;
 };
 
-static GnomeCmdDialogClass *parent_class = NULL;
+G_DEFINE_TYPE (GnomeCmdChownDialog, gnome_cmd_chown_dialog, GNOME_CMD_TYPE_DIALOG)
 
 
 static void do_chown (GnomeCmdFile *in, uid_t uid, gid_t gid, gboolean recurse)
 {
-    GnomeVFSResult ret;
-
     g_return_if_fail (in != NULL);
     g_return_if_fail (in->info != NULL);
 
-    ret = in->chown(uid, gid);
+    GnomeVFSResult ret = in->chown(uid, gid);
 
     if (ret != GNOME_VFS_OK)
     {
@@ -127,44 +125,25 @@ static void on_cancel (GtkButton *button, GnomeCmdChownDialog *dialog)
 }
 
 
-/*******************************
- * Gtk class implementation
- *******************************/
-
-static void
-destroy (GtkObject *object)
+static void gnome_cmd_chown_dialog_finalize (GObject *object)
 {
     GnomeCmdChownDialog *dialog = GNOME_CMD_CHOWN_DIALOG (object);
 
     g_free (dialog->priv);
 
-    if (GTK_OBJECT_CLASS (parent_class)->destroy)
-        (*GTK_OBJECT_CLASS (parent_class)->destroy) (object);
-}
-
-
-static void
-map (GtkWidget *widget)
-{
-    if (GTK_WIDGET_CLASS (parent_class)->map != NULL)
-        GTK_WIDGET_CLASS (parent_class)->map (widget);
+    G_OBJECT_CLASS (gnome_cmd_chown_dialog_parent_class)->finalize (object);
 }
 
 
-static void
-class_init (GnomeCmdChownDialogClass *klass)
+static void gnome_cmd_chown_dialog_class_init (GnomeCmdChownDialogClass *klass)
 {
-    GtkObjectClass *object_class = GTK_OBJECT_CLASS (klass);
-    GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
+    GObjectClass *object_class = G_OBJECT_CLASS (klass);
 
-    parent_class = (GnomeCmdDialogClass *) gtk_type_class (GNOME_CMD_TYPE_DIALOG);
-    object_class->destroy = destroy;
-    widget_class->map = ::map;
+    object_class->finalize = gnome_cmd_chown_dialog_finalize;
 }
 
 
-static void
-init (GnomeCmdChownDialog *dialog)
+static void gnome_cmd_chown_dialog_init (GnomeCmdChownDialog *dialog)
 {
     GtkWidget *chown_dialog = GTK_WIDGET (dialog);
     GtkWidget *vbox;
@@ -187,11 +166,8 @@ init (GnomeCmdChownDialog *dialog)
     dialog->priv->recurse_check = create_check (GTK_WIDGET (dialog), _("Apply Recursively"), "check");
     gtk_box_pack_start (GTK_BOX (vbox), dialog->priv->recurse_check, FALSE, FALSE, 0);
 
-
-    gnome_cmd_dialog_add_button (GNOME_CMD_DIALOG (dialog), GTK_STOCK_CANCEL,
-                                 GTK_SIGNAL_FUNC (on_cancel), dialog);
-    gnome_cmd_dialog_add_button (GNOME_CMD_DIALOG (dialog), GTK_STOCK_OK,
-                                 GTK_SIGNAL_FUNC (on_ok), dialog);
+    gnome_cmd_dialog_add_button (GNOME_CMD_DIALOG (dialog), GTK_STOCK_CANCEL, GTK_SIGNAL_FUNC (on_cancel), dialog);
+    gnome_cmd_dialog_add_button (GNOME_CMD_DIALOG (dialog), GTK_STOCK_OK, GTK_SIGNAL_FUNC (on_ok), dialog);
 }
 
 
@@ -199,12 +175,11 @@ init (GnomeCmdChownDialog *dialog)
  * Public functions
  ***********************************/
 
-GtkWidget*
-gnome_cmd_chown_dialog_new (GList *files)
+GtkWidget *gnome_cmd_chown_dialog_new (GList *files)
 {
     g_return_val_if_fail (files != NULL, NULL);
 
-    GnomeCmdChownDialog *dialog = (GnomeCmdChownDialog *) gtk_type_new (gnome_cmd_chown_dialog_get_type ());
+    GnomeCmdChownDialog *dialog = (GnomeCmdChownDialog *) g_object_new (GNOME_CMD_TYPE_CHOWN_DIALOG, NULL);
     dialog->priv->files = gnome_cmd_file_list_copy (files);
     GnomeCmdFile *f = GNOME_CMD_FILE (dialog->priv->files->data);
 
@@ -212,27 +187,3 @@ gnome_cmd_chown_dialog_new (GList *files)
 
     return GTK_WIDGET (dialog);
 }
-
-
-GtkType gnome_cmd_chown_dialog_get_type ()
-{
-    static GtkType dlg_type = 0;
-
-    if (dlg_type == 0)
-    {
-        GtkTypeInfo dlg_info =
-        {
-            "GnomeCmdChownDialog",
-            sizeof (GnomeCmdChownDialog),
-            sizeof (GnomeCmdChownDialogClass),
-            (GtkClassInitFunc) class_init,
-            (GtkObjectInitFunc) init,
-            /* reserved_1 */ NULL,
-            /* reserved_2 */ NULL,
-            (GtkClassInitFunc) NULL
-        };
-
-        dlg_type = gtk_type_unique (GNOME_CMD_TYPE_DIALOG, &dlg_info);
-    }
-    return dlg_type;
-}
diff --git a/src/gnome-cmd-chown-dialog.h b/src/gnome-cmd-chown-dialog.h
index e5c4428..3355ba7 100644
--- a/src/gnome-cmd-chown-dialog.h
+++ b/src/gnome-cmd-chown-dialog.h
@@ -21,12 +21,12 @@
 #ifndef __GNOME_CMD_CHOWN_DIALOG_H__
 #define __GNOME_CMD_CHOWN_DIALOG_H__
 
-#define GNOME_CMD_CHOWN_DIALOG(obj) \
-    GTK_CHECK_CAST (obj, gnome_cmd_chown_dialog_get_type (), GnomeCmdChownDialog)
-#define GNOME_CMD_CHOWN_DIALOG_CLASS(klass) \
-    GTK_CHECK_CLASS_CAST (klass, gnome_cmd_chown_dialog_get_type (), GnomeCmdChownDialogClass)
-#define GNOME_CMD_IS_CHOWN_DIALOG(obj) \
-    GTK_CHECK_TYPE (obj, gnome_cmd_chown_dialog_get_type ())
+#define GNOME_CMD_TYPE_CHOWN_DIALOG         (gnome_cmd_chown_dialog_get_type ())
+#define GNOME_CMD_CHOWN_DIALOG(obj)         (G_TYPE_CHECK_INSTANCE_CAST ((obj), GNOME_CMD_TYPE_CHOWN_DIALOG, GnomeCmdChownDialog))
+#define GNOME_CMD_IS_CHOWN_DIALOG(obj)      (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GNOME_CMD_TYPE_CHOWN_DIALOG))
+
+
+GType gnome_cmd_chown_dialog_get_type ();
 
 
 struct GnomeCmdChownDialogPrivate;



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