Yasumichi Akahoshi
yasum****@users*****
2005年 4月 12日 (火) 22:09:07 JST
Index: cxplorer/src/cxp-property-dialog.c diff -u cxplorer/src/cxp-property-dialog.c:1.2 cxplorer/src/cxp-property-dialog.c:1.3 --- cxplorer/src/cxp-property-dialog.c:1.2 Mon Apr 11 23:02:44 2005 +++ cxplorer/src/cxp-property-dialog.c Tue Apr 12 22:09:07 2005 @@ -5,7 +5,7 @@ * A widget of Property dialog * @author Yasumichi Akahoshi <yasum****@users*****> * @date Sun Apr 3 02:53:00 2005 - * $Revision: 1.2 $ + * $Revision: 1.3 $ ****************************************************************************/ #ifdef HAVE_CONFIG_H @@ -39,12 +39,14 @@ /** * the private structure */ -struct _CxpPropertyDialogPrivate +typedef struct { gchar *filename; GtkWidget *info_labels[INFO_COUNT]; gboolean dispose_has_run; -}; +} CxpPropertyDialogPrivate; + +#define CXP_PROPERTY_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CXP_TYPE_PROPERTY_DIALOG, CxpPropertyDialogPrivate)) static GObjectClass *parent_class = NULL; @@ -53,8 +55,7 @@ CXP_PROPERTY_DIALOG_FILENAME = 1, }; -static void cxp_property_dialog_class_init (gpointer g_class, - gpointer g_class_data); +static void cxp_property_dialog_class_init (CxpPropertyDialogClass *klass); static void cxp_property_dialog_instance_init (GTypeInstance * instance, gpointer g_class); static void cxp_property_dialog_set_property (GObject * object, @@ -68,11 +69,9 @@ static void cxp_property_dialog_finalize (GObject * obj); static void cxp_property_dialog_set_values (CxpPropertyDialog *self); -static void cxp_property_dialog_class_init (gpointer g_class, - gpointer g_class_data) +static void cxp_property_dialog_class_init (CxpPropertyDialogClass *klass) { - GObjectClass *gobject_class = G_OBJECT_CLASS (g_class); - CxpPropertyDialogClass *klass = CXP_PROPERTY_DIALOG_CLASS (g_class); + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); GParamSpec *pspec; gobject_class->set_property = cxp_property_dialog_set_property; @@ -90,12 +89,15 @@ g_object_class_install_property (gobject_class, CXP_PROPERTY_DIALOG_FILENAME, pspec); + + g_type_class_add_private (klass, sizeof (CxpPropertyDialogPrivate)); } static void cxp_property_dialog_instance_init (GTypeInstance * instance, gpointer g_class) { CxpPropertyDialog *self = CXP_PROPERTY_DIALOG (instance); + CxpPropertyDialogPrivate *private = CXP_PROPERTY_DIALOG_GET_PRIVATE(self); GtkWidget *close_button; GtkWidget *table; GtkWidget *title_label; @@ -112,9 +114,8 @@ }; gint index; - self->private = g_new (CxpPropertyDialogPrivate, 1); - self->private->filename = NULL; - self->private->dispose_has_run = FALSE; + private->filename = NULL; + private->dispose_has_run = FALSE; gtk_window_set_destroy_with_parent(GTK_WINDOW(self), TRUE); table = gtk_table_new(2, INFO_COUNT, FALSE); @@ -126,10 +127,10 @@ gtk_table_attach (GTK_TABLE(table), title_label, 0, 1, index, index+1, GTK_FILL, 0, 2, 2); gtk_widget_show (title_label); - self->private->info_labels[index] = gtk_label_new ("(null)"); - gtk_misc_set_alignment (GTK_MISC(self->private->info_labels[index]), 0, 0); - gtk_table_attach (GTK_TABLE(table), self->private->info_labels[index], 1, 2, index, index+1, GTK_FILL, 0, 2, 2); - gtk_widget_show (self->private->info_labels[index]); + private->info_labels[index] = gtk_label_new ("(null)"); + gtk_misc_set_alignment (GTK_MISC(private->info_labels[index]), 0, 0); + gtk_table_attach (GTK_TABLE(table), private->info_labels[index], 1, 2, index, index+1, GTK_FILL, 0, 2, 2); + gtk_widget_show (private->info_labels[index]); } gtk_widget_show (table); @@ -144,15 +145,16 @@ GParamSpec * pspec) { CxpPropertyDialog *self = CXP_PROPERTY_DIALOG (object); + CxpPropertyDialogPrivate *private = CXP_PROPERTY_DIALOG_GET_PRIVATE(self); switch (property_id) { case CXP_PROPERTY_DIALOG_FILENAME: - if (self->private->filename != NULL) + if (private->filename != NULL) { - g_free (self->private->filename); + g_free (private->filename); } - self->private->filename = g_value_dup_string (value); + private->filename = g_value_dup_string (value); cxp_property_dialog_set_values (self); break; default: @@ -165,12 +167,12 @@ guint property_id, GValue * value, GParamSpec * pspec) { - CxpPropertyDialog *self = CXP_PROPERTY_DIALOG (object); + CxpPropertyDialogPrivate *private = CXP_PROPERTY_DIALOG_GET_PRIVATE(object); switch (property_id) { case CXP_PROPERTY_DIALOG_FILENAME: - g_value_set_string (value, self->private->filename); + g_value_set_string (value, private->filename); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); @@ -180,15 +182,15 @@ static void cxp_property_dialog_dispose (GObject * obj) { - CxpPropertyDialog *self = CXP_PROPERTY_DIALOG (obj); + CxpPropertyDialogPrivate *private = CXP_PROPERTY_DIALOG_GET_PRIVATE(obj); - if (self->private->dispose_has_run) + if (private->dispose_has_run) { /* If dispose did already run, return. */ return; } /* Make sure dispose does not run twice. */ - self->private->dispose_has_run = TRUE; + private->dispose_has_run = TRUE; /* * In dispose, you are supposed to free all types referenced from this @@ -203,15 +205,6 @@ static void cxp_property_dialog_finalize (GObject * obj) { - CxpPropertyDialog *self = CXP_PROPERTY_DIALOG (obj); - - /* - * Here, complete object destruction. - * You might not need to do much... - */ - - g_free (self->private); - /* Chain up to the parent class */ G_OBJECT_CLASS (parent_class)->finalize (obj); } @@ -226,7 +219,7 @@ sizeof (CxpPropertyDialogClass), NULL, /* base_init */ NULL, /* base_finalize */ - cxp_property_dialog_class_init, /* class_init */ + (GClassInitFunc) cxp_property_dialog_class_init, /* class_init */ NULL, /* class_finalize */ NULL, /* class_data */ sizeof (CxpPropertyDialog), @@ -256,8 +249,9 @@ static void cxp_property_dialog_set_values (CxpPropertyDialog *self) { - gchar *filename = self->private->filename; - GtkWidget **labels = self->private->info_labels; + CxpPropertyDialogPrivate *private = CXP_PROPERTY_DIALOG_GET_PRIVATE(self); + gchar *filename = private->filename; + GtkWidget **labels = private->info_labels; gchar *value; magic_t cookie; struct stat status; Index: cxplorer/src/cxp-property-dialog.h diff -u cxplorer/src/cxp-property-dialog.h:1.1 cxplorer/src/cxp-property-dialog.h:1.2 --- cxplorer/src/cxp-property-dialog.h:1.1 Wed Apr 6 20:05:58 2005 +++ cxplorer/src/cxp-property-dialog.h Tue Apr 12 22:09:07 2005 @@ -21,18 +21,13 @@ typedef struct _CxpPropertyDialog CxpPropertyDialog; typedef struct _CxpPropertyDialogClass CxpPropertyDialogClass; -typedef struct _CxpPropertyDialogPrivate CxpPropertyDialogPrivate; struct _CxpPropertyDialog { GtkDialog parent; - /* instance members */ - CxpPropertyDialogPrivate *private; }; struct _CxpPropertyDialogClass { GtkDialogClass parent; - - /* class members */ }; /* used by CXP_TYPE_PROPERTY_DIALOG */