summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Boles <dboles@src.gnome.org>2018-03-01 19:53:53 +0000
committerDaniel Boles <dboles@src.gnome.org>2018-03-01 19:53:53 +0000
commitefa656fde0972321d95a5ff75094698d21e074cd (patch)
tree48ca451928866b90a146b5f6b7bb67c92f9ab472
parent67b959f1a749eea74810ba71e06dd23fb284f854 (diff)
downloadgtk+-wip/dboles/frame-yalign-byealign.tar.gz
Frame: Erase the now-useless property label-yalignwip/dboles/frame-yalign-byealign
The border is now drawn on the frame node, not using an internal border node, so we are no longer able to align the label to vertically overlap the border. The property no longer performs its original purpose, & nor is it a useful candidate for giving a new role, so no point keeping it. https://bugzilla.gnome.org/show_bug.cgi?id=778886
-rw-r--r--gtk/gtkframe.c70
-rw-r--r--gtk/gtkframe.h7
-rw-r--r--tests/testframe.c33
3 files changed, 17 insertions, 93 deletions
diff --git a/gtk/gtkframe.c b/gtk/gtkframe.c
index 4d824ade29..2bc083b83e 100644
--- a/gtk/gtkframe.c
+++ b/gtk/gtkframe.c
@@ -46,9 +46,9 @@
* @Title: GtkFrame
*
* The frame widget is a bin that surrounds its child with a decorative
- * frame and an optional label. If present, the label is drawn in a gap
- * in the top side of the frame. The position of the label can be
- * controlled with gtk_frame_set_label_align().
+ * frame and an optional label. If present, the label is drawn inside
+ * the top edge of the frame. The horizontal position of the label can
+ * be controlled with gtk_frame_set_label_align().
*
* # GtkFrame as GtkBuildable
*
@@ -94,8 +94,6 @@ struct _GtkFramePrivate
gint16 shadow_type;
gfloat label_xalign;
- gfloat label_yalign;
- /* Properties */
GtkAllocation child_allocation;
GtkAllocation label_allocation;
@@ -105,7 +103,6 @@ enum {
PROP_0,
PROP_LABEL,
PROP_LABEL_XALIGN,
- PROP_LABEL_YALIGN,
PROP_SHADOW_TYPE,
PROP_LABEL_WIDGET,
LAST_PROP
@@ -184,14 +181,6 @@ gtk_frame_class_init (GtkFrameClass *class)
0.0,
GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY);
- frame_props[PROP_LABEL_YALIGN] =
- g_param_spec_float ("label-yalign",
- P_("Label yalign"),
- P_("The vertical alignment of the label"),
- 0.0, 1.0,
- 0.5,
- GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY);
-
frame_props[PROP_SHADOW_TYPE] =
g_param_spec_enum ("shadow-type",
P_("Frame shadow"),
@@ -252,7 +241,6 @@ gtk_frame_init (GtkFrame *frame)
priv->label_widget = NULL;
priv->shadow_type = GTK_SHADOW_ETCHED_IN;
priv->label_xalign = 0.0;
- priv->label_yalign = 0.5;
}
static void
@@ -262,7 +250,6 @@ gtk_frame_set_property (GObject *object,
GParamSpec *pspec)
{
GtkFrame *frame = GTK_FRAME (object);
- GtkFramePrivate *priv = frame->priv;
switch (prop_id)
{
@@ -270,13 +257,8 @@ gtk_frame_set_property (GObject *object,
gtk_frame_set_label (frame, g_value_get_string (value));
break;
case PROP_LABEL_XALIGN:
- gtk_frame_set_label_align (frame, g_value_get_float (value),
- priv->label_yalign);
+ gtk_frame_set_label_align (frame, g_value_get_float (value));
break;
- case PROP_LABEL_YALIGN:
- gtk_frame_set_label_align (frame, priv->label_xalign,
- g_value_get_float (value));
- break;
case PROP_SHADOW_TYPE:
gtk_frame_set_shadow_type (frame, g_value_get_enum (value));
break;
@@ -306,9 +288,6 @@ gtk_frame_get_property (GObject *object,
case PROP_LABEL_XALIGN:
g_value_set_float (value, priv->label_xalign);
break;
- case PROP_LABEL_YALIGN:
- g_value_set_float (value, priv->label_yalign);
- break;
case PROP_SHADOW_TYPE:
g_value_set_enum (value, priv->shadow_type);
break;
@@ -497,18 +476,13 @@ gtk_frame_get_label_widget (GtkFrame *frame)
* @xalign: The position of the label along the top edge
* of the widget. A value of 0.0 represents left alignment;
* 1.0 represents right alignment.
- * @yalign: The y alignment of the label. A value of 0.0 aligns under
- * the frame; 1.0 aligns above the frame. If the values are exactly
- * 0.0 or 1.0 the gap in the frame won’t be painted because the label
- * will be completely above or below the frame.
*
- * Sets the alignment of the frame widget’s label. The
- * default values for a newly created frame are 0.0 and 0.5.
+ * Sets the X alignment of the frame widget’s label. The
+ * default value for a newly created frame is 0.0.
**/
void
gtk_frame_set_label_align (GtkFrame *frame,
- gfloat xalign,
- gfloat yalign)
+ gfloat xalign)
{
GtkFramePrivate *priv;
@@ -517,7 +491,6 @@ gtk_frame_set_label_align (GtkFrame *frame,
priv = frame->priv;
xalign = CLAMP (xalign, 0.0, 1.0);
- yalign = CLAMP (yalign, 0.0, 1.0);
g_object_freeze_notify (G_OBJECT (frame));
if (xalign != priv->label_xalign)
@@ -526,12 +499,6 @@ gtk_frame_set_label_align (GtkFrame *frame,
g_object_notify_by_pspec (G_OBJECT (frame), frame_props[PROP_LABEL_XALIGN]);
}
- if (yalign != priv->label_yalign)
- {
- priv->label_yalign = yalign;
- g_object_notify_by_pspec (G_OBJECT (frame), frame_props[PROP_LABEL_YALIGN]);
- }
-
g_object_thaw_notify (G_OBJECT (frame));
gtk_widget_queue_resize (GTK_WIDGET (frame));
}
@@ -539,29 +506,16 @@ gtk_frame_set_label_align (GtkFrame *frame,
/**
* gtk_frame_get_label_align:
* @frame: a #GtkFrame
- * @xalign: (out) (allow-none): location to store X alignment of
- * frame’s label, or %NULL
- * @yalign: (out) (allow-none): location to store X alignment of
- * frame’s label, or %NULL
*
- * Retrieves the X and Y alignment of the frame’s label. See
+ * Retrieves the X alignment of the frame’s label. See
* gtk_frame_set_label_align().
**/
-void
-gtk_frame_get_label_align (GtkFrame *frame,
- gfloat *xalign,
- gfloat *yalign)
+gfloat
+gtk_frame_get_label_align (GtkFrame *frame)
{
- GtkFramePrivate *priv;
-
- g_return_if_fail (GTK_IS_FRAME (frame));
-
- priv = frame->priv;
+ g_return_val_if_fail (GTK_IS_FRAME (frame), 0.0);
- if (xalign)
- *xalign = priv->label_xalign;
- if (yalign)
- *yalign = priv->label_yalign;
+ return frame->priv->label_xalign;
}
/**
diff --git a/gtk/gtkframe.h b/gtk/gtkframe.h
index 8d3ed78da3..8a5f812fbf 100644
--- a/gtk/gtkframe.h
+++ b/gtk/gtkframe.h
@@ -97,12 +97,9 @@ GDK_AVAILABLE_IN_ALL
GtkWidget *gtk_frame_get_label_widget (GtkFrame *frame);
GDK_AVAILABLE_IN_ALL
void gtk_frame_set_label_align (GtkFrame *frame,
- gfloat xalign,
- gfloat yalign);
+ gfloat xalign);
GDK_AVAILABLE_IN_ALL
-void gtk_frame_get_label_align (GtkFrame *frame,
- gfloat *xalign,
- gfloat *yalign);
+gfloat gtk_frame_get_label_align (GtkFrame *frame);
GDK_AVAILABLE_IN_ALL
void gtk_frame_set_shadow_type (GtkFrame *frame,
GtkShadowType type);
diff --git a/tests/testframe.c b/tests/testframe.c
index d193eed022..f05a85de40 100644
--- a/tests/testframe.c
+++ b/tests/testframe.c
@@ -110,26 +110,11 @@ static void
spin_xalign_cb (GtkSpinButton *spin, GtkFrame *frame)
{
gdouble xalign;
- gfloat yalign;
xalign = double_normalize (gtk_spin_button_get_value (spin));
- gtk_frame_get_label_align (frame, NULL, &yalign);
- gtk_frame_set_label_align (frame, xalign, yalign);
+ gtk_frame_set_label_align (frame, xalign);
}
-#if 0
-static void
-spin_yalign_cb (GtkSpinButton *spin, GtkFrame *frame)
-{
- gdouble yalign;
- gfloat xalign;
-
- yalign = double_normalize (gtk_spin_button_get_value (spin));
- gtk_frame_get_label_align (frame, &xalign, NULL);
- gtk_frame_set_label_align (frame, xalign, yalign);
-}
-#endif
-
static void
draw_border_cb (GtkToggleButton *toggle_button, GtkFrame *frame)
{
@@ -145,7 +130,7 @@ int main (int argc, char **argv)
GtkBox *vbox;
GtkFrame *frame;
GtkGrid *grid;
- gfloat xalign, yalign;
+ gfloat xalign;
gboolean draw_border;
gtk_init ();
@@ -171,7 +156,7 @@ int main (int argc, char **argv)
gtk_grid_set_column_spacing (grid, 6);
gtk_box_pack_start (vbox, GTK_WIDGET (grid));
- gtk_frame_get_label_align (frame, &xalign, &yalign);
+ xalign = gtk_frame_get_label_align (frame);
/* Spin to control :label-xalign */
widget = gtk_label_new ("label xalign:");
@@ -182,18 +167,6 @@ int main (int argc, char **argv)
g_signal_connect (widget, "value-changed", G_CALLBACK (spin_xalign_cb), frame);
gtk_grid_attach (grid, widget, 1, 0, 1, 1);
-/* Frame:label-yalign does nothing since the border node was removed */
-#if 0
- /* Spin to control :label-yalign */
- widget = gtk_label_new ("label yalign:");
- gtk_grid_attach (grid, widget, 0, 1, 1, 1);
-
- widget = gtk_spin_button_new_with_range (0.0, 1.0, 0.1);
- gtk_spin_button_set_value (GTK_SPIN_BUTTON (widget), yalign);
- g_signal_connect (widget, "value-changed", G_CALLBACK (spin_yalign_cb), frame);
- gtk_grid_attach (grid, widget, 1, 1, 1, 1);
-#endif
-
/* Spin to control vertical padding */
widget = gtk_label_new ("vertical padding:");
gtk_grid_attach (grid, widget, 0, 1, 1, 1);