[gtk+] infobar: Keep GParamSpecs around
- From: Timm Bäder <baedert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] infobar: Keep GParamSpecs around
- Date: Thu, 12 Jan 2017 17:40:57 +0000 (UTC)
commit e3871c4424081cc521e7ec6502ef5cfb6a535b2a
Author: Timm Bäder <mail baedert org>
Date: Thu Jan 12 08:42:09 2017 +0100
infobar: Keep GParamSpecs around
So we can use them in notify_by_pspec
gtk/gtkinfobar.c | 39 +++++++++++++++++++++------------------
1 files changed, 21 insertions(+), 18 deletions(-)
---
diff --git a/gtk/gtkinfobar.c b/gtk/gtkinfobar.c
index 54abb2e..91e2515 100644
--- a/gtk/gtkinfobar.c
+++ b/gtk/gtkinfobar.c
@@ -131,7 +131,8 @@ enum
{
PROP_0,
PROP_MESSAGE_TYPE,
- PROP_SHOW_CLOSE_BUTTON
+ PROP_SHOW_CLOSE_BUTTON,
+ LAST_PROP
};
struct _GtkInfoBarPrivate
@@ -159,6 +160,7 @@ enum
LAST_SIGNAL
};
+static GParamSpec *props[LAST_PROP] = { NULL, };
static guint signals[LAST_SIGNAL];
#define ACTION_AREA_DEFAULT_BORDER 5
@@ -356,14 +358,13 @@ gtk_info_bar_class_init (GtkInfoBarClass *klass)
*
* Since: 2.18
*/
- g_object_class_install_property (object_class,
- PROP_MESSAGE_TYPE,
- g_param_spec_enum ("message-type",
- P_("Message Type"),
- P_("The type of message"),
- GTK_TYPE_MESSAGE_TYPE,
- GTK_MESSAGE_INFO,
-
GTK_PARAM_READWRITE|G_PARAM_CONSTRUCT|G_PARAM_EXPLICIT_NOTIFY));
+ props[PROP_MESSAGE_TYPE] =
+ g_param_spec_enum ("message-type",
+ P_("Message Type"),
+ P_("The type of message"),
+ GTK_TYPE_MESSAGE_TYPE,
+ GTK_MESSAGE_INFO,
+ GTK_PARAM_READWRITE|G_PARAM_CONSTRUCT|G_PARAM_EXPLICIT_NOTIFY);
/**
* GtkInfoBar:show-close-button:
@@ -372,13 +373,15 @@ gtk_info_bar_class_init (GtkInfoBarClass *klass)
*
* Since: 3.10
*/
- g_object_class_install_property (object_class,
- PROP_SHOW_CLOSE_BUTTON,
- g_param_spec_boolean ("show-close-button",
- P_("Show Close Button"),
- P_("Whether to include a standard close button"),
- FALSE,
-
GTK_PARAM_READWRITE|G_PARAM_CONSTRUCT|G_PARAM_EXPLICIT_NOTIFY));
+ props[PROP_SHOW_CLOSE_BUTTON] =
+ g_param_spec_boolean ("show-close-button",
+ P_("Show Close Button"),
+ P_("Whether to include a standard close button"),
+ FALSE,
+ GTK_PARAM_READWRITE|G_PARAM_CONSTRUCT|G_PARAM_EXPLICIT_NOTIFY);
+
+ g_object_class_install_properties (object_class, LAST_PROP, props);
+
/**
* GtkInfoBar::response:
* @info_bar: the object on which the signal is emitted
@@ -1111,7 +1114,7 @@ gtk_info_bar_set_message_type (GtkInfoBar *info_bar,
if (type_class[priv->message_type])
gtk_style_context_add_class (context, type_class[priv->message_type]);
- g_object_notify (G_OBJECT (info_bar), "message-type");
+ g_object_notify_by_pspec (G_OBJECT (info_bar), props[PROP_MESSAGE_TYPE]);
}
}
@@ -1154,7 +1157,7 @@ gtk_info_bar_set_show_close_button (GtkInfoBar *info_bar,
{
info_bar->priv->show_close_button = setting;
gtk_widget_set_visible (info_bar->priv->close_button, setting);
- g_object_notify (G_OBJECT (info_bar), "show-close-button");
+ g_object_notify_by_pspec (G_OBJECT (info_bar), props[PROP_SHOW_CLOSE_BUTTON]);
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]