Commit 8bf3ff8698d72468750ad9903c2fde6a7b0da7e0
1 parent
f851f6c3
Exists in
master
and in
4 other branches
Changing action notifications to use pspec.
Showing
2 changed files
with
27 additions
and
16 deletions
Show diff stats
src/actions/abstract.c
@@ -111,14 +111,6 @@ | @@ -111,14 +111,6 @@ | ||
111 | G_PARAM_CONSTRUCT_ONLY | | 111 | G_PARAM_CONSTRUCT_ONLY | |
112 | G_PARAM_STATIC_STRINGS)); | 112 | G_PARAM_STATIC_STRINGS)); |
113 | 113 | ||
114 | - g_object_class_install_property (object_class, PROP_ENABLED, | ||
115 | - g_param_spec_boolean ("enabled", | ||
116 | - N_("Enabled"), | ||
117 | - N_("If the action can be activated"), | ||
118 | - TRUE, | ||
119 | - G_PARAM_READWRITE | | ||
120 | - G_PARAM_STATIC_STRINGS)); | ||
121 | - | ||
122 | g_object_class_install_property (object_class, PROP_STATE_TYPE, | 114 | g_object_class_install_property (object_class, PROP_STATE_TYPE, |
123 | g_param_spec_boxed ("state-type", | 115 | g_param_spec_boxed ("state-type", |
124 | N_("State Type"), | 116 | N_("State Type"), |
@@ -127,14 +119,31 @@ | @@ -127,14 +119,31 @@ | ||
127 | G_PARAM_READABLE | | 119 | G_PARAM_READABLE | |
128 | G_PARAM_STATIC_STRINGS)); | 120 | G_PARAM_STATIC_STRINGS)); |
129 | 121 | ||
130 | - g_object_class_install_property (object_class, PROP_STATE, | ||
131 | - g_param_spec_variant ("state", | 122 | + // Enabled property |
123 | + klass->properties.enabled = | ||
124 | + g_param_spec_boolean( | ||
125 | + "enabled", | ||
126 | + N_("Enabled"), | ||
127 | + N_("If the action can be activated"), | ||
128 | + TRUE, | ||
129 | + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS | ||
130 | + ); | ||
131 | + | ||
132 | + g_object_class_install_property(object_class, PROP_ENABLED, klass->properties.enabled); | ||
133 | + | ||
134 | + // State property | ||
135 | + klass->properties.state = | ||
136 | + g_param_spec_variant( | ||
137 | + "state", | ||
132 | N_("State"), | 138 | N_("State"), |
133 | N_("The state the action is in"), | 139 | N_("The state the action is in"), |
134 | G_VARIANT_TYPE_ANY, | 140 | G_VARIANT_TYPE_ANY, |
135 | NULL, | 141 | NULL, |
136 | G_PARAM_READWRITE | G_PARAM_CONSTRUCT | | 142 | G_PARAM_READWRITE | G_PARAM_CONSTRUCT | |
137 | - G_PARAM_STATIC_STRINGS)); | 143 | + G_PARAM_STATIC_STRINGS |
144 | + ); | ||
145 | + | ||
146 | + g_object_class_install_property (object_class, PROP_STATE, klass->properties.state); | ||
138 | 147 | ||
139 | // Install signals | 148 | // Install signals |
140 | action_signals[SIGNAL_CHANGE_STATE] = | 149 | action_signals[SIGNAL_CHANGE_STATE] = |
@@ -327,7 +336,7 @@ | @@ -327,7 +336,7 @@ | ||
327 | g_signal_emit(object, action_signals[SIGNAL_CHANGE_STATE], 0, value); | 336 | g_signal_emit(object, action_signals[SIGNAL_CHANGE_STATE], 0, value); |
328 | } | 337 | } |
329 | 338 | ||
330 | - g_object_notify(G_OBJECT(object), "state"); | 339 | + g_object_notify_by_pspec(G_OBJECT(object), PW3270_ACTION_GET_CLASS(object)->properties.state); |
331 | 340 | ||
332 | } | 341 | } |
333 | 342 | ||
@@ -338,10 +347,7 @@ | @@ -338,10 +347,7 @@ | ||
338 | } | 347 | } |
339 | 348 | ||
340 | void pw3270_action_set_enabled(GAction *object, gboolean state) { | 349 | void pw3270_action_set_enabled(GAction *object, gboolean state) { |
341 | - | ||
342 | -// pw3270Action * action = PW3270_ACTION(object); | ||
343 | - | ||
344 | - g_object_notify(G_OBJECT(object), "enabled"); | 350 | + g_object_notify_by_pspec(G_OBJECT(object), PW3270_ACTION_GET_CLASS(object)->properties.enabled); |
345 | } | 351 | } |
346 | 352 | ||
347 | 353 |
src/actions/private.h
@@ -64,6 +64,11 @@ | @@ -64,6 +64,11 @@ | ||
64 | struct _pw3270ActionClass { | 64 | struct _pw3270ActionClass { |
65 | GObjectClass parent_class; | 65 | GObjectClass parent_class; |
66 | 66 | ||
67 | + struct { | ||
68 | + GParamSpec * state; | ||
69 | + GParamSpec * enabled; | ||
70 | + } properties; | ||
71 | + | ||
67 | void (*change_widget)(GAction *action, GtkWidget *from, GtkWidget *to); | 72 | void (*change_widget)(GAction *action, GtkWidget *from, GtkWidget *to); |
68 | gboolean (*get_enabled)(GAction *action, GtkWidget *terminal); | 73 | gboolean (*get_enabled)(GAction *action, GtkWidget *terminal); |
69 | void (*activate)(GAction *action, GVariant *parameter, GtkWidget *terminal); | 74 | void (*activate)(GAction *action, GVariant *parameter, GtkWidget *terminal); |