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 | 111 | G_PARAM_CONSTRUCT_ONLY | |
112 | 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 | 114 | g_object_class_install_property (object_class, PROP_STATE_TYPE, |
123 | 115 | g_param_spec_boxed ("state-type", |
124 | 116 | N_("State Type"), |
... | ... | @@ -127,14 +119,31 @@ |
127 | 119 | G_PARAM_READABLE | |
128 | 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 | 138 | N_("State"), |
133 | 139 | N_("The state the action is in"), |
134 | 140 | G_VARIANT_TYPE_ANY, |
135 | 141 | NULL, |
136 | 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 | 148 | // Install signals |
140 | 149 | action_signals[SIGNAL_CHANGE_STATE] = |
... | ... | @@ -327,7 +336,7 @@ |
327 | 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 | 347 | } |
339 | 348 | |
340 | 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 | 64 | struct _pw3270ActionClass { |
65 | 65 | GObjectClass parent_class; |
66 | 66 | |
67 | + struct { | |
68 | + GParamSpec * state; | |
69 | + GParamSpec * enabled; | |
70 | + } properties; | |
71 | + | |
67 | 72 | void (*change_widget)(GAction *action, GtkWidget *from, GtkWidget *to); |
68 | 73 | gboolean (*get_enabled)(GAction *action, GtkWidget *terminal); |
69 | 74 | void (*activate)(GAction *action, GVariant *parameter, GtkWidget *terminal); | ... | ... |