From fb12bbcebbf5fe614ef9660f28505a31c9cd997d Mon Sep 17 00:00:00 2001 From: Tim Janik Date: Tue, 19 Sep 2006 15:51:19 +0000 Subject: added GtkArrow::arrow-scaling style property to control the arrow/border Tue Sep 19 17:00:04 2006 Tim Janik * gtk/gtkarrow.c: added GtkArrow::arrow-scaling style property to control the arrow/border ratio within the allocation. * tests/testgtk.c: added a GtkArrow to handle box test. * tests/testgtkrc: test ::arrow-scaling property. --- ChangeLog | 9 +++++++++ gtk/gtkarrow.c | 18 ++++++++++++------ tests/testgtk.c | 4 +++- tests/testgtkrc | 1 + 4 files changed, 25 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9171dd076e..347f0a3f76 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +Tue Sep 19 17:00:04 2006 Tim Janik + + * gtk/gtkarrow.c: added GtkArrow::arrow-scaling style property to + control the arrow/border ratio within the allocation. + + * tests/testgtk.c: added a GtkArrow to handle box test. + + * tests/testgtkrc: test ::arrow-scaling property. + 2006-09-19 Matthias Clasen * gtk/gtkfilechooserdefault.c (update_current_folder_get_info_cb): diff --git a/gtk/gtkarrow.c b/gtk/gtkarrow.c index 45f024d613..2a2427410b 100644 --- a/gtk/gtkarrow.c +++ b/gtk/gtkarrow.c @@ -86,7 +86,13 @@ gtk_arrow_class_init (GtkArrowClass *class) GTK_TYPE_SHADOW_TYPE, GTK_SHADOW_OUT, GTK_PARAM_READWRITE)); - + gtk_widget_class_install_style_property (widget_class, + g_param_spec_float ("arrow-scaling", + P_("Arrow Scaling"), + P_("Amount of space sed up by arrow"), + 0.0, 1.0, 0.7, + GTK_PARAM_READABLE)); + widget_class->expose_event = gtk_arrow_expose; } @@ -204,8 +210,6 @@ static gboolean gtk_arrow_expose (GtkWidget *widget, GdkEventExpose *event) { - GtkArrow *arrow; - GtkMisc *misc; GtkShadowType shadow_type; gint width, height; gint x, y; @@ -215,12 +219,14 @@ gtk_arrow_expose (GtkWidget *widget, if (GTK_WIDGET_DRAWABLE (widget)) { - arrow = GTK_ARROW (widget); - misc = GTK_MISC (widget); + GtkArrow *arrow = GTK_ARROW (widget); + GtkMisc *misc = GTK_MISC (widget); + gfloat arrow_scaling; + gtk_widget_style_get (widget, "arrow-scaling", &arrow_scaling, NULL); width = widget->allocation.width - misc->xpad * 2; height = widget->allocation.height - misc->ypad * 2; - extent = MIN (width, height) * 0.7; + extent = MIN (width, height) * arrow_scaling; effective_arrow_type = arrow->arrow_type; if (gtk_widget_get_direction (widget) == GTK_TEXT_DIR_LTR) diff --git a/tests/testgtk.c b/tests/testgtk.c index e12089ada0..c7274e05b8 100644 --- a/tests/testgtk.c +++ b/tests/testgtk.c @@ -2389,9 +2389,11 @@ create_handle_box (GtkWidget *widget) "detached"); gtk_widget_show (handle_box2); + hbox = g_object_new (GTK_TYPE_HBOX, "visible", 1, "parent", handle_box2, NULL); label = gtk_label_new ("Fooo!"); - gtk_container_add (GTK_CONTAINER (handle_box2), label); + gtk_container_add (GTK_CONTAINER (hbox), label); gtk_widget_show (label); + g_object_new (GTK_TYPE_ARROW, "visible", 1, "parent", hbox, NULL); } if (!GTK_WIDGET_VISIBLE (window)) diff --git a/tests/testgtkrc b/tests/testgtkrc index f711ae79bd..e94ab284b7 100644 --- a/tests/testgtkrc +++ b/tests/testgtkrc @@ -31,6 +31,7 @@ style "global-style-properties" GtkToolbar::button_relief = none GtkButtonBox::child_min_width = 0 GtkButtonBox::child_min_height = 0 + GtkArrow::arrow-scaling = 1.0 } class "GtkWidget" style "global-style-properties" -- cgit v1.2.1