[gnome-commander] Use G_DEFINE_TYPE for GnomeCmdDir
- From: Piotr Eljasiak <epiotr src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-commander] Use G_DEFINE_TYPE for GnomeCmdDir
- Date: Mon, 31 Jan 2011 18:48:56 +0000 (UTC)
commit b08be596e2a1bffed1afa6cba9c0b756aa9436a3
Author: Piotr Eljasiak <epiotr src gnome org>
Date: Mon Jan 31 19:38:50 2011 +0100
Use G_DEFINE_TYPE for GnomeCmdDir
src/gnome-cmd-dir.cc | 88 ++++++++++++++++---------------------------------
src/gnome-cmd-dir.h | 5 ++-
2 files changed, 32 insertions(+), 61 deletions(-)
---
diff --git a/src/gnome-cmd-dir.cc b/src/gnome-cmd-dir.cc
index f060567..6ba8095 100644
--- a/src/gnome-cmd-dir.cc
+++ b/src/gnome-cmd-dir.cc
@@ -71,7 +71,9 @@ struct GnomeCmdDirPrivate
gint monitor_users;
};
-static GnomeCmdFileClass *parent_class = NULL;
+
+G_DEFINE_TYPE (GnomeCmdDir, gnome_cmd_dir, GNOME_CMD_TYPE_FILE)
+
static guint signals[LAST_SIGNAL] = { 0 };
@@ -103,11 +105,29 @@ static void monitor_callback (GnomeVFSMonitorHandle *handle, const gchar *monito
}
-/*******************************
- * Gtk class implementation
- *******************************/
+static void gnome_cmd_dir_init (GnomeCmdDir *dir)
+{
+ // dir->voffset = 0;
+ // dir->dialog = NULL;
+ dir->state = GnomeCmdDir::STATE_EMPTY;
+
+ dir->priv = g_new0 (GnomeCmdDirPrivate, 1);
+
+ dir->priv->handle = handle_new (dir);
+ // dir->priv->monitor_handle = NULL;
+ // dir->priv->monitor_users = 0;
+ // dir->priv->files = NULL;
+ dir->priv->file_collection = new GnomeCmdFileCollection;
+
+ if (DEBUG_ENABLED ('c'))
+ {
+ created_dirs_cnt++;
+ all_dirs = g_list_append (all_dirs, dir);
+ }
+}
+
-static void destroy (GtkObject *object)
+static void gnome_cmd_dir_finalize (GObject *object)
{
GnomeCmdDir *dir = GNOME_CMD_DIR (object);
@@ -131,17 +151,13 @@ static void destroy (GtkObject *object)
deleted_dirs_cnt++;
}
- if (GTK_OBJECT_CLASS (parent_class)->destroy)
- (*GTK_OBJECT_CLASS (parent_class)->destroy) (object);
+ G_OBJECT_CLASS (gnome_cmd_dir_parent_class)->finalize (object);
}
-static void class_init (GnomeCmdDirClass *klass)
+static void gnome_cmd_dir_class_init (GnomeCmdDirClass *klass)
{
- GtkObjectClass *object_class = GTK_OBJECT_CLASS (klass);
- GnomeCmdFileClass *file_class = GNOME_CMD_FILE_CLASS (klass);
-
- parent_class = (GnomeCmdFileClass *) gtk_type_class (GNOME_CMD_TYPE_FILE);
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
signals[FILE_CREATED] =
g_signal_new ("file-created",
@@ -203,7 +219,7 @@ static void class_init (GnomeCmdDirClass *klass)
G_TYPE_NONE,
1, G_TYPE_INT);
- object_class->destroy = destroy;
+ object_class->finalize = gnome_cmd_dir_finalize;
klass->file_created = NULL;
klass->file_deleted = NULL;
klass->file_changed = NULL;
@@ -213,56 +229,10 @@ static void class_init (GnomeCmdDirClass *klass)
}
-static void init (GnomeCmdDir *dir)
-{
- // dir->voffset = 0;
- // dir->dialog = NULL;
- dir->state = GnomeCmdDir::STATE_EMPTY;
-
- dir->priv = g_new0 (GnomeCmdDirPrivate, 1);
-
- dir->priv->handle = handle_new (dir);
- // dir->priv->monitor_handle = NULL;
- // dir->priv->monitor_users = 0;
- // dir->priv->files = NULL;
- dir->priv->file_collection = new GnomeCmdFileCollection;
-
- if (DEBUG_ENABLED ('c'))
- {
- created_dirs_cnt++;
- all_dirs = g_list_append (all_dirs, dir);
- }
-}
-
-
/***********************************
* Public functions
***********************************/
-GtkType gnome_cmd_dir_get_type ()
-{
- static GtkType type = 0;
-
- if (type == 0)
- {
- GtkTypeInfo info =
- {
- "GnomeCmdDir",
- sizeof (GnomeCmdDir),
- sizeof (GnomeCmdDirClass),
- (GtkClassInitFunc) class_init,
- (GtkObjectInitFunc) init,
- /* reserved_1 */ NULL,
- /* reserved_2 */ NULL,
- (GtkClassInitFunc) NULL
- };
-
- type = gtk_type_unique (GNOME_CMD_TYPE_FILE, &info);
- }
- return type;
-}
-
-
GnomeCmdDir *gnome_cmd_dir_new_from_info (GnomeVFSFileInfo *info, GnomeCmdDir *parent)
{
g_return_val_if_fail (info != NULL, NULL);
diff --git a/src/gnome-cmd-dir.h b/src/gnome-cmd-dir.h
index f72c24e..fc645c5 100644
--- a/src/gnome-cmd-dir.h
+++ b/src/gnome-cmd-dir.h
@@ -29,6 +29,9 @@
#define GNOME_CMD_DIR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GNOME_CMD_TYPE_DIR, GnomeCmdDirClass))
+GType gnome_cmd_dir_get_type ();
+
+
struct GnomeCmdDir;
struct GnomeCmdDirPrivate;
@@ -82,8 +85,6 @@ struct GnomeCmdDirClass
struct GnomeCmdCon;
-GtkType gnome_cmd_dir_get_type ();
-
GnomeCmdDir *gnome_cmd_dir_new_from_info (GnomeVFSFileInfo *info, GnomeCmdDir *parent);
GnomeCmdDir *gnome_cmd_dir_new_with_con (GnomeVFSFileInfo *info, GnomeCmdPath *path, GnomeCmdCon *con);
GnomeCmdDir *gnome_cmd_dir_new (GnomeCmdCon *con, GnomeCmdPath *path);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]