From b3631b588bc09dda1fa17c7071e594d25eda8cc1 Mon Sep 17 00:00:00 2001 From: Nick Bowler Date: Sun, 22 Mar 2009 18:30:05 -0400 Subject: [PATCH] Add aspect ratio property. --- aspectbin.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/aspectbin.c b/aspectbin.c index ba3bbda..bc74a67 100644 --- a/aspectbin.c +++ b/aspectbin.c @@ -22,6 +22,7 @@ enum { PROP_0, + PROP_RATIO, PROP_CONSTRAIN, PROP_FILL, }; @@ -81,6 +82,13 @@ static void aspect_bin_class_init(AspectBinClass *class) object_class->set_property = aspect_bin_set_property; object_class->get_property = aspect_bin_get_property; + g_object_class_install_property(object_class, + PROP_RATIO, + g_param_spec_float("ratio", + "Aspect Ratio", + "Width:height ratio of the body.", + 0.2, 5.0, 1.0, + G_PARAM_READWRITE)); g_object_class_install_property(object_class, PROP_FILL, g_param_spec_boolean("fill", @@ -115,8 +123,15 @@ static void aspect_bin_set_property(GObject *object, GParamSpec *pspec) { AspectBin *abin = ASPECT_BIN(object); + gfloat tmp; switch (prop_id) { + case PROP_RATIO: + tmp = abin->ratio; + abin->ratio = g_value_get_float(value); + if (tmp != abin->ratio) + gtk_widget_queue_resize(GTK_WIDGET(abin)); + break; case PROP_CONSTRAIN: abin->constrain = g_value_get_boolean(value); gtk_widget_queue_resize(GTK_WIDGET(abin)); @@ -138,6 +153,9 @@ static void aspect_bin_get_property(GObject *object, AspectBin *abin = ASPECT_BIN(object); switch (prop_id) { + case PROP_RATIO: + g_value_set_float(value, abin->ratio); + break; case PROP_CONSTRAIN: g_value_set_boolean(value, abin->constrain); break; -- 2.43.2