[maemo-commits] [maemo-commits] r15308 - in projects/haf/trunk/hildon-desktop: . libhildondesktop

From: subversion at stage.maemo.org subversion at stage.maemo.org
Date: Wed Mar 19 13:00:44 EET 2008
Author: lucasr
Date: 2008-03-19 13:00:42 +0200 (Wed, 19 Mar 2008)
New Revision: 15308

Modified:
   projects/haf/trunk/hildon-desktop/ChangeLog
   projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-item.c
   projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-item.h
Log:
2008-03-19  Lucas Rocha  <lucas.rocha at nokia.com>

	* libhildondesktop/hildon-desktop-item.[ch]: move new properties of 
	HildonDesktopItem to a private struct in order to keep ABI backwards 
	compatibility.


Modified: projects/haf/trunk/hildon-desktop/ChangeLog
===================================================================
--- projects/haf/trunk/hildon-desktop/ChangeLog	2008-03-19 10:53:24 UTC (rev 15307)
+++ projects/haf/trunk/hildon-desktop/ChangeLog	2008-03-19 11:00:42 UTC (rev 15308)
@@ -1,3 +1,9 @@
+2008-03-19  Lucas Rocha  <lucas.rocha at nokia.com>
+
+	* libhildondesktop/hildon-desktop-item.[ch]: move new properties of 
+	HildonDesktopItem to a private struct in order to keep ABI backwards 
+	compatibility.
+
 2008-03-13  Lucas Rocha  <lucas.rocha at nokia.com>
 
 	Added support for having several instances of the same type of plugins 

Modified: projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-item.c
===================================================================
--- projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-item.c	2008-03-19 10:53:24 UTC (rev 15307)
+++ projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-item.c	2008-03-19 11:00:42 UTC (rev 15308)
@@ -25,11 +25,19 @@
 
 #include "hildon-desktop-item.h"
 
+typedef struct _HildonDesktopItemPrivate HildonDesktopItemPrivate;
+
 #define HILDON_DESKTOP_ITEM_GET_PRIVATE(object) \
-        (G_TYPE_INSTANCE_GET_PRIVATE ((object), HILDON_DESKTOP_TYPE_ITEM, HildonDesktopItem))
+        (G_TYPE_INSTANCE_GET_PRIVATE ((object), HILDON_DESKTOP_TYPE_ITEM, HildonDesktopItemPrivate))
 
 G_DEFINE_TYPE (HildonDesktopItem, hildon_desktop_item, GTK_TYPE_BIN);
 
+struct _HildonDesktopItemPrivate 
+{
+  gchar	       *resource;
+  gboolean      temporary;
+};
+
 enum
 {
   SIGNAL_CREATE,
@@ -127,16 +135,22 @@
                                                         "Plugin is temporary",
                                                         FALSE,
                                                         G_PARAM_CONSTRUCT | G_PARAM_READWRITE));
+
+  g_type_class_add_private (object_class, sizeof (HildonDesktopItemPrivate));
 }
 
 static void 
 hildon_desktop_item_init (HildonDesktopItem *item)
 {
+  HildonDesktopItemPrivate *priv;
+	
   g_return_if_fail (item);
 
+  priv = HILDON_DESKTOP_ITEM_GET_PRIVATE (item);
+  
   item->id = NULL;
-  item->resource = NULL;
   item->name = NULL;
+  priv->resource = NULL;
  
   item->geometry.x     = item->geometry.y      = -1;
   item->geometry.width = item->geometry.height = -1;
@@ -194,6 +208,7 @@
 hildon_desktop_item_finalize (GObject *object)
 {
   HildonDesktopItem *item = HILDON_DESKTOP_ITEM (object);
+  HildonDesktopItemPrivate *priv = HILDON_DESKTOP_ITEM_GET_PRIVATE (object);
 
   if (item->id)
   {
@@ -201,10 +216,10 @@
     item->id = NULL;
   }
 
-  if (item->resource)
+  if (priv->resource)
   {
-    g_free (item->resource);
-    item->resource = NULL;
+    g_free (priv->resource);
+    priv->resource = NULL;
   }
 
   if (item->name)
@@ -223,11 +238,14 @@
                                   GParamSpec *pspec)
 {
   HildonDesktopItem *item;
+  HildonDesktopItemPrivate *priv;
 
   g_assert (object && HILDON_DESKTOP_IS_ITEM (object));
 
   item = HILDON_DESKTOP_ITEM (object);
 
+  priv = HILDON_DESKTOP_ITEM_GET_PRIVATE (object);
+
   switch (prop_id)
   {
     case PROP_ID:	   
@@ -236,8 +254,8 @@
       break;
       
     case PROP_RESOURCE:
-      g_free (item->resource);
-      item->resource = g_strdup (g_value_get_string (value));
+      g_free (priv->resource);
+      priv->resource = g_strdup (g_value_get_string (value));
       break;
  
     case PROP_NAME:	   
@@ -250,7 +268,7 @@
       break;
       
     case PROP_TEMPORARY:
-      item->temporary = g_value_get_boolean (value);
+      priv->temporary = g_value_get_boolean (value);
       break;
       
     default:
@@ -266,11 +284,14 @@
                                   GParamSpec *pspec)
 {
   HildonDesktopItem *item;
+  HildonDesktopItemPrivate *priv;
 
   g_assert (object && HILDON_DESKTOP_IS_ITEM (object));
 
   item = HILDON_DESKTOP_ITEM (object);
 
+  priv = HILDON_DESKTOP_ITEM_GET_PRIVATE (object);
+
   switch (prop_id)
   {
     case PROP_ID:
@@ -278,7 +299,7 @@
       break;
       
     case PROP_RESOURCE:
-      g_value_set_string (value,item->resource);
+      g_value_set_string (value,priv->resource);
       break;
  
     case PROP_NAME:
@@ -290,7 +311,7 @@
       break;
  
     case PROP_TEMPORARY:
-      g_value_set_boolean (value,item->temporary);
+      g_value_set_boolean (value,priv->temporary);
       break;
  
     default:
@@ -341,9 +362,13 @@
 const gchar *
 hildon_desktop_item_get_resource (HildonDesktopItem *item)
 {
+  HildonDesktopItemPrivate *priv;
+	
   g_return_val_if_fail (item && HILDON_DESKTOP_IS_ITEM (item),NULL);
 
-  return item->resource;
+  priv = HILDON_DESKTOP_ITEM_GET_PRIVATE (item);
+  
+  return priv->resource;
 }
 
 /**

Modified: projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-item.h
===================================================================
--- projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-item.h	2008-03-19 10:53:24 UTC (rev 15307)
+++ projects/haf/trunk/hildon-desktop/libhildondesktop/hildon-desktop-item.h	2008-03-19 11:00:42 UTC (rev 15308)
@@ -47,14 +47,10 @@
 
   gchar	       *id;
 
-  gchar	       *resource;
-
   gchar	       *name;
 
   gboolean      mandatory;
 
-  gboolean      temporary;
-  
   GdkRectangle  geometry;
 };
 


More information about the maemo-commits mailing list