Commit 397032053791e9742fad4e105121099e681237d5
1 parent
126d58cf
Exists in
master
and in
1 other branch
Adjustments in the action object.
Showing
5 changed files
with
44 additions
and
24 deletions
Show diff stats
src/include/v3270/actions.h
@@ -138,16 +138,16 @@ | @@ -138,16 +138,16 @@ | ||
138 | GParamSpec * enabled; | 138 | GParamSpec * enabled; |
139 | } properties; | 139 | } properties; |
140 | 140 | ||
141 | - struct { | ||
142 | - const GVariantType * state; ///> @brief State type. | ||
143 | - const GVariantType * parameter; ///> @brief State type. | ||
144 | - } type; | 141 | + void (*change_widget)(GAction *action, GtkWidget *from, GtkWidget *to); |
145 | 142 | ||
146 | - void (*change_widget)(GAction *action, GtkWidget *from, GtkWidget *to); | 143 | + const gchar * (*translate)(GAction *action, const gchar *text); |
147 | 144 | ||
148 | - gboolean (*get_enabled)(GAction *action, GtkWidget *terminal); | 145 | + const GVariantType * (*get_state_type)(GAction *object); |
149 | GVariant * (*get_state)(GAction *action, GtkWidget *terminal); | 146 | GVariant * (*get_state)(GAction *action, GtkWidget *terminal); |
150 | - const gchar * (*translate)(GAction *action, const gchar *text); | 147 | + |
148 | + const GVariantType * (*get_parameter_type)(GAction *object); | ||
149 | + | ||
150 | + gboolean (*get_enabled)(GAction *action, GtkWidget *terminal); | ||
151 | 151 | ||
152 | const gchar * (*get_name)(GAction *action); | 152 | const gchar * (*get_name)(GAction *action); |
153 | const gchar * (*get_icon_name)(GAction *action); | 153 | const gchar * (*get_icon_name)(GAction *action); |
src/terminal/actions/action.c
@@ -43,10 +43,12 @@ | @@ -43,10 +43,12 @@ | ||
43 | static void get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec); | 43 | static void get_property(GObject *object, guint prop_id, GValue *value, GParamSpec *pspec); |
44 | static void set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec); | 44 | static void set_property(GObject *object, guint prop_id, const GValue *value, GParamSpec *pspec); |
45 | 45 | ||
46 | - static const gchar * get_icon_name(GAction *action); | ||
47 | - static const gchar * get_label(GAction *action); | ||
48 | - static const gchar * get_tooltip(GAction *action); | ||
49 | - static const gchar * get_name(GAction *action); | 46 | + static const gchar * get_icon_name(GAction *action); |
47 | + static const gchar * get_label(GAction *action); | ||
48 | + static const gchar * get_tooltip(GAction *action); | ||
49 | + static const gchar * get_name(GAction *action); | ||
50 | + static const GVariantType * get_state_type(GAction *action); | ||
51 | + static const GVariantType * get_parameter_type(GAction *object); | ||
50 | 52 | ||
51 | static void change_widget(GAction *action, GtkWidget *from, GtkWidget *to); | 53 | static void change_widget(GAction *action, GtkWidget *from, GtkWidget *to); |
52 | static void finalize(GObject *object); | 54 | static void finalize(GObject *object); |
@@ -95,9 +97,8 @@ | @@ -95,9 +97,8 @@ | ||
95 | klass->get_icon_name = get_icon_name; | 97 | klass->get_icon_name = get_icon_name; |
96 | klass->get_label = get_label; | 98 | klass->get_label = get_label; |
97 | klass->get_tooltip = get_tooltip; | 99 | klass->get_tooltip = get_tooltip; |
98 | - | ||
99 | - klass->type.state = NULL; | ||
100 | - klass->type.parameter = NULL; | 100 | + klass->get_state_type = get_state_type; |
101 | + klass->get_parameter_type = get_parameter_type; | ||
101 | 102 | ||
102 | object_class->finalize = finalize; | 103 | object_class->finalize = finalize; |
103 | object_class->get_property = get_property; | 104 | object_class->get_property = get_property; |
@@ -267,7 +268,7 @@ | @@ -267,7 +268,7 @@ | ||
267 | } | 268 | } |
268 | 269 | ||
269 | void v3270_action_notify_state(GAction *action) { | 270 | void v3270_action_notify_state(GAction *action) { |
270 | - if(V3270_ACTION_GET_CLASS(action)->type.state) | 271 | + if(g_action_get_state_type(action)) |
271 | g_idle_add((GSourceFunc) bg_notify_state, G_OBJECT(action)); | 272 | g_idle_add((GSourceFunc) bg_notify_state, G_OBJECT(action)); |
272 | } | 273 | } |
273 | 274 | ||
@@ -294,8 +295,7 @@ | @@ -294,8 +295,7 @@ | ||
294 | 295 | ||
295 | g_idle_add((GSourceFunc) bg_notify_enabled, G_OBJECT(action)); | 296 | g_idle_add((GSourceFunc) bg_notify_enabled, G_OBJECT(action)); |
296 | 297 | ||
297 | - if(V3270_ACTION_GET_CLASS(action)->type.state) | ||
298 | - g_idle_add((GSourceFunc) bg_notify_state, G_OBJECT(action)); | 298 | + v3270_action_notify_state(object); |
299 | 299 | ||
300 | } | 300 | } |
301 | 301 | ||
@@ -405,9 +405,9 @@ | @@ -405,9 +405,9 @@ | ||
405 | 405 | ||
406 | GVariant * state = NULL; | 406 | GVariant * state = NULL; |
407 | 407 | ||
408 | - if(V3270_ACTION_GET_CLASS(object)->type.state) { | 408 | + if(g_action_get_state_type(object)) { |
409 | 409 | ||
410 | - GtkWidget * terminal = V3270_ACTION(object)->terminal; | 410 | + GtkWidget * terminal = V3270_ACTION(object)->terminal; |
411 | 411 | ||
412 | if(terminal) { | 412 | if(terminal) { |
413 | state = V3270_ACTION_GET_CLASS(object)->get_state(object,terminal); | 413 | state = V3270_ACTION_GET_CLASS(object)->get_state(object,terminal); |
@@ -424,12 +424,13 @@ | @@ -424,12 +424,13 @@ | ||
424 | 424 | ||
425 | } | 425 | } |
426 | 426 | ||
427 | + | ||
427 | const GVariantType * iface_get_parameter_type(GAction *object) { | 428 | const GVariantType * iface_get_parameter_type(GAction *object) { |
428 | - return V3270_ACTION_GET_CLASS(object)->type.parameter; | 429 | + return V3270_ACTION_GET_CLASS(object)->get_parameter_type(object); |
429 | } | 430 | } |
430 | 431 | ||
431 | const GVariantType * iface_get_state_type(GAction *object) { | 432 | const GVariantType * iface_get_state_type(GAction *object) { |
432 | - return V3270_ACTION_GET_CLASS(object)->type.state; | 433 | + return V3270_ACTION_GET_CLASS(object)->get_state_type(object); |
433 | } | 434 | } |
434 | 435 | ||
435 | GVariant * iface_get_state_hint(GAction G_GNUC_UNUSED(*object)) { | 436 | GVariant * iface_get_state_hint(GAction G_GNUC_UNUSED(*object)) { |
@@ -515,3 +516,10 @@ | @@ -515,3 +516,10 @@ | ||
515 | return V3270_ACTION_GET_CLASS(action)->get_tooltip(action); | 516 | return V3270_ACTION_GET_CLASS(action)->get_tooltip(action); |
516 | } | 517 | } |
517 | 518 | ||
519 | + const GVariantType * get_state_type(GAction G_GNUC_UNUSED(*object)) { | ||
520 | + return NULL; | ||
521 | + } | ||
522 | + | ||
523 | + const GVariantType * get_parameter_type(GAction G_GNUC_UNUSED(*object)) { | ||
524 | + return NULL; | ||
525 | + } |
src/terminal/actions/pakey.c
@@ -82,8 +82,12 @@ | @@ -82,8 +82,12 @@ | ||
82 | 82 | ||
83 | } | 83 | } |
84 | 84 | ||
85 | + static const GVariantType * get_parameter_type(GAction G_GNUC_UNUSED(*object)) { | ||
86 | + return G_VARIANT_TYPE_UINT32; | ||
87 | + } | ||
88 | + | ||
85 | void Lib3270PaAction_class_init(Lib3270PaActionClass *klass) { | 89 | void Lib3270PaAction_class_init(Lib3270PaActionClass *klass) { |
86 | - klass->parent_class.type.parameter = G_VARIANT_TYPE_UINT32; | 90 | + klass->parent_class.get_parameter_type = get_parameter_type; |
87 | } | 91 | } |
88 | 92 | ||
89 | void Lib3270PaAction_init(Lib3270PaAction *action) { | 93 | void Lib3270PaAction_init(Lib3270PaAction *action) { |
src/terminal/actions/pfkey.c
@@ -82,8 +82,12 @@ | @@ -82,8 +82,12 @@ | ||
82 | 82 | ||
83 | } | 83 | } |
84 | 84 | ||
85 | + static const GVariantType * get_parameter_type(GAction G_GNUC_UNUSED(*object)) { | ||
86 | + return G_VARIANT_TYPE_UINT32; | ||
87 | + } | ||
88 | + | ||
85 | void Lib3270PfAction_class_init(Lib3270PfActionClass *klass) { | 89 | void Lib3270PfAction_class_init(Lib3270PfActionClass *klass) { |
86 | - klass->parent_class.type.parameter = G_VARIANT_TYPE_UINT32; | 90 | + klass->parent_class.get_parameter_type = get_parameter_type; |
87 | } | 91 | } |
88 | 92 | ||
89 | void Lib3270PfAction_init(Lib3270PfAction *action) { | 93 | void Lib3270PfAction_init(Lib3270PfAction *action) { |
src/terminal/actions/toggle.c
@@ -107,11 +107,15 @@ | @@ -107,11 +107,15 @@ | ||
107 | 107 | ||
108 | } | 108 | } |
109 | 109 | ||
110 | + static const GVariantType * get_state_type(GAction G_GNUC_UNUSED(*object)) { | ||
111 | + return G_VARIANT_TYPE_BOOLEAN; | ||
112 | + } | ||
113 | + | ||
110 | void Lib3270ToggleAction_class_init(Lib3270ToggleActionClass *klass) { | 114 | void Lib3270ToggleAction_class_init(Lib3270ToggleActionClass *klass) { |
111 | 115 | ||
112 | klass->parent_class.change_widget = change_widget; | 116 | klass->parent_class.change_widget = change_widget; |
113 | - klass->parent_class.type.state = G_VARIANT_TYPE_BOOLEAN; | ||
114 | klass->parent_class.get_state = get_state; | 117 | klass->parent_class.get_state = get_state; |
118 | + klass->parent_class.get_state_type = get_state_type; | ||
115 | 119 | ||
116 | } | 120 | } |
117 | 121 |