From 2389929b59b03a0e6ee909f90702a5f7d3741662 Mon Sep 17 00:00:00 2001 From: Nick Bowler Date: Sat, 14 Mar 2009 20:33:37 -0400 Subject: [PATCH] Implement container's add method. --- aspectbin.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/aspectbin.c b/aspectbin.c index 7e9095f..82aba40 100644 --- a/aspectbin.c +++ b/aspectbin.c @@ -3,6 +3,7 @@ static void aspect_bin_size_request(GtkWidget *, GtkRequisition *); static void aspect_bin_size_allocate(GtkWidget *, GtkAllocation *); +static void aspect_bin_add(GtkContainer *, GtkWidget *); static void aspect_bin_remove(GtkContainer *, GtkWidget *); static void aspect_bin_forall(GtkContainer *, gboolean, GtkCallback, gpointer); static GType aspect_bin_child_type(GtkContainer *); @@ -28,6 +29,7 @@ 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->add = aspect_bin_add; container_class->remove = aspect_bin_remove; container_class->forall = aspect_bin_forall; container_class->child_type = aspect_bin_child_type; @@ -38,6 +40,20 @@ GtkWidget *aspect_bin_new(void) return GTK_WIDGET(g_object_new(ASPECT_BIN_TYPE, NULL)); } +static void aspect_bin_add(GtkContainer *container, GtkWidget *widget) +{ + AspectBin *abin; + g_return_if_fail(IS_ASPECT_BIN(container)); + abin = ASPECT_BIN(container); + + if (!abin->body) + aspect_bin_set_body(abin, widget, 1); + else if (!abin->side) + aspect_bin_set_side(abin, widget); + else + g_warning("AspectBin cannot have more than 2 children.\n"); +} + static void aspect_bin_remove(GtkContainer *container, GtkWidget *child) { AspectBin *abin = ASPECT_BIN(container); -- 2.43.0