+static void aspect_bin_set_property(GObject *object,
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ AspectBin *abin = ASPECT_BIN(object);
+
+ switch (prop_id) {
+ case PROP_CONSTRAIN:
+ abin->constrain = g_value_get_boolean(value);
+ gtk_widget_queue_resize(GTK_WIDGET(abin));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
+ }
+}
+
+static void aspect_bin_get_property(GObject *object,
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ AspectBin *abin = ASPECT_BIN(object);
+
+ switch (prop_id) {
+ case PROP_CONSTRAIN:
+ g_value_set_boolean(value, abin->constrain);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec);
+ }
+}
+
+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");
+}
+