Commit 8bf3ff8698d72468750ad9903c2fde6a7b0da7e0

Authored by Perry Werneck
1 parent f851f6c3

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);