Commit 543b7e796f481d717a59ed245f153aa8b1e53b79
1 parent
2a2345a6
Exists in
master
and in
4 other branches
Fixing toggle action.
Showing
2 changed files
with
19 additions
and
32 deletions
Show diff stats
src/objects/actions/lib3270/toggle.c
| ... | ... | @@ -41,17 +41,15 @@ |
| 41 | 41 | #define LIB3270_TOGGLE_ACTION(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), LIB3270_TYPE_TOGGLE_ACTION, Lib3270ToggleAction)) |
| 42 | 42 | #define LIB3270_IS_TOGGLE_ACTION(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), LIB3270_TYPE_TOGGLE_ACTION)) |
| 43 | 43 | |
| 44 | + #define GET_DESCRIPTOR(obj) ((const LIB3270_TOGGLE *) ((V3270Action *) obj)->info) | |
| 45 | + | |
| 44 | 46 | typedef struct _Lib3270ToggleActionClass { |
| 45 | 47 | V3270ActionClass parent_class; |
| 46 | - | |
| 47 | 48 | } Lib3270ToggleActionClass; |
| 48 | 49 | |
| 49 | 50 | typedef struct _Lib3270ToggleAction { |
| 50 | 51 | V3270Action parent; |
| 51 | - | |
| 52 | - const LIB3270_TOGGLE * definition; | |
| 53 | 52 | const void * listener; |
| 54 | - | |
| 55 | 53 | } Lib3270ToggleAction; |
| 56 | 54 | |
| 57 | 55 | static void Lib3270ToggleAction_class_init(Lib3270ToggleActionClass *klass); |
| ... | ... | @@ -68,10 +66,10 @@ |
| 68 | 66 | Lib3270ToggleAction * action = LIB3270_TOGGLE_ACTION(object); |
| 69 | 67 | |
| 70 | 68 | if(action->listener) |
| 71 | - lib3270_unregister_toggle_listener(v3270_get_session(from),action->definition->id,object); | |
| 69 | + lib3270_unregister_toggle_listener(v3270_get_session(from),GET_DESCRIPTOR(object)->id,object); | |
| 72 | 70 | |
| 73 | 71 | if(to) |
| 74 | - action->listener = lib3270_register_toggle_listener(v3270_get_session(to),action->definition->id,change_state,object); | |
| 72 | + action->listener = lib3270_register_toggle_listener(v3270_get_session(to),GET_DESCRIPTOR(object)->id,change_state,object); | |
| 75 | 73 | |
| 76 | 74 | V3270_ACTION_CLASS(Lib3270ToggleAction_parent_class)->change_widget(object,from,to); |
| 77 | 75 | |
| ... | ... | @@ -79,53 +77,45 @@ |
| 79 | 77 | |
| 80 | 78 | static void activate(GAction *action, GVariant *parameter, GtkWidget *terminal) { |
| 81 | 79 | |
| 82 | - debug("Activating \"%s\"",pw3270_action_get_name(action)); | |
| 80 | + debug("Activating \"%s\"",g_action_get_name(action)); | |
| 83 | 81 | |
| 84 | 82 | if(parameter && g_variant_is_of_type(parameter,G_VARIANT_TYPE_BOOLEAN)) { |
| 85 | 83 | |
| 86 | - lib3270_set_toggle(v3270_get_session(terminal),LIB3270_TOGGLE_ACTION(action)->definition->id,g_variant_get_boolean(parameter)); | |
| 87 | - debug("Toggle set to %s",lib3270_get_toggle(v3270_get_session(terminal),LIB3270_TOGGLE_ACTION(action)->definition->id) ? "ON" : "OFF"); | |
| 84 | + lib3270_set_toggle(v3270_get_session(terminal),GET_DESCRIPTOR(action)->id,g_variant_get_boolean(parameter)); | |
| 85 | + debug("Toggle set to %s",lib3270_get_toggle(v3270_get_session(terminal),GET_DESCRIPTOR(action)->id) ? "ON" : "OFF"); | |
| 88 | 86 | |
| 89 | 87 | } else { |
| 90 | 88 | |
| 91 | - lib3270_toggle(v3270_get_session(terminal),LIB3270_TOGGLE_ACTION(action)->definition->id); | |
| 92 | - debug("Toggle is %s",lib3270_get_toggle(v3270_get_session(terminal),LIB3270_TOGGLE_ACTION(action)->definition->id) ? "ON" : "OFF"); | |
| 89 | + lib3270_toggle(v3270_get_session(terminal),GET_DESCRIPTOR(action)->id); | |
| 90 | + debug("Toggle is %s",lib3270_get_toggle(v3270_get_session(terminal),GET_DESCRIPTOR(action)->id) ? "ON" : "OFF"); | |
| 93 | 91 | |
| 94 | 92 | } |
| 95 | 93 | |
| 96 | 94 | } |
| 97 | 95 | |
| 98 | - void Lib3270ToggleAction_class_init(Lib3270ToggleActionClass *klass) { | |
| 99 | - | |
| 100 | - klass->parent_class.change_widget = change_widget; | |
| 101 | - | |
| 102 | - } | |
| 103 | - | |
| 104 | - static GVariant * get_state_property(GAction *action, GtkWidget *terminal) { | |
| 96 | + static GVariant * get_state(GAction *action, GtkWidget *terminal) { | |
| 105 | 97 | |
| 106 | 98 | debug("%s(%s)",__FUNCTION__,g_action_get_name(action)); |
| 107 | 99 | |
| 108 | 100 | return g_variant_new_boolean( |
| 109 | 101 | lib3270_get_toggle( |
| 110 | 102 | v3270_get_session(terminal), |
| 111 | - LIB3270_TOGGLE_ACTION(action)->definition->id | |
| 103 | + GET_DESCRIPTOR(action)->id | |
| 112 | 104 | ) |
| 113 | 105 | ); |
| 114 | 106 | |
| 115 | 107 | } |
| 116 | 108 | |
| 117 | - void Lib3270ToggleAction_init(Lib3270ToggleAction *action) { | |
| 118 | - | |
| 119 | - action->definition = NULL; | |
| 120 | - action->listener = NULL; | |
| 121 | - | |
| 122 | -// action->parent.name = "toggle"; | |
| 109 | + void Lib3270ToggleAction_class_init(Lib3270ToggleActionClass *klass) { | |
| 123 | 110 | |
| 124 | - action->parent.get_state_property = get_state_property; | |
| 125 | - action->parent.activate = activate; | |
| 111 | + klass->parent_class.change_widget = change_widget; | |
| 112 | + klass->parent_class.state.type = G_VARIANT_TYPE_BOOLEAN; | |
| 113 | + klass->parent_class.get_state = get_state; | |
| 126 | 114 | |
| 127 | - action->parent.types.state = G_VARIANT_TYPE_BOOLEAN; | |
| 115 | + } | |
| 128 | 116 | |
| 117 | + void Lib3270ToggleAction_init(Lib3270ToggleAction *action) { | |
| 118 | + action->parent.activate = activate; | |
| 129 | 119 | } |
| 130 | 120 | |
| 131 | 121 | GAction * g_action_new_from_toggle(const LIB3270_TOGGLE * definition) { |
| ... | ... | @@ -134,8 +124,6 @@ |
| 134 | 124 | |
| 135 | 125 | action->parent.info = (const LIB3270_PROPERTY *) definition; |
| 136 | 126 | |
| 137 | - action->definition = definition; | |
| 138 | - | |
| 139 | 127 | return G_ACTION(action); |
| 140 | 128 | |
| 141 | 129 | } | ... | ... |
src/objects/window/window.c
| ... | ... | @@ -185,7 +185,6 @@ |
| 185 | 185 | |
| 186 | 186 | } |
| 187 | 187 | |
| 188 | -/* | |
| 189 | 188 | #ifdef DEBUG |
| 190 | 189 | |
| 191 | 190 | { |
| ... | ... | @@ -202,6 +201,7 @@ |
| 202 | 201 | |
| 203 | 202 | debug("Action: %s",g_action_get_name(actions[ix])); |
| 204 | 203 | debug("\tState-type:\t\t%s",g_action_get_state_type(actions[ix])); |
| 204 | + debug("\tState value:\t%p",g_action_get_state(actions[ix])); | |
| 205 | 205 | debug("\tParameter-type:\t%s",g_action_get_parameter_type(actions[ix])); |
| 206 | 206 | |
| 207 | 207 | } |
| ... | ... | @@ -209,7 +209,6 @@ |
| 209 | 209 | } |
| 210 | 210 | |
| 211 | 211 | #endif // DEBUG |
| 212 | -*/ | |
| 213 | 212 | |
| 214 | 213 | } |
| 215 | 214 | ... | ... |