[nautilus-actions] NAIOption: rename NA_IOPTION_TYPE GType macro to NA_TYPE_IOPTION



commit a128c40110c36b6b18fa99b6f93b2b334c33a8c5
Author: Pierre Wieser <pwieser trychlos org>
Date:   Fri Jan 13 08:39:06 2012 +0100

    NAIOption: rename NA_IOPTION_TYPE GType macro to NA_TYPE_IOPTION

 ChangeLog                   |    5 +++
 src/core/na-export-format.c |    2 +-
 src/core/na-import-mode.c   |    2 +-
 src/core/na-ioption.c       |   81 +++++++++++++++++--------------------------
 src/core/na-ioption.h       |    8 ++--
 5 files changed, 43 insertions(+), 55 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 8129ea6..59d77a8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2012-01-13 Pierre Wieser <pwieser trychlos org>
 
+	* src/core/na-ioption.h:
+	* src/core/na-import-mode.c:
+	* src/core/na-export-format.c:
+	Rename NA_IOPTION_TYPE GType macro to NA_TYPE_IOPTION.
+
 	* src/nact/nact-assistant-export.ui: Rename widget to ExportAskLabel.
 
 	* src/nact/nact-export-ask.c:
diff --git a/src/core/na-export-format.c b/src/core/na-export-format.c
index 69e0a17..d1f22fc 100644
--- a/src/core/na-export-format.c
+++ b/src/core/na-export-format.c
@@ -106,7 +106,7 @@ register_type( void )
 
 	type = g_type_register_static( G_TYPE_OBJECT, "NAExportFormat", &info, 0 );
 
-	g_type_add_interface_static( type, NA_IOPTION_TYPE, &ioption_iface_info );
+	g_type_add_interface_static( type, NA_TYPE_IOPTION, &ioption_iface_info );
 
 	return( type );
 }
diff --git a/src/core/na-import-mode.c b/src/core/na-import-mode.c
index a118df1..07090f0 100644
--- a/src/core/na-import-mode.c
+++ b/src/core/na-import-mode.c
@@ -125,7 +125,7 @@ register_type( void )
 
 	type = g_type_register_static( G_TYPE_OBJECT, "NAImportMode", &info, 0 );
 
-	g_type_add_interface_static( type, NA_IOPTION_TYPE, &ioption_iface_info );
+	g_type_add_interface_static( type, NA_TYPE_IOPTION, &ioption_iface_info );
 
 	return( type );
 }
diff --git a/src/core/na-ioption.c b/src/core/na-ioption.c
index 61bb2b6..1a568e1 100644
--- a/src/core/na-ioption.c
+++ b/src/core/na-ioption.c
@@ -40,19 +40,24 @@ struct _NAIOptionInterfacePrivate {
 	void *empty;						/* so that gcc -pedantic is happy */
 };
 
-static guint st_initializations = 0;	/* interface initialization count */
+/* data set against the instance
+ */
+typedef struct {
+	gboolean initialized;
+}
+	IOptionData;
+
+#define IOPTION_PROP_DATA				"na-prop-ioption-data"
 
-#define IOPTION_DATA_INITIALIZED		"ioption-data-initialized"
+static guint st_initializations = 0;	/* interface initialization count */
 
-static GType    register_type( void );
-static void     interface_base_init( NAIOptionInterface *iface );
-static void     interface_base_finalize( NAIOptionInterface *iface );
+static GType        register_type( void );
+static void         interface_base_init( NAIOptionInterface *iface );
+static void         interface_base_finalize( NAIOptionInterface *iface );
 
-static guint    ioption_get_version( const NAIOption *instance );
-static void     check_for_initialized_instance( NAIOption *instance );
-static void     on_instance_finalized( gpointer user_data, GObject *instance );
-static gboolean option_get_initialized( NAIOption *instance );
-static void     option_set_initialized( NAIOption *instance, gboolean initialized );
+static guint        ioption_get_version( const NAIOption *instance );
+static IOptionData *get_ioption_data( NAIOption *instance );
+static void         on_instance_finalized( gpointer user_data, NAIOption *instance );
 
 /**
  * na_ioption_get_type:
@@ -141,56 +146,34 @@ ioption_get_version( const NAIOption *instance )
 	return( 1 );
 }
 
-/*
- * na_ioption_instance_init:
- * @instance: the object which implements this #NAIOptionsList interface.
- *
- * Initialize all #NAIOptionsList-relative properties of the implementation
- * object at instanciation time.
- */
-static void
-check_for_initialized_instance( NAIOption *instance )
+static IOptionData *
+get_ioption_data( NAIOption *instance )
 {
-	static const gchar *thisfn = "na_ioption_check_for_initialized_instance";
+	IOptionData *data;
 
-	if( !option_get_initialized( instance )){
+	data = ( IOptionData * ) g_object_get_data( G_OBJECT( instance ), IOPTION_PROP_DATA );
 
-		g_debug( "%s: instance=%p", thisfn, ( void * ) instance );
+	if( !data ){
+		data = g_new0( IOptionData, 1 );
+		g_object_set_data( G_OBJECT( instance ), IOPTION_PROP_DATA, data );
 
 		g_object_weak_ref( G_OBJECT( instance ), ( GWeakNotify ) on_instance_finalized, NULL );
-
-		option_set_initialized( instance, TRUE );
 	}
+
+	return( data );
 }
 
 static void
-on_instance_finalized( gpointer user_data, GObject *instance )
+on_instance_finalized( gpointer user_data, NAIOption *instance )
 {
 	static const gchar *thisfn = "na_ioption_on_instance_finalized";
+	IOptionData *data;
 
 	g_debug( "%s: user_data=%p, instance=%p", thisfn, ( void * ) user_data, ( void * ) instance );
-}
 
-/* whether the instance has been initialized
- *
- * initializing the instance let us register a 'weak notify' signal on the instance
- * we will so be able to free any allocated resources when the instance will be
- * finalized
- */
-static gboolean
-option_get_initialized( NAIOption *instance )
-{
-	gboolean initialized;
+	data = get_ioption_data( instance );
 
-	initialized = ( gboolean ) GPOINTER_TO_UINT( g_object_get_data( G_OBJECT( instance ), IOPTION_DATA_INITIALIZED ));
-
-	return( initialized );
-}
-
-static void
-option_set_initialized( NAIOption *instance, gboolean initialized )
-{
-	g_object_set_data( G_OBJECT( instance ), IOPTION_DATA_INITIALIZED, GUINT_TO_POINTER( initialized ));
+	g_free( data );
 }
 
 /*
@@ -207,7 +190,7 @@ na_ioption_get_id( const NAIOption *option )
 
 	g_return_val_if_fail( NA_IS_IOPTION( option ), NULL );
 
-	check_for_initialized_instance( NA_IOPTION( option ));
+	get_ioption_data( NA_IOPTION( option ));
 	id = NULL;
 
 	if( NA_IOPTION_GET_INTERFACE( option )->get_id ){
@@ -231,7 +214,7 @@ na_ioption_get_label( const NAIOption *option )
 
 	g_return_val_if_fail( NA_IS_IOPTION( option ), NULL );
 
-	check_for_initialized_instance( NA_IOPTION( option ));
+	get_ioption_data( NA_IOPTION( option ));
 	label = NULL;
 
 	if( NA_IOPTION_GET_INTERFACE( option )->get_label ){
@@ -255,7 +238,7 @@ na_ioption_get_description( const NAIOption *option )
 
 	g_return_val_if_fail( NA_IS_IOPTION( option ), NULL );
 
-	check_for_initialized_instance( NA_IOPTION( option ));
+	get_ioption_data( NA_IOPTION( option ));
 	description = NULL;
 
 	if( NA_IOPTION_GET_INTERFACE( option )->get_description ){
@@ -279,7 +262,7 @@ na_ioption_get_pixbuf( const NAIOption *option )
 
 	g_return_val_if_fail( NA_IS_IOPTION( option ), NULL );
 
-	check_for_initialized_instance( NA_IOPTION( option ));
+	get_ioption_data( NA_IOPTION( option ));
 	pixbuf = NULL;
 
 	if( NA_IOPTION_GET_INTERFACE( option )->get_pixbuf ){
diff --git a/src/core/na-ioption.h b/src/core/na-ioption.h
index 4c958cf..473526a 100644
--- a/src/core/na-ioption.h
+++ b/src/core/na-ioption.h
@@ -71,10 +71,10 @@
 
 G_BEGIN_DECLS
 
-#define NA_IOPTION_TYPE               ( na_ioption_get_type())
-#define NA_IOPTION( i )               ( G_TYPE_CHECK_INSTANCE_CAST( i, NA_IOPTION_TYPE, NAIOption ))
-#define NA_IS_IOPTION( i )            ( G_TYPE_CHECK_INSTANCE_TYPE( i, NA_IOPTION_TYPE ))
-#define NA_IOPTION_GET_INTERFACE( i ) ( G_TYPE_INSTANCE_GET_INTERFACE(( i ), NA_IOPTION_TYPE, NAIOptionInterface ))
+#define NA_TYPE_IOPTION                      ( na_ioption_get_type())
+#define NA_IOPTION( instance )               ( G_TYPE_CHECK_INSTANCE_CAST( instance, NA_TYPE_IOPTION, NAIOption ))
+#define NA_IS_IOPTION( instance )            ( G_TYPE_CHECK_INSTANCE_TYPE( instance, NA_TYPE_IOPTION ))
+#define NA_IOPTION_GET_INTERFACE( instance ) ( G_TYPE_INSTANCE_GET_INTERFACE(( instance ), NA_TYPE_IOPTION, NAIOptionInterface ))
 
 typedef struct _NAIOption                      NAIOption;
 typedef struct _NAIOptionInterfacePrivate      NAIOptionInterfacePrivate;



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