[glade] GladeEditorProperty: Added an option to disable the optional check button
- From: Tristan Van Berkom <tvb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glade] GladeEditorProperty: Added an option to disable the optional check button
- Date: Sat, 13 Apr 2013 17:49:51 +0000 (UTC)
commit ae77aaf5c27af5c0215fa51aad61fe713932a909
Author: Tristan Van Berkom <tristan van berkom gmail com>
Date: Sat Apr 13 15:46:55 2013 +0900
GladeEditorProperty: Added an option to disable the optional check button
Also now use ->constructed(), and derive from GtkBox.
gladeui/glade-editor-property.c | 53 ++++++++++++++++++++++++++++-------------
gladeui/glade-editor-property.h | 4 ++--
2 files changed, 39 insertions(+), 18 deletions(-)
---
diff --git a/gladeui/glade-editor-property.c b/gladeui/glade-editor-property.c
index 448c2d0..ada43bd 100644
--- a/gladeui/glade-editor-property.c
+++ b/gladeui/glade-editor-property.c
@@ -55,7 +55,8 @@ enum
{
PROP_0,
PROP_PROPERTY_CLASS,
- PROP_USE_COMMAND
+ PROP_USE_COMMAND,
+ PROP_DISABLE_CHECK
};
enum
@@ -100,9 +101,11 @@ struct _GladeEditorPropertyPrivate
* (used for query dialogs).
*/
guint changed_blocked : 1; /* Whether the GladeProperty changed signal is currently blocked
*/
+
+ guint disable_check : 1; /* Whether to explicitly disable the optional check button */
};
-G_DEFINE_TYPE (GladeEditorProperty, glade_editor_property, GTK_TYPE_HBOX);
+G_DEFINE_TYPE (GladeEditorProperty, glade_editor_property, GTK_TYPE_BOX);
/*******************************************************************************
GladeEditorPropertyClass
@@ -286,26 +289,24 @@ glade_editor_property_button_pressed (GtkWidget *widget,
}
-static GObject *
-glade_editor_property_constructor (GType type,
- guint n_construct_properties,
- GObjectConstructParam *construct_properties)
+static void
+glade_editor_property_constructed (GObject *object)
{
- GObject *obj;
GladeEditorProperty *eprop;
- /* Invoke parent constructor (eprop->priv->klass should be resolved by this point) . */
- obj = G_OBJECT_CLASS (table_class)->constructor
- (type, n_construct_properties, construct_properties);
+ eprop = GLADE_EDITOR_PROPERTY (object);
- eprop = GLADE_EDITOR_PROPERTY (obj);
+ G_OBJECT_CLASS (glade_editor_property_parent_class)->constructed (object);
/* Create hbox and possibly check button
*/
if (glade_property_class_optional (eprop->priv->klass))
{
eprop->priv->check = gtk_check_button_new ();
- gtk_widget_show (eprop->priv->check);
+
+ if (!eprop->priv->disable_check)
+ gtk_widget_show (eprop->priv->check);
+
gtk_box_pack_start (GTK_BOX (eprop), eprop->priv->check, FALSE, FALSE, 0);
g_signal_connect (G_OBJECT (eprop->priv->check), "toggled",
G_CALLBACK (glade_editor_property_enabled_toggled_cb),
@@ -323,9 +324,6 @@ glade_editor_property_constructor (GType type,
gtk_box_pack_start (GTK_BOX (eprop), eprop->priv->input, FALSE, TRUE, 0);
else
gtk_box_pack_start (GTK_BOX (eprop), eprop->priv->input, TRUE, TRUE, 0);
-
-
- return obj;
}
static void
@@ -369,6 +367,17 @@ glade_editor_property_set_property (GObject *object,
case PROP_USE_COMMAND:
eprop->priv->use_command = g_value_get_boolean (value);
break;
+ case PROP_DISABLE_CHECK:
+ eprop->priv->disable_check = g_value_get_boolean (value);
+
+ if (eprop->priv->check)
+ {
+ if (eprop->priv->disable_check)
+ gtk_widget_hide (eprop->priv->check);
+ else
+ gtk_widget_show (eprop->priv->check);
+ }
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -391,6 +400,9 @@ glade_editor_property_real_get_property (GObject *object,
case PROP_USE_COMMAND:
g_value_set_boolean (value, eprop->priv->use_command);
break;
+ case PROP_DISABLE_CHECK:
+ g_value_set_boolean (value, eprop->priv->disable_check);
+ break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
@@ -509,6 +521,8 @@ glade_editor_property_init (GladeEditorProperty *eprop)
GLADE_TYPE_EDITOR_PROPERTY,
GladeEditorPropertyPrivate);
+ gtk_orientable_set_orientation (GTK_ORIENTABLE (eprop),
+ GTK_ORIENTATION_HORIZONTAL);
}
static void
@@ -524,7 +538,7 @@ glade_editor_property_class_init (GladeEditorPropertyClass *eprop_class)
object_class = G_OBJECT_CLASS (eprop_class);
/* GObjectClass */
- object_class->constructor = glade_editor_property_constructor;
+ object_class->constructed = glade_editor_property_constructed;
object_class->finalize = glade_editor_property_finalize;
object_class->dispose = glade_editor_property_dispose;
object_class->get_property = glade_editor_property_real_get_property;
@@ -584,6 +598,13 @@ glade_editor_property_class_init (GladeEditorPropertyClass *eprop_class)
_("Whether we should use the command API for the undo/redo stack"),
FALSE, G_PARAM_READWRITE));
+ g_object_class_install_property
+ (object_class, PROP_DISABLE_CHECK,
+ g_param_spec_boolean
+ ("disable-check", _("Disable Check"),
+ _("Whether to explicitly disable the check button"),
+ FALSE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+
g_type_class_add_private (eprop_class, sizeof (GladeEditorPropertyPrivate));
}
diff --git a/gladeui/glade-editor-property.h b/gladeui/glade-editor-property.h
index d1678ae..566a71b 100644
--- a/gladeui/glade-editor-property.h
+++ b/gladeui/glade-editor-property.h
@@ -76,13 +76,13 @@ typedef struct _GladeEditorPropertyPrivate GladeEditorPropertyPrivate;
struct _GladeEditorProperty
{
- GtkHBox parent_instance;
+ GtkBox parent_instance;
GladeEditorPropertyPrivate *priv;
};
struct _GladeEditorPropertyClass {
- GtkHBoxClass parent_class;
+ GtkBoxClass parent_class;
void (* load) (GladeEditorProperty *, GladeProperty *);
GtkWidget *(* create_input) (GladeEditorProperty *);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]