]> git.draconx.ca Git - aspectbin.git/commitdiff
Implement container's child_type method.
authorNick Bowler <nbowler@draconx.ca>
Sun, 15 Mar 2009 00:29:01 +0000 (20:29 -0400)
committerNick Bowler <nbowler@draconx.ca>
Sun, 15 Mar 2009 00:29:01 +0000 (20:29 -0400)
aspectbin.c

index 1b2af29095e9d65dd86101b635b827f84f7e232c..7e9095fd70c87119dab63a03cc08437e50e6350c 100644 (file)
@@ -5,6 +5,7 @@ static void aspect_bin_size_request(GtkWidget *, GtkRequisition *);
 static void aspect_bin_size_allocate(GtkWidget *, GtkAllocation *);
 static void aspect_bin_remove(GtkContainer *, GtkWidget *);
 static void aspect_bin_forall(GtkContainer *, gboolean, GtkCallback, gpointer);
+static GType aspect_bin_child_type(GtkContainer *);
 
 G_DEFINE_TYPE(AspectBin, aspect_bin, GTK_TYPE_CONTAINER)
 
@@ -27,8 +28,9 @@ static void aspect_bin_class_init(AspectBinClass *class)
        widget_class->size_request  = aspect_bin_size_request;
        widget_class->size_allocate = aspect_bin_size_allocate;
 
-       container_class->remove = aspect_bin_remove;
-       container_class->forall = aspect_bin_forall;
+       container_class->remove     = aspect_bin_remove;
+       container_class->forall     = aspect_bin_forall;
+       container_class->child_type = aspect_bin_child_type;
 }
 
 GtkWidget *aspect_bin_new(void)
@@ -61,6 +63,13 @@ static void aspect_bin_forall(GtkContainer *container,
                callback(abin->side, callback_data);
 }
 
+static GType aspect_bin_child_type(GtkContainer *container)
+{
+       if (!ASPECT_BIN(container)->body || !ASPECT_BIN(container)->side)
+               return GTK_TYPE_WIDGET;
+       return G_TYPE_NONE;
+}
+
 static void
 aspect_bin_size_request(GtkWidget *widget, GtkRequisition *requisition)
 {