* src/hildon-bread-crumb.c: * src/hildon-bread-crumb.h:
authorXan Lopez <xan.lopez@nokia.com>
Tue, 17 Apr 2007 14:14:16 +0000 (14:14 +0000)
committerXan Lopez <xan.lopez@nokia.com>
Tue, 17 Apr 2007 14:14:16 +0000 (14:14 +0000)
Make the get_natural_size function a vfunc.

ChangeLog
src/hildon-bread-crumb.c
src/hildon-bread-crumb.h

index 78f12fe..3038aaa 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2007-04-17  Xan Lopez  <xan.lopez@nokia.com>
+
+       * src/hildon-bread-crumb.c:
+       * src/hildon-bread-crumb.h:
+
+       Make the get_natural_size function a vfunc.
+
 2007-04-16  Xan Lopez  <xan.lopez@nokia.com>
 
        * src/hildon-bread-crumb.c:
index 85c2c37..1ab2481 100644 (file)
@@ -29,7 +29,6 @@
 
 struct _HildonBreadCrumbPrivate
 {
-  GtkWidget *icon;
   GtkWidget *label;
   GtkWidget *arrow;
   gchar *text;
@@ -62,6 +61,8 @@ static void hildon_bread_crumb_set_property (GObject *object, guint prop_id,
                                              const GValue *value, GParamSpec *pspec);
 static void hildon_bread_crumb_get_property (GObject *object, guint prop_id,
                                              GValue *value, GParamSpec *pspec);
+static void hildon_bread_crumb_real_get_natural_size (HildonBreadCrumb *bread_crumb,
+                                                      gint *width, gint *height);
 
 G_DEFINE_TYPE (HildonBreadCrumb, hildon_bread_crumb, GTK_TYPE_BUTTON)
 
@@ -70,6 +71,8 @@ hildon_bread_crumb_class_init (HildonBreadCrumbClass *klass)
 {
   GObjectClass *gobject_class = (GObjectClass*)klass;
 
+  klass->get_natural_size = hildon_bread_crumb_real_get_natural_size;
+
   /* GObject signals */
   gobject_class->finalize = hildon_bread_crumb_finalize;
   gobject_class->set_property = hildon_bread_crumb_set_property;
@@ -229,10 +232,10 @@ hildon_bread_crumb_set_show_separator (HildonBreadCrumb *item,
   g_object_notify (G_OBJECT (item), "show-separator");
 }
 
-void
-hildon_bread_crumb_get_natural_size (HildonBreadCrumb *item,
-                                     gint *natural_width,
-                                     gint *natural_height)
+static void
+hildon_bread_crumb_real_get_natural_size (HildonBreadCrumb *item,
+                                          gint *natural_width,
+                                          gint *natural_height)
 {
   GtkRequisition widget_req, label_req;
   gint width, height;
@@ -268,6 +271,23 @@ hildon_bread_crumb_get_natural_size (HildonBreadCrumb *item,
     }
 }
 
+void
+hildon_bread_crumb_get_natural_size (HildonBreadCrumb *bread_crumb,
+                                     gint *natural_width,
+                                     gint *natural_height)
+{
+  HildonBreadCrumbClass *klass;
+
+  g_return_if_fail (HILDON_IS_BREAD_CRUMB (bread_crumb));
+
+  klass = HILDON_BREAD_CRUMB_GET_CLASS (bread_crumb);
+
+  if (klass->get_natural_size)
+    return (* klass->get_natural_size) (bread_crumb,
+                                        natural_width,
+                                        natural_height);
+}
+
 GtkWidget*
 hildon_bread_crumb_new (const gchar* text)
 {
index eb02ae5..0f9829a 100644 (file)
@@ -51,6 +51,10 @@ struct _HildonBreadCrumb
 struct _HildonBreadCrumbClass
 {
   GtkButtonClass parent_class;
+
+  /* vfuncs */
+  void (* get_natural_size) (HildonBreadCrumb *bc,
+                             gint *natural_width, gint *natural_height);
 };
 
 GType hildon_bread_crumb_get_type (void) G_GNUC_CONST;