From a785862631eb3c01f612ea310422b23a7835a036 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Fri, 27 Dec 2019 15:04:05 -0300 Subject: [PATCH] Toggle action now lives in libv3270. --- src/objects/actions/lib3270/pakey.c | 2 +- src/objects/actions/lib3270/toggle.c | 131 ----------------------------------------------------------------------------------------------------------------------------------- src/objects/actions/private.h | 1 - src/objects/actions/window.c | 2 ++ src/objects/window/window.c | 26 +------------------------- 5 files changed, 4 insertions(+), 158 deletions(-) delete mode 100644 src/objects/actions/lib3270/toggle.c diff --git a/src/objects/actions/lib3270/pakey.c b/src/objects/actions/lib3270/pakey.c index 941cb80..e285912 100644 --- a/src/objects/actions/lib3270/pakey.c +++ b/src/objects/actions/lib3270/pakey.c @@ -99,7 +99,7 @@ } - void Lib3270PaAction_init(Lib3270PaAction *object) { + void Lib3270PaAction_init(Lib3270PaAction G_GNUC_UNUSED(*object)) { } diff --git a/src/objects/actions/lib3270/toggle.c b/src/objects/actions/lib3270/toggle.c deleted file mode 100644 index fe9e793..0000000 --- a/src/objects/actions/lib3270/toggle.c +++ /dev/null @@ -1,131 +0,0 @@ -/* - * "Software pw3270, desenvolvido com base nos códigos fontes do WC3270 e X3270 - * (Paul Mattes Paul.Mattes@usa.net), de emulação de terminal 3270 para acesso a - * aplicativos mainframe. Registro no INPI sob o nome G3270. - * - * Copyright (C) <2008> - * - * Este programa é software livre. Você pode redistribuí-lo e/ou modificá-lo sob - * os termos da GPL v.2 - Licença Pública Geral GNU, conforme publicado pela - * Free Software Foundation. - * - * Este programa é distribuído na expectativa de ser útil, mas SEM QUALQUER - * GARANTIA; sem mesmo a garantia implícita de COMERCIALIZAÇÃO ou de ADEQUAÇÃO - * A QUALQUER PROPÓSITO EM PARTICULAR. Consulte a Licença Pública Geral GNU para - * obter mais detalhes. - * - * Você deve ter recebido uma cópia da Licença Pública Geral GNU junto com este - * programa; se não, escreva para a Free Software Foundation, Inc., 51 Franklin - * St, Fifth Floor, Boston, MA 02110-1301 USA - * - * Este programa está nomeado como - e possui - linhas de código. - * - * Contatos: - * - * perry.werneck@gmail.com (Alexandre Perry de Souza Werneck) - * erico.mendonca@gmail.com (Erico Mascarenhas Mendonça) - * - */ - - /** - * @brief Implement GAction "wrapper" for lib3270's toggles. - * - */ - - #include "../private.h" - #include - #include - #include - - #define LIB3270_TYPE_TOGGLE_ACTION (Lib3270ToggleAction_get_type()) - #define LIB3270_TOGGLE_ACTION(inst) (G_TYPE_CHECK_INSTANCE_CAST ((inst), LIB3270_TYPE_TOGGLE_ACTION, Lib3270ToggleAction)) - #define LIB3270_IS_TOGGLE_ACTION(inst) (G_TYPE_CHECK_INSTANCE_TYPE ((inst), LIB3270_TYPE_TOGGLE_ACTION)) - - #define GET_DESCRIPTOR(obj) ((const LIB3270_TOGGLE *) ((V3270Action *) obj)->info) - - typedef struct _Lib3270ToggleActionClass { - V3270ActionClass parent_class; - } Lib3270ToggleActionClass; - - typedef struct _Lib3270ToggleAction { - V3270Action parent; - const void * listener; - } Lib3270ToggleAction; - - static void Lib3270ToggleAction_class_init(Lib3270ToggleActionClass *klass); - static void Lib3270ToggleAction_init(Lib3270ToggleAction *action); - - G_DEFINE_TYPE(Lib3270ToggleAction, Lib3270ToggleAction, V3270_TYPE_ACTION); - - static void change_state(H3270 G_GNUC_UNUSED(*hSession), LIB3270_TOGGLE_ID G_GNUC_UNUSED(id), char G_GNUC_UNUSED(state), void G_GNUC_UNUSED(*action)) { - v3270_action_notify_state(G_ACTION(action)); - } - - static void change_widget(GAction *object, GtkWidget *from, GtkWidget *to) { - - Lib3270ToggleAction * action = LIB3270_TOGGLE_ACTION(object); - - if(action->listener) - lib3270_unregister_toggle_listener(v3270_get_session(from),GET_DESCRIPTOR(object)->id,object); - - if(to) - action->listener = lib3270_register_toggle_listener(v3270_get_session(to),GET_DESCRIPTOR(object)->id,change_state,object); - - V3270_ACTION_CLASS(Lib3270ToggleAction_parent_class)->change_widget(object,from,to); - - } - - static void activate(GAction *action, GVariant *parameter, GtkWidget *terminal) { - - debug("Activating \"%s\"",g_action_get_name(action)); - - if(parameter && g_variant_is_of_type(parameter,G_VARIANT_TYPE_BOOLEAN)) { - - lib3270_set_toggle(v3270_get_session(terminal),GET_DESCRIPTOR(action)->id,g_variant_get_boolean(parameter)); - debug("Toggle set to %s",lib3270_get_toggle(v3270_get_session(terminal),GET_DESCRIPTOR(action)->id) ? "ON" : "OFF"); - - } else { - - lib3270_toggle(v3270_get_session(terminal),GET_DESCRIPTOR(action)->id); - debug("Toggle is %s",lib3270_get_toggle(v3270_get_session(terminal),GET_DESCRIPTOR(action)->id) ? "ON" : "OFF"); - - } - - } - - static GVariant * get_state(GAction *action, GtkWidget *terminal) { - - debug("%s(%s)",__FUNCTION__,g_action_get_name(action)); - - return g_variant_new_boolean( - lib3270_get_toggle( - v3270_get_session(terminal), - GET_DESCRIPTOR(action)->id - ) - ); - - } - - void Lib3270ToggleAction_class_init(Lib3270ToggleActionClass *klass) { - - klass->parent_class.change_widget = change_widget; - klass->parent_class.state.type = G_VARIANT_TYPE_BOOLEAN; - klass->parent_class.get_state = get_state; - - } - - void Lib3270ToggleAction_init(Lib3270ToggleAction *action) { - action->parent.activate = activate; - } - - GAction * g_action_new_from_toggle(const LIB3270_TOGGLE * definition) { - - Lib3270ToggleAction * action = (Lib3270ToggleAction *) g_object_new(LIB3270_TYPE_TOGGLE_ACTION, NULL); - - action->parent.info = (const LIB3270_PROPERTY *) definition; - - return G_ACTION(action); - - } - - diff --git a/src/objects/actions/private.h b/src/objects/actions/private.h index 10d97f2..7be6127 100644 --- a/src/objects/actions/private.h +++ b/src/objects/actions/private.h @@ -51,7 +51,6 @@ /* not really I18N-related, but also a string marker macro */ #define I_(string) g_intern_static_string (string) - G_GNUC_INTERNAL GAction * g_action_new_from_toggle(const LIB3270_TOGGLE * definition); G_GNUC_INTERNAL GAction * pw3270_action_new_pfkey(void); G_GNUC_INTERNAL GAction * pw3270_action_new_pakey(void); diff --git a/src/objects/actions/window.c b/src/objects/actions/window.c index 588010e..4aa9ec8 100644 --- a/src/objects/actions/window.c +++ b/src/objects/actions/window.c @@ -55,6 +55,7 @@ } */ + /* // Map toggles { const LIB3270_TOGGLE * toggles = lib3270_get_toggles(); @@ -65,6 +66,7 @@ } } + */ /* // Map V3270 actions diff --git a/src/objects/window/window.c b/src/objects/window/window.c index 1deff41..194fcf7 100644 --- a/src/objects/window/window.c +++ b/src/objects/window/window.c @@ -144,6 +144,7 @@ g_action_map_add_v3270_actions(G_ACTION_MAP(widget)); g_action_map_add_lib3270_actions(G_ACTION_MAP(widget)); + g_action_map_add_lib3270_toggles(G_ACTION_MAP(widget)); // Map special actions { @@ -185,31 +186,6 @@ } -#ifdef DEBUG - - { - GAction *actions[] = { - g_action_map_lookup_action(G_ACTION_MAP(widget),"crosshair"), - g_action_map_lookup_action(G_ACTION_MAP(widget),"toolbar") - }; - - size_t ix; - - for(ix = 0; ix < G_N_ELEMENTS(actions);ix++) { - - debug("\n\nAction %u = %p",(unsigned int) ix, actions[ix]); - - debug("Action: %s",g_action_get_name(actions[ix])); - debug("\tState-type:\t\t%s",g_action_get_state_type(actions[ix])); - debug("\tState value:\t%p",g_action_get_state(actions[ix])); - debug("\tParameter-type:\t%s",g_action_get_parameter_type(actions[ix])); - - } - - } - -#endif // DEBUG - } GtkWidget * pw3270_application_window_new(GtkApplication * application) { -- libgit2 0.21.2