[gtk/wip/exalm/headerbar-title: 1/6] headerbar: Remove has-subtitle property
- From: Alexander Mikhaylenko <alexm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/wip/exalm/headerbar-title: 1/6] headerbar: Remove has-subtitle property
- Date: Fri, 1 May 2020 10:38:47 +0000 (UTC)
commit d6d2646eb90c93a3f225aba51cee2b4c49002348
Author: Alexander Mikhaylenko <alexm gnome org>
Date: Thu Apr 30 23:47:53 2020 +0500
headerbar: Remove has-subtitle property
Subtitle will go too in the next commit, but has-subtitle goes first as
it's broken right now anyway.
demos/gtk-demo/headerbar.c | 1 -
docs/reference/gtk/gtk4-sections.txt | 2 -
gtk/gtkheaderbar.c | 129 +----------------------------------
gtk/gtkheaderbar.h | 6 --
gtk/gtkwindow.c | 1 -
gtk/ui/gtkdialog.ui | 1 -
6 files changed, 1 insertion(+), 139 deletions(-)
---
diff --git a/demos/gtk-demo/headerbar.c b/demos/gtk-demo/headerbar.c
index 8bd78fb227..d9e823e495 100644
--- a/demos/gtk-demo/headerbar.c
+++ b/demos/gtk-demo/headerbar.c
@@ -32,7 +32,6 @@ do_headerbar (GtkWidget *do_widget)
header = gtk_header_bar_new ();
gtk_header_bar_set_show_title_buttons (GTK_HEADER_BAR (header), TRUE);
gtk_header_bar_set_title (GTK_HEADER_BAR (header), "Welcome to Facebook - Log in, sign up or learn
more");
- gtk_header_bar_set_has_subtitle (GTK_HEADER_BAR (header), FALSE);
button = gtk_button_new ();
icon = g_themed_icon_new ("mail-send-receive-symbolic");
diff --git a/docs/reference/gtk/gtk4-sections.txt b/docs/reference/gtk/gtk4-sections.txt
index bb3488926e..874bd5179a 100644
--- a/docs/reference/gtk/gtk4-sections.txt
+++ b/docs/reference/gtk/gtk4-sections.txt
@@ -5583,8 +5583,6 @@ gtk_header_bar_set_title
gtk_header_bar_get_title
gtk_header_bar_set_subtitle
gtk_header_bar_get_subtitle
-gtk_header_bar_set_has_subtitle
-gtk_header_bar_get_has_subtitle
gtk_header_bar_set_custom_title
gtk_header_bar_get_custom_title
gtk_header_bar_pack_start
diff --git a/gtk/gtkheaderbar.c b/gtk/gtkheaderbar.c
index 64118ad52e..ef0859195a 100644
--- a/gtk/gtkheaderbar.c
+++ b/gtk/gtkheaderbar.c
@@ -48,10 +48,7 @@
* be placed at the start or the end. In addition, it allows a title and
* subtitle to be displayed. The title will be centered with respect to
* the width of the box, even if the children at either side take up
- * different amounts of space. The height of the titlebar will be
- * set to provide sufficient space for the subtitle, even if none is
- * currently set. If a subtitle is not needed, the space reservation
- * can be turned off with gtk_header_bar_set_has_subtitle().
+ * different amounts of space.
*
* GtkHeaderBar can add typical window frame controls, such as minimize,
* maximize and close buttons, or the window icon.
@@ -106,10 +103,7 @@ struct _GtkHeaderBarPrivate
GtkWidget *title_label;
GtkWidget *subtitle_label;
GtkWidget *label_box;
- GtkWidget *label_sizing_box;
- GtkWidget *subtitle_sizing_label;
GtkWidget *custom_title;
- gboolean has_subtitle;
gboolean show_title_buttons;
gchar *decoration_layout;
@@ -125,7 +119,6 @@ enum {
PROP_0,
PROP_TITLE,
PROP_SUBTITLE,
- PROP_HAS_SUBTITLE,
PROP_CUSTOM_TITLE,
PROP_SHOW_TITLE_BUTTONS,
PROP_DECORATION_LAYOUT,
@@ -141,38 +134,6 @@ G_DEFINE_TYPE_WITH_CODE (GtkHeaderBar, gtk_header_bar, GTK_TYPE_CONTAINER,
G_IMPLEMENT_INTERFACE (GTK_TYPE_BUILDABLE,
gtk_header_bar_buildable_init));
-static void
-init_sizing_box (GtkHeaderBar *bar)
-{
- GtkHeaderBarPrivate *priv = gtk_header_bar_get_instance_private (bar);
- GtkWidget *w;
-
- /* We use this box to always request size for the two labels (title
- * and subtitle) as if they were always visible, but then allocate
- * the real label box with its actual size, to keep it center-aligned
- * in case we have only the title.
- */
- w = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
- priv->label_sizing_box = g_object_ref_sink (w);
-
- w = gtk_label_new (NULL);
- gtk_widget_add_css_class (w, GTK_STYLE_CLASS_TITLE);
- gtk_container_add (GTK_CONTAINER (priv->label_sizing_box), w);
- gtk_label_set_wrap (GTK_LABEL (w), FALSE);
- gtk_label_set_single_line_mode (GTK_LABEL (w), TRUE);
- gtk_label_set_ellipsize (GTK_LABEL (w), PANGO_ELLIPSIZE_END);
- gtk_label_set_width_chars (GTK_LABEL (w), MIN_TITLE_CHARS);
-
- w = gtk_label_new (NULL);
- gtk_widget_add_css_class (w, GTK_STYLE_CLASS_SUBTITLE);
- gtk_container_add (GTK_CONTAINER (priv->label_sizing_box), w);
- gtk_label_set_wrap (GTK_LABEL (w), FALSE);
- gtk_label_set_single_line_mode (GTK_LABEL (w), TRUE);
- gtk_label_set_ellipsize (GTK_LABEL (w), PANGO_ELLIPSIZE_END);
- gtk_widget_set_visible (w, priv->has_subtitle || (priv->subtitle && priv->subtitle[0]));
- priv->subtitle_sizing_label = w;
-}
-
static GtkWidget *
create_title_box (const char *title,
const char *subtitle,
@@ -367,10 +328,6 @@ gtk_header_bar_get_title (GtkHeaderBar *bar)
*
* Sets the subtitle of the #GtkHeaderBar. The title should give a user
* an additional detail to help him identify the current view.
- *
- * Note that GtkHeaderBar by default reserves room for the subtitle,
- * even if none is currently set. If this is not desired, set the
- * #GtkHeaderBar:has-subtitle property to %FALSE.
*/
void
gtk_header_bar_set_subtitle (GtkHeaderBar *bar,
@@ -392,8 +349,6 @@ gtk_header_bar_set_subtitle (GtkHeaderBar *bar,
gtk_widget_queue_resize (GTK_WIDGET (bar));
}
- gtk_widget_set_visible (priv->subtitle_sizing_label, priv->has_subtitle || (priv->subtitle &&
priv->subtitle[0]));
-
g_object_notify_by_pspec (G_OBJECT (bar), header_bar_props[PROP_SUBTITLE]);
}
@@ -508,12 +463,6 @@ gtk_header_bar_dispose (GObject *object)
{
GtkHeaderBarPrivate *priv = gtk_header_bar_get_instance_private (GTK_HEADER_BAR (object));
- if (priv->label_sizing_box)
- {
- g_object_ref_sink (priv->label_sizing_box);
- g_clear_object (&priv->label_sizing_box);
- }
-
g_clear_pointer (&priv->custom_title, gtk_widget_unparent);
g_clear_pointer (&priv->label_box, gtk_widget_unparent);
@@ -562,10 +511,6 @@ gtk_header_bar_get_property (GObject *object,
g_value_set_boolean (value, gtk_header_bar_get_show_title_buttons (bar));
break;
- case PROP_HAS_SUBTITLE:
- g_value_set_boolean (value, gtk_header_bar_get_has_subtitle (bar));
- break;
-
case PROP_DECORATION_LAYOUT:
g_value_set_string (value, gtk_header_bar_get_decoration_layout (bar));
break;
@@ -602,10 +547,6 @@ gtk_header_bar_set_property (GObject *object,
gtk_header_bar_set_show_title_buttons (bar, g_value_get_boolean (value));
break;
- case PROP_HAS_SUBTITLE:
- gtk_header_bar_set_has_subtitle (bar, g_value_get_boolean (value));
- break;
-
case PROP_DECORATION_LAYOUT:
gtk_header_bar_set_decoration_layout (bar, g_value_get_string (value));
break;
@@ -798,19 +739,6 @@ gtk_header_bar_class_init (GtkHeaderBarClass *class)
NULL,
GTK_PARAM_READWRITE);
- /**
- * GtkHeaderBar:has-subtitle:
- *
- * If %TRUE, reserve space for a subtitle, even if none
- * is currently set.
- */
- header_bar_props[PROP_HAS_SUBTITLE] =
- g_param_spec_boolean ("has-subtitle",
- P_("Has Subtitle"),
- P_("Whether to reserve space for a subtitle"),
- TRUE,
- GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY);
-
g_object_class_install_properties (object_class, LAST_PROP, header_bar_props);
gtk_widget_class_set_accessible_role (widget_class, ATK_ROLE_PANEL);
@@ -827,7 +755,6 @@ gtk_header_bar_init (GtkHeaderBar *bar)
priv->title = NULL;
priv->subtitle = NULL;
priv->custom_title = NULL;
- priv->has_subtitle = TRUE;
priv->decoration_layout = NULL;
priv->state = GDK_SURFACE_STATE_WITHDRAWN;
@@ -841,7 +768,6 @@ gtk_header_bar_init (GtkHeaderBar *bar)
gtk_widget_set_parent (priv->end_box, GTK_WIDGET (bar));
gtk_center_layout_set_end_widget (GTK_CENTER_LAYOUT (layout), priv->end_box);
- init_sizing_box (bar);
construct_label_box (bar);
}
@@ -971,59 +897,6 @@ gtk_header_bar_set_show_title_buttons (GtkHeaderBar *bar,
g_object_notify_by_pspec (G_OBJECT (bar), header_bar_props[PROP_SHOW_TITLE_BUTTONS]);
}
-/**
- * gtk_header_bar_set_has_subtitle:
- * @bar: a #GtkHeaderBar
- * @setting: %TRUE to reserve space for a subtitle
- *
- * Sets whether the header bar should reserve space
- * for a subtitle, even if none is currently set.
- */
-void
-gtk_header_bar_set_has_subtitle (GtkHeaderBar *bar,
- gboolean setting)
-{
- GtkHeaderBarPrivate *priv;
-
- g_return_if_fail (GTK_IS_HEADER_BAR (bar));
-
- priv = gtk_header_bar_get_instance_private (bar);
-
- setting = setting != FALSE;
-
- if (priv->has_subtitle == setting)
- return;
-
- priv->has_subtitle = setting;
- gtk_widget_set_visible (priv->subtitle_sizing_label, setting || (priv->subtitle && priv->subtitle[0]));
-
- gtk_widget_queue_resize (GTK_WIDGET (bar));
-
- g_object_notify_by_pspec (G_OBJECT (bar), header_bar_props[PROP_HAS_SUBTITLE]);
-}
-
-/**
- * gtk_header_bar_get_has_subtitle:
- * @bar: a #GtkHeaderBar
- *
- * Retrieves whether the header bar reserves space for
- * a subtitle, regardless if one is currently set or not.
- *
- * Returns: %TRUE if the header bar reserves space
- * for a subtitle
- */
-gboolean
-gtk_header_bar_get_has_subtitle (GtkHeaderBar *bar)
-{
- GtkHeaderBarPrivate *priv;
-
- g_return_val_if_fail (GTK_IS_HEADER_BAR (bar), FALSE);
-
- priv = gtk_header_bar_get_instance_private (bar);
-
- return priv->has_subtitle;
-}
-
/**
* gtk_header_bar_set_decoration_layout:
* @bar: a #GtkHeaderBar
diff --git a/gtk/gtkheaderbar.h b/gtk/gtkheaderbar.h
index a34c47e3e1..2b12a01cff 100644
--- a/gtk/gtkheaderbar.h
+++ b/gtk/gtkheaderbar.h
@@ -69,12 +69,6 @@ GDK_AVAILABLE_IN_ALL
void gtk_header_bar_set_show_title_buttons (GtkHeaderBar *bar,
gboolean setting);
-GDK_AVAILABLE_IN_ALL
-void gtk_header_bar_set_has_subtitle (GtkHeaderBar *bar,
- gboolean setting);
-GDK_AVAILABLE_IN_ALL
-gboolean gtk_header_bar_get_has_subtitle (GtkHeaderBar *bar);
-
GDK_AVAILABLE_IN_ALL
void gtk_header_bar_set_decoration_layout (GtkHeaderBar *bar,
const gchar *layout);
diff --git a/gtk/gtkwindow.c b/gtk/gtkwindow.c
index 9319cce2ea..91ca4fe393 100644
--- a/gtk/gtkwindow.c
+++ b/gtk/gtkwindow.c
@@ -4157,7 +4157,6 @@ create_titlebar (GtkWindow *window)
titlebar = gtk_header_bar_new ();
g_object_set (titlebar,
"title", priv->title ? priv->title : get_default_title (),
- "has-subtitle", FALSE,
"show-title-buttons", TRUE,
NULL);
gtk_widget_add_css_class (titlebar, GTK_STYLE_CLASS_TITLEBAR);
diff --git a/gtk/ui/gtkdialog.ui b/gtk/ui/gtkdialog.ui
index ff53e3bb8c..9bb4d880ca 100644
--- a/gtk/ui/gtkdialog.ui
+++ b/gtk/ui/gtkdialog.ui
@@ -4,7 +4,6 @@
<child type="titlebar">
<object class="GtkHeaderBar" id="headerbar">
<property name="show-title-buttons">1</property>
- <property name="has-subtitle">0</property>
</object>
</child>
<child>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]