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 *);
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;
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);