[maemo-commits] [maemo-commits] r8284 - in projects/haf/branches/maemo-af-desktop/hildon-desktop: . src

From: www-data at stage.maemo.org www-data at stage.maemo.org
Date: Thu Nov 23 16:49:02 EET 2006
Author: lucasr
Date: 2006-11-23 16:49:01 +0200 (Thu, 23 Nov 2006)
New Revision: 8284

Modified:
   projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog
   projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-plugin-loader-factory.c
   projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-plugin-loader-legacy.c
   projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-plugin-loader-legacy.h
   projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-plugin-loader.c
   projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-plugin-loader.h
Log:
2006-11-23  Lucas Rocha  <lucas.rocha at nokia.com>

	* src/hd-plugin-loader-factory.c, src/hd-plugin-loader.[ch], 
	src/hd-plugin-loader-legacy.[ch]: make HDPluginLoader an abstract class 
	and moved keyfile property to it.


Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog	2006-11-23 13:23:29 UTC (rev 8283)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog	2006-11-23 14:49:01 UTC (rev 8284)
@@ -1,3 +1,9 @@
+2006-11-23  Lucas Rocha  <lucas.rocha at nokia.com>
+
+	* src/hd-plugin-loader-factory.c, src/hd-plugin-loader.[ch], 
+	src/hd-plugin-loader-legacy.[ch]: make HDPluginLoader an abstract class 
+	and moved keyfile property to it.
+
 2006-11-23  Johan Bilien  <johan.bilien at nokia.com>
 
 	* data/home.conf: Added

Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-plugin-loader-factory.c
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-plugin-loader-factory.c	2006-11-23 13:23:29 UTC (rev 8283)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-plugin-loader-factory.c	2006-11-23 14:49:01 UTC (rev 8284)
@@ -150,26 +150,25 @@
       return NULL;
     }
   }
+  loader = (HDPluginLoader *) g_hash_table_lookup (priv->registry, type);
 
-  if (!g_ascii_strcasecmp (type, HD_PLUGIN_LOADER_OLD_API)) 
+  if (!loader) 
   {
-    loader = (HDPluginLoader *) g_hash_table_lookup (priv->registry, 
-                                                     type);
-    if (!loader) 
+    if (!g_ascii_strcasecmp (type, HD_PLUGIN_LOADER_OLD_API)) 
     {
       /* Create instance of Old API plugin loader and 
          add to registry for later use */
-      loader = g_object_new (HD_TYPE_PLUGIN_LOADER_LEGACY,
-                             "keyfile", keyfile,
-                             NULL);
+      loader = g_object_new (HD_TYPE_PLUGIN_LOADER_LEGACY, NULL);
       g_hash_table_insert (priv->registry, type, loader);
     }
+    else
+    {
+      g_warning ("Unknown Plugin Loader type: %s", type);
+    }
   }
-  else
-  {
-    g_warning ("Unknown Plugin Loader type: %s", type);
-  }
 
+  hd_plugin_loader_set_key_file (loader, keyfile);
+
   g_free (type);
 
   return loader;

Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-plugin-loader-legacy.c
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-plugin-loader-legacy.c	2006-11-23 13:23:29 UTC (rev 8283)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-plugin-loader-legacy.c	2006-11-23 14:49:01 UTC (rev 8284)
@@ -29,13 +29,17 @@
 #include <glib/gkeyfile.h>
 #include <string.h> /* strcmp */
 
+#define HD_PLUGIN_LOADER_LEGACY_GET_PRIVATE(obj) \
+        (G_TYPE_INSTANCE_GET_PRIVATE ((obj), HD_TYPE_PLUGIN_LOADER_LEGACY, HDPluginLoaderLegacyPrivate))
+
+G_DEFINE_TYPE (HDPluginLoaderLegacy, hd_plugin_loader_legacy, HD_TYPE_PLUGIN_LOADER);
+
 #define HD_PLUGIN_LOADER_LEGACY_GROUP           "Desktop Entry"
 #define HD_PLUGIN_LOADER_LEGACY_KEY_TYPE        "Type"
 #define HD_PLUGIN_LOADER_LEGACY_KEY_X_HOME_APPLET           "X-home-applet"
 #define HD_PLUGIN_LOADER_LEGACY_KEY_X_HOME_APPLET_RESIZABLE "X-home-applet-resizable"
 #define HD_PLUGIN_LOADER_LEGACY_KEY_X_TN        "X-task-navigator-plugin"
 
-
 /* Type of legacy plugin */
 typedef enum {
   HD_PLUGIN_LOADER_LEGACY_TYPE_UNKNOWN = 0,
@@ -53,14 +57,8 @@
 typedef GtkWidget * (*HDPluginLoaderLegacyInitFunc) (HDPluginLoaderLegacy *l,
                                                      GError **error);
 
-/* Property IDs */
-enum {
-  HD_PLUGIN_LOADER_LEGACY_PROPERTY_KEYFILE = 1
-};
-
 typedef struct _HDPluginLoaderLegacyPrivate
 {
-  GKeyFile                     *keyfile;
   GModule                      *module;
   HDPluginLoaderLegacyType      plugin_type;
   HDPluginLoaderLegacyInitFunc  init_func;
@@ -101,28 +99,10 @@
   HD_PLUGIN_LOADER_LEGACY_NAVIGATOR_N_SYMBOLS
 };
 
-#define HD_PLUGIN_LOADER_LEGACY_GET_PRIVATE(obj) \
-(G_TYPE_INSTANCE_GET_PRIVATE ((obj), HD_TYPE_PLUGIN_LOADER_LEGACY, HDPluginLoaderLegacyPrivate))
-
 static GtkWidget *
 hd_plugin_loader_legacy_load (HDPluginLoader *loader, GError **error);
 
 static void
-hd_plugin_loader_legacy_iface_init (HDPluginLoader *iface);
-
-static void
-hd_plugin_loader_legacy_get_property (GObject      *object,
-                                      guint         prop_id,
-                                      GValue       *value,
-                                      GParamSpec   *pspec);
-
-static void
-hd_plugin_loader_legacy_set_property (GObject      *object,
-                                      guint         prop_id,
-                                      const GValue *value,
-                                      GParamSpec   *pspec);
-
-static void
 hd_plugin_loader_legacy_guess_type (HDPluginLoaderLegacy *loader);
 
 static GtkWidget *
@@ -142,18 +122,10 @@
 hd_plugin_loader_legacy_open_module (HDPluginLoaderLegacy *loader,
                                      GError **error);
 
-G_DEFINE_TYPE_EXTENDED (HDPluginLoaderLegacy,
-                        hd_plugin_loader_legacy,
-                        G_TYPE_OBJECT,
-                        0,
-                        G_IMPLEMENT_INTERFACE (HD_TYPE_PLUGIN_LOADER,
-                                               hd_plugin_loader_legacy_iface_init))
-
-
 static void
-hd_plugin_loader_legacy_iface_init (HDPluginLoader *iface)
+hd_plugin_loader_legacy_finalize (GObject *loader)
 {
-  iface->load = hd_plugin_loader_legacy_load;
+  G_OBJECT_CLASS (hd_plugin_loader_legacy_parent_class)->finalize (loader);
 }
 
 static void
@@ -162,71 +134,25 @@
 }
 
 static void
-hd_plugin_loader_legacy_class_init (HDPluginLoaderLegacyClass *loader_class)
+hd_plugin_loader_legacy_class_init (HDPluginLoaderLegacyClass *class)
 {
   GObjectClass *object_class;
-  GParamSpec   *pspec;
+  HDPluginLoaderClass *loader_class;
 
-  object_class = G_OBJECT_CLASS (loader_class);
+  object_class = G_OBJECT_CLASS (class);
+  loader_class = HD_PLUGIN_LOADER_CLASS (class);
+  
+  object_class->finalize = hd_plugin_loader_legacy_finalize;
+  loader_class->load = hd_plugin_loader_legacy_load;
 
-  object_class->set_property = hd_plugin_loader_legacy_set_property;
-  object_class->get_property = hd_plugin_loader_legacy_get_property;
-
-  pspec = g_param_spec_pointer ("keyfile",
-                                "Keyfile",
-                                "Keyfile describing the plugin",
-                                G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
-
-  g_object_class_install_property (object_class,
-                                   HD_PLUGIN_LOADER_LEGACY_PROPERTY_KEYFILE,
-                                   pspec);
-
   g_type_class_add_private (object_class, sizeof (HDPluginLoaderLegacyPrivate));
 }
 
-static void
-hd_plugin_loader_legacy_set_property (GObject      *object,
-                                      guint         prop_id,
-                                      const GValue *value,
-                                      GParamSpec   *pspec)
-{
-  switch (prop_id)
-    {
-      case HD_PLUGIN_LOADER_LEGACY_PROPERTY_KEYFILE:
-          hd_plugin_loader_legacy_set_key_file (
-                                   HD_PLUGIN_LOADER_LEGACY (object),
-                                   (GKeyFile *)g_value_get_pointer (value));
-          break;
-      default:
-          G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-    }
-}
-
-static void
-hd_plugin_loader_legacy_get_property (GObject      *object,
-                                      guint         prop_id,
-                                      GValue       *value,
-                                      GParamSpec   *pspec)
-{
-  HDPluginLoaderLegacyPrivate *priv;
- 
-  priv = HD_PLUGIN_LOADER_LEGACY_GET_PRIVATE (object);
-
-  switch (prop_id)
-    {
-      case HD_PLUGIN_LOADER_LEGACY_PROPERTY_KEYFILE:
-          g_value_set_pointer (value, priv->keyfile);
-          break;
-      default:
-          G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
-    }
-}
-
-
 static GtkWidget *
 hd_plugin_loader_legacy_load (HDPluginLoader *loader, GError **error)
 {
   HDPluginLoaderLegacyPrivate      *priv;
+  GKeyFile                         *keyfile;
   GtkWidget                        *item = NULL;
   GError                           *local_error = NULL;
 
@@ -234,7 +160,9 @@
  
   priv = HD_PLUGIN_LOADER_LEGACY_GET_PRIVATE (loader);
 
-  if (!priv->keyfile)
+  keyfile = hd_plugin_loader_get_key_file (loader);
+
+  if (!keyfile)
     {
       g_set_error (error,
                    hd_plugin_loader_error_quark (),
@@ -305,13 +233,16 @@
                                      GError **error)
 {
   HDPluginLoaderLegacyPrivate *priv;
+  GKeyFile     *keyfile;
   GError       *keyfile_error = NULL;
   gchar        *module_file = NULL;
   gchar        *module_path = NULL;
   
   priv = HD_PLUGIN_LOADER_LEGACY_GET_PRIVATE (loader);
+
+  keyfile = hd_plugin_loader_get_key_file (HD_PLUGIN_LOADER (loader));
   
-  module_file = g_key_file_get_string (priv->keyfile,
+  module_file = g_key_file_get_string (keyfile,
                                        HD_PLUGIN_LOADER_LEGACY_GROUP,
                                        priv->library_key,
                                        &keyfile_error);
@@ -391,13 +322,16 @@
 hd_plugin_loader_legacy_guess_type (HDPluginLoaderLegacy *loader)
 {
   HDPluginLoaderLegacyPrivate   *priv;
+  GKeyFile                      *keyfile;
   gchar                         *value;
   g_return_if_fail (loader);
  
   priv = HD_PLUGIN_LOADER_LEGACY_GET_PRIVATE (loader);
 
+  keyfile = hd_plugin_loader_get_key_file (HD_PLUGIN_LOADER (loader));
+
   /* Check for the Type = (which is only used for legacy Home applet */
-  value = g_key_file_get_string (priv->keyfile,
+  value = g_key_file_get_string (keyfile,
                                  HD_PLUGIN_LOADER_LEGACY_GROUP,
                                  HD_PLUGIN_LOADER_LEGACY_KEY_TYPE,
                                  NULL);
@@ -412,10 +346,10 @@
   g_free (value);
 
   /* Check for the X-task-navigator-plugin = field */
-  value = g_key_file_get_string (priv->keyfile,
-                                HD_PLUGIN_LOADER_LEGACY_GROUP,
-                                HD_PLUGIN_LOADER_LEGACY_KEY_X_TN,
-                                NULL);
+  value = g_key_file_get_string (keyfile,
+                                 HD_PLUGIN_LOADER_LEGACY_GROUP,
+                                 HD_PLUGIN_LOADER_LEGACY_KEY_X_TN,
+                                 NULL);
 
   if (value)
     {
@@ -426,25 +360,6 @@
 
 }
 
-void
-hd_plugin_loader_legacy_set_key_file (HDPluginLoaderLegacy *loader,
-                                      GKeyFile *keyfile)
-{
-  HDPluginLoaderLegacyPrivate *priv;
-
-  g_return_if_fail (loader);
- 
-  priv = HD_PLUGIN_LOADER_LEGACY_GET_PRIVATE (loader);
-
-  if (priv->keyfile != keyfile)
-    {
-      if (priv->keyfile)
-        g_free (priv->keyfile);
-      priv->keyfile = keyfile;
-      g_object_notify (G_OBJECT (loader), "keyfile");
-    }
-}
-
 static GtkWidget *
 hd_plugin_loader_legacy_home_init (HDPluginLoaderLegacy    *loader,
                                    GError                 **error)

Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-plugin-loader-legacy.h
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-plugin-loader-legacy.h	2006-11-23 13:23:29 UTC (rev 8283)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-plugin-loader-legacy.h	2006-11-23 14:49:01 UTC (rev 8284)
@@ -31,30 +31,24 @@
 G_BEGIN_DECLS
 
 #define HD_TYPE_PLUGIN_LOADER_LEGACY            (hd_plugin_loader_legacy_get_type ())
-#define HD_PLUGIN_LOADER_LEGACY(obj)			(G_TYPE_CHECK_INSTANCE_CAST ((obj), HD_TYPE_PLUGIN_LOADER_LEGACY, HDPluginLoaderLegacy))
-#define HD_IS_PLUGIN_LOADER_LEGACY(obj)		    (G_TYPE_CHECK_INSTANCE_TYPE ((obj), HD_TYPE_PLUGIN_LOADER_LEGACY))
+#define HD_PLUGIN_LOADER_LEGACY(obj)		(G_TYPE_CHECK_INSTANCE_CAST ((obj), HD_TYPE_PLUGIN_LOADER_LEGACY, HDPluginLoaderLegacy))
+#define HD_IS_PLUGIN_LOADER_LEGACY(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), HD_TYPE_PLUGIN_LOADER_LEGACY))
 #define HD_PLUGIN_LOADER_LEGACY_CLASS(klass)	(G_TYPE_CHECK_CLASS_CAST ((klass), HD_TYPE_PLUGIN_LOADER_LEGACY_CLASS, HDPluginLoaderLegacyClass))
 #define HD_IS_PLUGIN_LOADER_LEGACY_CLASS(klass)	(G_TYPE_CHECK_CLASS_TYPE ((klass), HD_TYPE_PLUGIN_LOADER_LEGACY_CLASS))
 #define HD_PLUGIN_LOADER_LEGACY_GET_CLASS(obj)	(G_TYPE_INSTANCE_GET_CLASS ((obj), HD_TYPE_PLUGIN_LOADER_LEGACY, HDPluginLoaderLegacyClass))
 
-
 typedef struct _HDPluginLoaderLegacyClass
 {
-  GObjectClass         parent_class;
+  HDPluginLoaderClass         parent_class;
 } HDPluginLoaderLegacyClass;
 
 typedef struct _HDPluginLoaderLegacy
 {
-  GObject              parent;
+  HDPluginLoader              parent;
 } HDPluginLoaderLegacy;
 
 GType           hd_plugin_loader_legacy_get_type (void);
 
-void            hd_plugin_loader_legacy_set_key_file (HDPluginLoaderLegacy *l,
-                                                      GKeyFile             *kf);
-
-
-
 G_END_DECLS
 
 #endif

Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-plugin-loader.c
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-plugin-loader.c	2006-11-23 13:23:29 UTC (rev 8283)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-plugin-loader.c	2006-11-23 14:49:01 UTC (rev 8284)
@@ -23,53 +23,155 @@
  *
  */
 
+#include <glib.h>
+
 #include "hd-plugin-loader.h"
 
-GQuark
-hd_plugin_loader_error_quark (void)
+#define HD_PLUGIN_LOADER_GET_PRIVATE(object) \
+        (G_TYPE_INSTANCE_GET_PRIVATE ((object), HD_TYPE_PLUGIN_LOADER, HDPluginLoaderPrivate))
+
+G_DEFINE_ABSTRACT_TYPE (HDPluginLoader, hd_plugin_loader, G_TYPE_OBJECT)
+
+enum {
+  PROP_0,
+  PROP_KEYFILE
+};
+
+struct _HDPluginLoaderPrivate 
 {
-  return g_quark_from_static_string ("hd-plugin-loader-error-quark");
+  GKeyFile *keyfile;
+};
+
+static void
+hd_plugin_loader_finalize (GObject *object)
+{
+  HDPluginLoaderPrivate *priv;
+  
+  priv = HD_PLUGIN_LOADER_GET_PRIVATE (object);
+
+  if (priv->keyfile)
+  {
+    g_key_file_free (priv->keyfile);
+    priv->keyfile = NULL;
+  }
+
+  G_OBJECT_CLASS (hd_plugin_loader_parent_class)->finalize (object);
 }
 
-static void hd_plugin_loader_base_init (gpointer klass);
+static void
+hd_plugin_loader_set_property (GObject      *object,
+                               guint         prop_id,
+                               const GValue *value,
+                               GParamSpec   *pspec)
+{
+  switch (prop_id)
+  {
+    case PROP_KEYFILE:
+      hd_plugin_loader_set_key_file (
+                               HD_PLUGIN_LOADER (object),
+                               (GKeyFile *) g_value_get_pointer (value));
+      break;
 
-GType 
-hd_plugin_loader_get_type (void)
+    default:
+        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+  }
+}
+
+static void
+hd_plugin_loader_get_property (GObject      *object,
+                               guint         prop_id,
+                               GValue       *value,
+                               GParamSpec   *pspec)
 {
-  static GType plugin_loader_type = 0;
+  HDPluginLoaderPrivate *priv;
+ 
+  priv = HD_PLUGIN_LOADER_GET_PRIVATE (object);
 
-  if (!plugin_loader_type)
-    {
-      static const GTypeInfo item_socket_info =
-        {
-          sizeof (HDPluginLoader), /* class_size */
-          hd_plugin_loader_base_init,   /* base_init */
-          NULL,		/* base_finalize */
-          NULL,
-          NULL,		/* class_finalize */
-          NULL,		/* class_data */
-          0,
-          0,
-          NULL
-        };
+  switch (prop_id)
+  {
+    case PROP_KEYFILE:
+        g_value_set_pointer (value, priv->keyfile);
+        break;
 
-      plugin_loader_type = g_type_register_static (G_TYPE_INTERFACE,
-                                                   "HDPluginLoader",
-                                                   &item_socket_info,
-                                                   0);
+    default:
+        G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+  }
+}
 
-    }
+static void
+hd_plugin_loader_class_init (HDPluginLoaderClass *class)
+{
+  GObjectClass *object_class;
+  GParamSpec   *pspec;
 
-  return plugin_loader_type;
+  object_class = G_OBJECT_CLASS (class);
+
+  object_class->finalize     = hd_plugin_loader_finalize;
+  object_class->set_property = hd_plugin_loader_set_property;
+  object_class->get_property = hd_plugin_loader_get_property;
+
+  pspec = g_param_spec_pointer ("keyfile",
+                                "Keyfile",
+                                "Keyfile describing the plugin",
+                                G_PARAM_READWRITE | G_PARAM_CONSTRUCT);
+
+  g_object_class_install_property (object_class,
+                                   PROP_KEYFILE,
+                                   pspec);
+
+  g_type_class_add_private (object_class, sizeof (HDPluginLoaderPrivate));
 }
 
 static void
-hd_plugin_loader_base_init (gpointer klass)
+hd_plugin_loader_init (HDPluginLoader *loader)
 {
+  loader->priv = HD_PLUGIN_LOADER_GET_PRIVATE (loader);
+
+  loader->priv->keyfile = NULL; 
 }
 
+GQuark
+hd_plugin_loader_error_quark (void)
+{
+  return g_quark_from_static_string ("hd-plugin-loader-error-quark");
+}
+
+GKeyFile *
+hd_plugin_loader_get_key_file (HDPluginLoader *loader)
+{
+  HDPluginLoaderPrivate *priv;
+
+  g_return_val_if_fail (loader, NULL);
+
+  priv = HD_PLUGIN_LOADER_GET_PRIVATE (loader);
+
+  return priv->keyfile;
+}
+
+void
+hd_plugin_loader_set_key_file (HDPluginLoader *loader,
+                               GKeyFile       *keyfile)
+{
+  HDPluginLoaderPrivate *priv;
+
+  g_return_if_fail (loader);
+ 
+  priv = HD_PLUGIN_LOADER_GET_PRIVATE (loader);
+
+  if (priv->keyfile != keyfile)
+  {
+    if (priv->keyfile)
+      g_key_file_free (priv->keyfile);
+
+    priv->keyfile = keyfile;
+
+    g_object_notify (G_OBJECT (loader), "keyfile");
+  }
+}
+
 GtkWidget *
 hd_plugin_loader_load (HDPluginLoader *loader, GError **error)
 {
-  return HD_PLUGIN_LOADER_GET_IFACE (loader)->load (loader, error);
+  return HD_PLUGIN_LOADER_CLASS (loader)->load (loader, error);
 }
+

Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-plugin-loader.h
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-plugin-loader.h	2006-11-23 13:23:29 UTC (rev 8283)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-plugin-loader.h	2006-11-23 14:49:01 UTC (rev 8284)
@@ -32,11 +32,16 @@
 
 G_BEGIN_DECLS
 
-#define HD_TYPE_PLUGIN_LOADER           (hd_plugin_loader_get_type ())
-#define HD_PLUGIN_LOADER(obj)           (G_TYPE_CHECK_INSTANCE_CAST ((obj), HD_TYPE_PLUGIN_LOADER, HDPluginLoader))
-#define HD_IS_PLUGIN_LOADER(obj)        (G_TYPE_CHECK_INSTANCE_TYPE ((obj), HD_TYPE_PLUGIN_LOADER))
-#define HD_PLUGIN_LOADER_GET_IFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), HD_TYPE_PLUGIN_LOADER, HDPluginLoader))
+typedef struct _HDPluginLoader HDPluginLoader;
+typedef struct _HDPluginLoaderClass HDPluginLoaderClass;
+typedef struct _HDPluginLoaderPrivate HDPluginLoaderPrivate;
 
+#define HD_TYPE_PLUGIN_LOADER            (hd_plugin_loader_get_type ())
+#define HD_PLUGIN_LOADER(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), HD_TYPE_PLUGIN_LOADER, HDPluginLoader))
+#define HD_PLUGIN_LOADER_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass),  HD_TYPE_PLUGIN_LOADER, HDPluginLoaderClass))
+#define HD_IS_PLUGIN_LOADER(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), HD_TYPE_PLUGIN_LOADER))
+#define HD_IS_PLUGIN_LOADER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass),  HD_TYPE_PLUGIN_LOADER))
+#define HD_PLUGIN_LOADER_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj),  HD_TYPE_PLUGIN_LOADER, HDPluginLoaderClass))
 
 typedef enum {
   HD_PLUGIN_LOADER_ERROR_UNKNOWN = 0,
@@ -47,22 +52,33 @@
   HD_PLUGIN_LOADER_ERROR_UNKNOWN_TYPE
 } HDPluginLoaderErrorCode;
 
-GQuark hd_plugin_loader_error_quark (void);
+struct _HDPluginLoader 
+{
+  GObject gobject;
 
-typedef struct _HDPluginLoader HDPluginLoader;
+  HDPluginLoaderPrivate *priv;
+};
 
-struct _HDPluginLoader
+struct _HDPluginLoaderClass 
 {
-  GTypeInterface                parent_interface;
+  GObjectClass parent_class;
 
-  GtkWidget                     *(* load) (HDPluginLoader *loader,
-                                           GError **err);
-
+  GtkWidget        *(* load) (HDPluginLoader  *loader,
+                              GError         **error);
 };
 
-GType           hd_plugin_loader_get_type (void);
+GType       hd_plugin_loader_get_type     (void);
 
-GtkWidget      *hd_plugin_loader_load (HDPluginLoader *loader, GError **error);
+GQuark      hd_plugin_loader_error_quark  (void);
 
+GKeyFile*   hd_plugin_loader_get_key_file (HDPluginLoader  *loader);
+
+void        hd_plugin_loader_set_key_file (HDPluginLoader  *loader,
+                                           GKeyFile        *keyfile);
+
+GtkWidget*  hd_plugin_loader_load         (HDPluginLoader  *loader, 
+                                           GError         **error);
+
 G_END_DECLS
+
 #endif


More information about the maemo-commits mailing list