From: Nick Bowler Date: Sun, 15 Mar 2009 00:29:01 +0000 (-0400) Subject: Implement container's child_type method. X-Git-Url: https://git.draconx.ca/gitweb/aspectbin.git/commitdiff_plain/fcb512f4080197be331d26eca4d2384e20b18e3f Implement container's child_type method. --- diff --git a/aspectbin.c b/aspectbin.c index 1b2af29..7e9095f 100644 --- a/aspectbin.c +++ b/aspectbin.c @@ -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) {