[gnome-commander] Use G_DEFINE_TYPE for GnomeCmdFile
- From: Piotr Eljasiak <epiotr src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-commander] Use G_DEFINE_TYPE for GnomeCmdFile
- Date: Mon, 31 Jan 2011 20:17:29 +0000 (UTC)
commit 348041ee38f8904e55fa92257f577755805585e2
Author: Piotr Eljasiak <epiotr src gnome org>
Date: Mon Jan 31 20:57:19 2011 +0100
Use G_DEFINE_TYPE for GnomeCmdFile
src/gnome-cmd-file.cc | 88 ++++++++++++++++---------------------------------
src/gnome-cmd-file.h | 6 ++--
2 files changed, 32 insertions(+), 62 deletions(-)
---
diff --git a/src/gnome-cmd-file.cc b/src/gnome-cmd-file.cc
index 3ad72d3..390d420 100644
--- a/src/gnome-cmd-file.cc
+++ b/src/gnome-cmd-file.cc
@@ -49,8 +49,6 @@ gint created_files_cnt = 0;
gint deleted_files_cnt = 0;
GList *all_files = NULL;
-static GnomeCmdFileInfoClass *parent_class = NULL;
-
struct GnomeCmdFile::Private
{
Handle *dir_handle;
@@ -60,6 +58,9 @@ struct GnomeCmdFile::Private
};
+G_DEFINE_TYPE (GnomeCmdFile, gnome_cmd_file, GNOME_CMD_TYPE_FILE_INFO)
+
+
inline gboolean has_parent_dir (GnomeCmdFile *f)
{
return f->priv->dir_handle && f->priv->dir_handle->ref;
@@ -74,11 +75,29 @@ inline GnomeCmdDir *get_parent_dir (GnomeCmdFile *f)
}
-/*******************************
- * Gtk class implementation
- *******************************/
+static void gnome_cmd_file_init (GnomeCmdFile *f)
+{
+ // f->info = NULL;
+ // f->collate_key = NULL;
+
+ f->priv = g_new0 (GnomeCmdFile::Private, 1);
+
+ // f->priv->dir_handle = NULL;
-static void destroy (GtkObject *object)
+ // f->priv->last_update.tv_sec = 0;
+ // f->priv->last_update.tv_usec = 0;
+
+ f->priv->tree_size = -1;
+
+ if (DEBUG_ENABLED ('c'))
+ {
+ all_files = g_list_append (all_files, f);
+ created_files_cnt++;
+ }
+}
+
+
+static void gnome_cmd_file_finalize (GObject *object)
{
GnomeCmdFile *f = GNOME_CMD_FILE (object);
@@ -100,40 +119,15 @@ static void destroy (GtkObject *object)
g_free (f->priv);
- if (GTK_OBJECT_CLASS (parent_class)->destroy)
- (*GTK_OBJECT_CLASS (parent_class)->destroy) (object);
+ G_OBJECT_CLASS (gnome_cmd_file_parent_class)->finalize (object);
}
-static void class_init (GnomeCmdFileClass *klass)
+static void gnome_cmd_file_class_init (GnomeCmdFileClass *klass)
{
- GtkObjectClass *object_class = GTK_OBJECT_CLASS (klass);
-
- parent_class = (GnomeCmdFileInfoClass *) gtk_type_class (GNOME_CMD_TYPE_FILE_INFO);
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
- object_class->destroy = destroy;
-}
-
-
-static void init (GnomeCmdFile *f)
-{
- // f->info = NULL;
- // f->collate_key = NULL;
-
- f->priv = g_new0 (GnomeCmdFile::Private, 1);
-
- // f->priv->dir_handle = NULL;
-
- // f->priv->last_update.tv_sec = 0;
- // f->priv->last_update.tv_usec = 0;
-
- f->priv->tree_size = -1;
-
- if (DEBUG_ENABLED ('c'))
- {
- all_files = g_list_append (all_files, f);
- created_files_cnt++;
- }
+ object_class->finalize = gnome_cmd_file_finalize;
}
@@ -141,30 +135,6 @@ static void init (GnomeCmdFile *f)
* Public functions
***********************************/
-GtkType gnome_cmd_file_get_type ()
-{
- static GtkType type = 0;
-
- if (type == 0)
- {
- GtkTypeInfo info =
- {
- "GnomeCmdFile",
- sizeof (GnomeCmdFile),
- sizeof (GnomeCmdFileClass),
- (GtkClassInitFunc) class_init,
- (GtkObjectInitFunc) init,
- /* reserved_1 */ NULL,
- /* reserved_2 */ NULL,
- (GtkClassInitFunc) NULL
- };
-
- type = gtk_type_unique (GNOME_CMD_TYPE_FILE_INFO, &info);
- }
- return type;
-}
-
-
GnomeCmdFile *gnome_cmd_file_new (GnomeVFSFileInfo *info, GnomeCmdDir *dir)
{
GnomeCmdFile *f = (GnomeCmdFile *) g_object_new (GNOME_CMD_TYPE_FILE, NULL);
diff --git a/src/gnome-cmd-file.h b/src/gnome-cmd-file.h
index b8a04f6..88c3333 100644
--- a/src/gnome-cmd-file.h
+++ b/src/gnome-cmd-file.h
@@ -29,6 +29,9 @@
#define GNOME_CMD_FILE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj), GNOME_CMD_TYPE_FILE, GnomeCmdFileClass))
+GType gnome_cmd_file_get_type ();
+
+
class GnomeCmdFileMetadata;
struct GnomeCmdDir;
@@ -109,9 +112,6 @@ struct GnomeCmdFileClass
};
-GtkType gnome_cmd_file_get_type ();
-
-
inline gchar *GnomeCmdFile::get_name()
{
g_return_val_if_fail (info != NULL, NULL);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]