From 7bff2b66142f13c550daf726d7e9b2ca9d2f7d20 Mon Sep 17 00:00:00 2001 From: Perry Werneck Date: Wed, 16 Jan 2019 10:10:16 -0200 Subject: [PATCH] Addint set_toggle method to widget, testing auto-reconnect. --- src/include/v3270.h | 3 +++ src/testprogram/testprogram.c | 37 ++++++++++++++++++------------------- src/v3270/widget.c | 12 ++++++++++++ 3 files changed, 33 insertions(+), 19 deletions(-) diff --git a/src/include/v3270.h b/src/include/v3270.h index 5e413f3..ad400dc 100644 --- a/src/include/v3270.h +++ b/src/include/v3270.h @@ -230,7 +230,10 @@ // Misc GtkIMContext * v3270_get_im_context(GtkWidget *widget); + gboolean v3270_get_toggle(GtkWidget *widget, LIB3270_TOGGLE ix); + gboolean v3270_set_toggle(GtkWidget *widget, LIB3270_TOGGLE ix, gboolean state); + void v3270_popup_message(GtkWidget *widget, LIB3270_NOTIFY type, const gchar *title, const gchar *message, const gchar *text); const gchar * v3270_get_session_name(GtkWidget *widget); void v3270_set_session_name(GtkWidget *widget, const gchar *name); diff --git a/src/testprogram/testprogram.c b/src/testprogram/testprogram.c index 4a897d6..27f9f61 100644 --- a/src/testprogram/testprogram.c +++ b/src/testprogram/testprogram.c @@ -109,36 +109,33 @@ static void activate(GtkApplication* app, G_GNUC_UNUSED gpointer user_data) { GtkWidget *trace = v3270_new_trace_window(terminal); if(trace) { g_signal_connect(trace, "destroy", G_CALLBACK(trace_window_destroy), v3270_get_session(terminal)); - lib3270_toggle(v3270_get_session(terminal),LIB3270_TOGGLE_DS_TRACE); + lib3270_toggle(v3270_get_session(terminal),LIB3270_TOGGLE_SSL_TRACE); gtk_widget_show_all(trace); } - const gchar *url = getenv("LIB3270_DEFAULT_HOST"); - if(url) { - /* - v3270_set_url(terminal,url); - v3270_connect(terminal); - */ - - g_value_init (&val, G_TYPE_STRING); - g_value_set_string(&val,url); - g_object_set_property(G_OBJECT(terminal), "url", &val); - g_value_unset(&val); - - gchar * title = g_strdup_printf("%s - %s", v3270_get_session_name(terminal), url); - gtk_window_set_title(GTK_WINDOW(window), title); - g_free(title); + /* + v3270_set_url(terminal,url); + v3270_connect(terminal); + */ - } else { - gtk_window_set_title(GTK_WINDOW(window), v3270_get_session_name(terminal)); - } + /* + g_value_init (&val, G_TYPE_STRING); + g_value_set_string(&val,url); + g_object_set_property(G_OBJECT(terminal), "url", &val); + g_value_unset(&val); + */ g_value_init(&val, G_TYPE_STRING); g_object_get_property(G_OBJECT(terminal),"url",&val); g_message("URL=%s",g_value_get_string(&val)); + + gchar * title = g_strdup_printf("%s - %s", v3270_get_session_name(terminal), g_value_get_string(&val)); + gtk_window_set_title(GTK_WINDOW(window), title); + g_free(title); g_value_unset(&val); + g_value_init(&val, G_TYPE_BOOLEAN); g_object_get_property(G_OBJECT(terminal),"tso",&val); g_message("TSO=%s",g_value_get_boolean(&val) ? "Yes" : "No"); @@ -162,6 +159,8 @@ static void activate(GtkApplication* app, G_GNUC_UNUSED gpointer user_data) { gtk_container_add(GTK_CONTAINER(window),terminal); gtk_widget_show_all (window); + v3270_set_toggle(terminal,LIB3270_TOGGLE_RECONNECT,1); + } int main (int argc, char **argv) { diff --git a/src/v3270/widget.c b/src/v3270/widget.c index c375941..5fe08f2 100644 --- a/src/v3270/widget.c +++ b/src/v3270/widget.c @@ -704,6 +704,7 @@ static void update_toggle(H3270 *session, LIB3270_TOGGLE ix, unsigned char value break; case LIB3270_TOGGLE_DS_TRACE: + case LIB3270_TOGGLE_SSL_TRACE: case LIB3270_TOGGLE_SCREEN_TRACE: case LIB3270_TOGGLE_EVENT_TRACE: case LIB3270_TOGGLE_RECONNECT: @@ -1585,6 +1586,17 @@ LIB3270_EXPORT gboolean v3270_get_toggle(GtkWidget *widget, LIB3270_TOGGLE ix) return FALSE; } +LIB3270_EXPORT gboolean v3270_set_toggle(GtkWidget *widget, LIB3270_TOGGLE ix, gboolean state) +{ + g_return_val_if_fail(GTK_IS_V3270(widget),FALSE); + + if(ix < LIB3270_TOGGLE_COUNT) + return lib3270_set_toggle(GTK_V3270(widget)->host,ix,state ? 1 : 0) ? TRUE : FALSE; + + return FALSE; + +} + /** * v3270_set_url: * -- libgit2 0.21.2