Commit 8263506c27ffaae15fbfc62abf76a9cd0847673e
1 parent
a501773a
Exists in
master
and in
4 other branches
Working on actions.
Showing
8 changed files
with
29 additions
and
75 deletions
Show diff stats
src/objects/actions/abstract.c
... | ... | @@ -251,7 +251,7 @@ |
251 | 251 | switch (prop_id) |
252 | 252 | { |
253 | 253 | case PROP_NAME: |
254 | -// pw3270_action_set_name(action, g_value_get_string(value)); | |
254 | + pw3270_action_set_name(action, g_value_get_string(value)); | |
255 | 255 | break; |
256 | 256 | |
257 | 257 | case PROP_PARAMETER_TYPE: |
... | ... | @@ -273,24 +273,13 @@ |
273 | 273 | } |
274 | 274 | |
275 | 275 | const gchar * pw3270_action_get_name(GAction *action) { |
276 | - return PW3270_ACTION(action)->get_name(action); | |
276 | + return PW3270_ACTION(action)->name; | |
277 | 277 | } |
278 | 278 | |
279 | 279 | void pw3270_action_set_name(GAction *object, const gchar *name) { |
280 | 280 | |
281 | -/* | |
282 | - pw3270Action * action = PW3270_ACTION(object); | |
283 | - | |
284 | -// debug("%s %s -> %s", __FUNCTION__, action->name, name); | |
285 | - | |
286 | - if(action->name) | |
287 | - g_free(action->name); | |
288 | - | |
289 | - if(name) | |
290 | - action->name = g_strdup(name); | |
291 | - else | |
292 | - action->name = NULL; | |
293 | -*/ | |
281 | + if(name) | |
282 | + g_warning("Invalid call to %s on action %s with value \"%s\"",__FUNCTION__,g_action_get_name(object),name); | |
294 | 283 | |
295 | 284 | } |
296 | 285 | ... | ... |
src/objects/actions/connect.c
... | ... | @@ -41,18 +41,13 @@ |
41 | 41 | |
42 | 42 | } |
43 | 43 | |
44 | - static const gchar * get_name(GAction G_GNUC_UNUSED(*action)) { | |
45 | - return "connect"; | |
46 | - } | |
47 | - | |
48 | 44 | GAction * pw3270_connect_action_new(void) { |
49 | 45 | |
50 | - GAction * object = pw3270_action_new_from_lib3270(lib3270_action_get_by_name("reconnect")); | |
46 | + pw3270Action * action = PW3270_ACTION(pw3270_action_new_from_lib3270(lib3270_action_get_by_name("reconnect"))); | |
51 | 47 | |
52 | - pw3270Action * action = PW3270_ACTION(object); | |
53 | 48 | action->activate = activate; |
54 | - action->get_name = get_name; | |
49 | + action->name = "connect"; | |
55 | 50 | |
56 | - return object; | |
51 | + return G_ACTION(action); | |
57 | 52 | |
58 | 53 | } | ... | ... |
src/objects/actions/lib3270/action.c
... | ... | @@ -114,15 +114,10 @@ |
114 | 114 | |
115 | 115 | } |
116 | 116 | |
117 | - static const gchar * get_name(GAction *action) { | |
118 | - return PW3270_LIB3270_ACTION(action)->definition->name; | |
119 | - } | |
120 | - | |
121 | - void Lib3270Action_init(Lib3270Action *object) { | |
122 | - pw3270Action * action = PW3270_ACTION(object); | |
117 | + void Lib3270Action_init(Lib3270Action *action) { | |
123 | 118 | |
124 | - action->activate = activate; | |
125 | - action->get_name = get_name; | |
119 | + action->parent.activate = activate; | |
120 | + action->parent.name = "tn3270"; | |
126 | 121 | |
127 | 122 | } |
128 | 123 | |
... | ... | @@ -133,6 +128,7 @@ |
133 | 128 | // Setup hooks. |
134 | 129 | action->definition = definition; |
135 | 130 | action->listener = NULL; |
131 | + action->parent.name = definition->name; | |
136 | 132 | |
137 | 133 | return G_ACTION(action); |
138 | 134 | } | ... | ... |
src/objects/actions/lib3270/pakey.c
... | ... | @@ -109,15 +109,11 @@ |
109 | 109 | |
110 | 110 | } |
111 | 111 | |
112 | - static const gchar * get_name(GAction G_GNUC_UNUSED(*action)) { | |
113 | - return "pakey"; | |
114 | - } | |
115 | - | |
116 | 112 | void Lib3270PaAction_init(Lib3270PaAction *object) { |
117 | 113 | pw3270Action * action = PW3270_ACTION(object); |
118 | 114 | |
119 | 115 | action->activate = activate; |
120 | - action->get_name = get_name; | |
116 | + action->name = "pakey"; | |
121 | 117 | } |
122 | 118 | |
123 | 119 | ... | ... |
src/objects/actions/lib3270/pfkey.c
... | ... | @@ -108,15 +108,11 @@ |
108 | 108 | |
109 | 109 | } |
110 | 110 | |
111 | - static const gchar * get_name(GAction *action) { | |
112 | - return "pakey"; | |
113 | - } | |
111 | + void Lib3270PfAction_init(Lib3270PfAction *action) { | |
114 | 112 | |
115 | - void Lib3270PfAction_init(Lib3270PfAction *object) { | |
116 | - pw3270Action * action = PW3270_ACTION(object); | |
113 | + action->parent.activate = activate; | |
114 | + action->parent.name = "pfkey"; | |
117 | 115 | |
118 | - action->activate = activate; | |
119 | - action->get_name = get_name; | |
120 | 116 | } |
121 | 117 | |
122 | 118 | GAction * pw3270_action_new_pfkey(void) { | ... | ... |
src/objects/actions/lib3270/toggle.c
... | ... | @@ -58,8 +58,12 @@ |
58 | 58 | |
59 | 59 | G_DEFINE_TYPE(Lib3270ToggleAction, Lib3270ToggleAction, PW3270_TYPE_ACTION); |
60 | 60 | |
61 | - static void change_state(H3270 G_GNUC_UNUSED(*hSession), LIB3270_TOGGLE_ID id, char state, void * action) { | |
62 | - debug("%s: %s",__FUNCTION__,state ? "ON" : "OFF"); | |
61 | + static void change_state(H3270 G_GNUC_UNUSED(*hSession), LIB3270_TOGGLE_ID G_GNUC_UNUSED(id), char state, void * action) { | |
62 | + debug("%s: State on action %s is %s", | |
63 | + __FUNCTION__, | |
64 | + g_action_get_name(G_ACTION(action)), | |
65 | + state ? "ON" : "OFF" | |
66 | + ); | |
63 | 67 | pw3270_action_change_state_boolean((GAction *) action, state == 0 ? FALSE : TRUE); |
64 | 68 | } |
65 | 69 | |
... | ... | @@ -105,35 +109,22 @@ |
105 | 109 | |
106 | 110 | } |
107 | 111 | |
108 | - static const gchar * get_name(GAction *action) { | |
109 | - return PW3270_LIB3270_TOGGLE_ACTION(action)->definition->name; | |
110 | - } | |
111 | - | |
112 | - void Lib3270ToggleAction_init(Lib3270ToggleAction *toggle) { | |
112 | + void Lib3270ToggleAction_init(Lib3270ToggleAction *action) { | |
113 | 113 | |
114 | - toggle->definition = NULL; | |
115 | - toggle->listener = NULL; | |
114 | + action->definition = NULL; | |
115 | + action->listener = NULL; | |
116 | 116 | |
117 | - pw3270Action * action = PW3270_ACTION(toggle); | |
118 | - action->activate = activate; | |
119 | - action->get_name = get_name; | |
117 | + action->parent.activate = activate; | |
118 | + action->parent.name = "toggle"; | |
120 | 119 | |
121 | 120 | } |
122 | 121 | |
123 | 122 | GAction * pw3270_toggle_action_new_from_lib3270(const LIB3270_TOGGLE * definition) { |
124 | 123 | |
125 | 124 | Lib3270ToggleAction * action = (Lib3270ToggleAction *) g_object_new(PW3270_TYPE_LIB3270_TOGGLE_ACTION, NULL); |
126 | - action->definition = definition; | |
127 | 125 | |
128 | - // Setup the default name. | |
129 | - pw3270Action * abstract = PW3270_ACTION(action); | |
130 | - | |
131 | - /* | |
132 | - if(abstract->name) | |
133 | - g_free(abstract->name); | |
134 | - | |
135 | - abstract->name = g_strconcat("win.",definition->name,NULL); | |
136 | - */ | |
126 | + action->definition = definition; | |
127 | + action->parent.name = definition->name; | |
137 | 128 | |
138 | 129 | return G_ACTION(action); |
139 | 130 | ... | ... |
src/objects/actions/private.h
... | ... | @@ -54,12 +54,12 @@ |
54 | 54 | struct _pw3270Action { |
55 | 55 | GObject parent; |
56 | 56 | |
57 | + const gchar * name; | |
57 | 58 | GVariantType * parameter_type; |
58 | 59 | GVariant * state; |
59 | 60 | GtkWidget * terminal; |
60 | 61 | |
61 | 62 | void (*activate)(GAction *action, GVariant *parameter, GtkWidget *terminal); |
62 | - const gchar * (*get_name)(GAction *action); | |
63 | 63 | |
64 | 64 | }; |
65 | 65 | ... | ... |
src/objects/actions/window.c
... | ... | @@ -43,15 +43,6 @@ |
43 | 43 | |
44 | 44 | // Map lib3270 actions |
45 | 45 | { |
46 | - GAction * action = pw3270_action_new_from_lib3270(lib3270_action_get_by_name("disconnect")); | |
47 | - | |
48 | - pw3270_action_set_name(G_ACTION(action),"disconnect"); | |
49 | - | |
50 | - g_action_map_add_action(map,action); | |
51 | - | |
52 | - } | |
53 | - | |
54 | - { | |
55 | 46 | const LIB3270_ACTION * actions = lib3270_get_actions(); |
56 | 47 | for(ix = 0; actions[ix].name; ix++) { |
57 | 48 | ... | ... |