[libpeas] Use G_DEFINE_INTERFACE instead of homemade interfaces



commit 4bd202f3468c579bfa58404c658150b9d13face9
Author: Ignacio Casal Quinteiro <icq gnome org>
Date:   Fri Apr 2 15:00:00 2010 +0200

    Use G_DEFINE_INTERFACE instead of homemade interfaces
    
    This is an API-incompatible change, because PeasConfigurableIface got
    renamed into PeasConfigurableInterface in the process (this seems to be
    the current policy as it is the name set by G_DEFINE_INTERFACE).
    
    Also bump gobject dependency to 2.23.6 to ensure G_DEFINE_INTERFACE
    availability.

 configure.ac                                       |    2 +-
 libpeasui/peas-ui-configurable.c                   |   37 ++-----------------
 libpeasui/peas-ui-configurable.h                   |    8 ++--
 .../helloworld/peasdemo-hello-world-plugin.c       |    4 +-
 4 files changed, 11 insertions(+), 40 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index b708556..33bb698 100644
--- a/configure.ac
+++ b/configure.ac
@@ -96,7 +96,7 @@ dnl ================================================================
 
 PKG_CHECK_MODULES(PEAS, [
 	glib-2.0 >= 2.18.0
-	gobject-2.0 >= 2.18.0
+	gobject-2.0 >= 2.23.6
 	gmodule-2.0 >= 2.18.0
 ])
 
diff --git a/libpeasui/peas-ui-configurable.c b/libpeasui/peas-ui-configurable.c
index 6cb369e..e2d60b9 100644
--- a/libpeasui/peas-ui-configurable.c
+++ b/libpeasui/peas-ui-configurable.c
@@ -44,39 +44,10 @@
  * but does not always return a valid #GtkWindow.
  **/
 
-static void peas_ui_configurable_base_init  (gpointer g_class);
-
-GType
-peas_ui_configurable_get_type (void)
-{
-  static volatile gsize the_type = 0;
-
-  if (g_once_init_enter (&the_type))
-    {
-      const GTypeInfo type_info = {
-        sizeof (PeasUIConfigurableIface), /* class_size */
-        peas_ui_configurable_base_init,   /* base_init */
-        NULL,                             /* base_finalize */
-        NULL,                             /* class_init */
-        NULL,                             /* class_finalize */
-        NULL,                             /* class_data */
-        0
-      };
-
-      GType type_id = g_type_register_static (G_TYPE_INTERFACE,
-                                              g_intern_static_string ("PeasUIConfigurable"),
-                                              &type_info, 0);
-
-      g_type_interface_add_prerequisite (type_id, PEAS_TYPE_PLUGIN);
-
-      g_once_init_leave (&the_type, type_id);
-    }
-
-  return the_type;
-}
+G_DEFINE_INTERFACE(PeasUIConfigurable, peas_ui_configurable, PEAS_TYPE_PLUGIN)
 
 static void
-peas_ui_configurable_base_init (gpointer g_class)
+peas_ui_configurable_default_init (PeasUIConfigurableInterface *iface)
 {
 }
 
@@ -95,7 +66,7 @@ peas_ui_configurable_base_init (gpointer g_class)
 gboolean
 peas_ui_configurable_is_configurable (PeasUIConfigurable *configurable)
 {
-  PeasUIConfigurableIface *iface;
+  PeasUIConfigurableInterface *iface;
 
   g_return_val_if_fail (PEAS_UI_IS_CONFIGURABLE (configurable), FALSE);
 
@@ -121,7 +92,7 @@ peas_ui_configurable_is_configurable (PeasUIConfigurable *configurable)
 GtkWidget *
 peas_ui_configurable_create_configure_dialog (PeasUIConfigurable *configurable)
 {
-  PeasUIConfigurableIface *iface;
+  PeasUIConfigurableInterface *iface;
 
   g_return_val_if_fail (PEAS_UI_IS_CONFIGURABLE (configurable), NULL);
   
diff --git a/libpeasui/peas-ui-configurable.h b/libpeasui/peas-ui-configurable.h
index 8458a49..711b3f4 100644
--- a/libpeasui/peas-ui-configurable.h
+++ b/libpeasui/peas-ui-configurable.h
@@ -31,14 +31,14 @@ G_BEGIN_DECLS
  */
 #define PEAS_UI_TYPE_CONFIGURABLE              (peas_ui_configurable_get_type ())
 #define PEAS_UI_CONFIGURABLE(obj)              (G_TYPE_CHECK_INSTANCE_CAST ((obj), PEAS_UI_TYPE_CONFIGURABLE, PeasUIConfigurable))
-#define PEAS_UI_CONFIGURABLE_IFACE(obj)        (G_TYPE_CHECK_CLASS_CAST ((obj), PEAS_UI_TYPE_CONFIGURABLE, PeasUIConfigurableIface))
+#define PEAS_UI_CONFIGURABLE_IFACE(obj)        (G_TYPE_CHECK_CLASS_CAST ((obj), PEAS_UI_TYPE_CONFIGURABLE, PeasUIConfigurableInterface))
 #define PEAS_UI_IS_CONFIGURABLE(obj)           (G_TYPE_CHECK_INSTANCE_TYPE ((obj), PEAS_UI_TYPE_CONFIGURABLE))
-#define PEAS_UI_CONFIGURABLE_GET_IFACE(obj)    (G_TYPE_INSTANCE_GET_INTERFACE ((obj), PEAS_UI_TYPE_CONFIGURABLE, PeasUIConfigurableIface))
+#define PEAS_UI_CONFIGURABLE_GET_IFACE(obj)    (G_TYPE_INSTANCE_GET_INTERFACE ((obj), PEAS_UI_TYPE_CONFIGURABLE, PeasUIConfigurableInterface))
 
 typedef struct _PeasUIConfigurable          PeasUIConfigurable; /* dummy typedef */
-typedef struct _PeasUIConfigurableIface     PeasUIConfigurableIface;
+typedef struct _PeasUIConfigurableInterface     PeasUIConfigurableInterface;
 
-struct _PeasUIConfigurableIface
+struct _PeasUIConfigurableInterface
 {
   GTypeInterface g_iface;
 
diff --git a/peas-demo/plugins/helloworld/peasdemo-hello-world-plugin.c b/peas-demo/plugins/helloworld/peasdemo-hello-world-plugin.c
index 16773a4..3c41dfd 100644
--- a/peas-demo/plugins/helloworld/peasdemo-hello-world-plugin.c
+++ b/peas-demo/plugins/helloworld/peasdemo-hello-world-plugin.c
@@ -9,7 +9,7 @@
 
 #define WINDOW_DATA_KEY "PeasDemoHelloWorldPluginWindowData"
 
-static void peas_ui_configurable_iface_init (PeasUIConfigurableIface *iface);
+static void peas_ui_configurable_iface_init (PeasUIConfigurableInterface *iface);
 
 G_DEFINE_DYNAMIC_TYPE_EXTENDED (PeasDemoHelloWorldPlugin,
                                 peasdemo_hello_world_plugin,
@@ -140,7 +140,7 @@ peasdemo_hello_world_plugin_class_init (PeasDemoHelloWorldPluginClass *klass)
 }
 
 static void
-peas_ui_configurable_iface_init (PeasUIConfigurableIface *iface)
+peas_ui_configurable_iface_init (PeasUIConfigurableInterface *iface)
 {
   iface->create_configure_dialog = peasdemo_hello_world_plugin_create_configure_dialog;
 }



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