Commit 8263506c27ffaae15fbfc62abf76a9cd0847673e

Authored by Perry Werneck
1 parent a501773a

Working on actions.

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  
... ...