Commit 1d8358e7763df9099ee6e4e1648201d9f47d9c24

Authored by Perry Werneck
1 parent f8cc9e1e

Trace, log and messages are now managed by session.

modules/lib3270
1 -Subproject commit b0b00222b9fe55937cfdcefc4f4ebc8ce90e01dc 1 +Subproject commit 37ad659b945694a03130fe873b0b095d939c6448
src/pw3270/main.c
@@ -274,6 +274,7 @@ static void trace_window_destroy(GtkWidget *widget, H3270 *hSession) @@ -274,6 +274,7 @@ static void trace_window_destroy(GtkWidget *widget, H3270 *hSession)
274 trace_window = NULL; 274 trace_window = NULL;
275 } 275 }
276 276
  277 +/*
277 static void g_trace(H3270 *hSession, const char *fmt, va_list args) 278 static void g_trace(H3270 *hSession, const char *fmt, va_list args)
278 { 279 {
279 gchar *ptr = g_strdup_vprintf(fmt,args); 280 gchar *ptr = g_strdup_vprintf(fmt,args);
@@ -334,6 +335,7 @@ static void g_trace(H3270 *hSession, const char *fmt, va_list args) @@ -334,6 +335,7 @@ static void g_trace(H3270 *hSession, const char *fmt, va_list args)
334 335
335 g_free(ptr); 336 g_free(ptr);
336 } 337 }
  338 +*/
337 339
338 static gboolean startup(GtkWidget *toplevel) 340 static gboolean startup(GtkWidget *toplevel)
339 { 341 {
@@ -491,7 +493,7 @@ int main(int argc, char *argv[]) @@ -491,7 +493,7 @@ int main(int argc, char *argv[])
491 g_log_set_default_handler(g_logfile,NULL); 493 g_log_set_default_handler(g_logfile,NULL);
492 } 494 }
493 495
494 - lib3270_set_trace_handler(g_trace); 496 +// lib3270_set_trace_handler(g_trace);
495 497
496 // Check GTK Version 498 // Check GTK Version
497 { 499 {
src/pw3270/v3270/widget.c
@@ -927,6 +927,28 @@ static void release_activity_timer(v3270 *widget) @@ -927,6 +927,28 @@ static void release_activity_timer(v3270 *widget)
927 widget->activity.timer = NULL; 927 widget->activity.timer = NULL;
928 } 928 }
929 929
  930 +static int popup_handler(H3270 *session, LIB3270_NOTIFY type, const char *title, const char *msg, const char *fmt, va_list args)
  931 + {
  932 + GtkWidget *terminal = (GtkWidget *) lib3270_get_user_data(session);
  933 +
  934 + if(terminal && GTK_IS_V3270(terminal)) {
  935 +
  936 + if(fmt)
  937 + {
  938 + gchar *text = g_strdup_vprintf(fmt,args);
  939 + v3270_popup_message(GTK_WIDGET(terminal),type,title,msg,text);
  940 + g_free(text);
  941 + }
  942 + else
  943 + {
  944 + v3270_popup_message(GTK_WIDGET(terminal),type,title,msg,NULL);
  945 + }
  946 +
  947 + }
  948 +
  949 + return 0;
  950 + }
  951 +
930 static void v3270_init(v3270 *widget) 952 static void v3270_init(v3270 *widget)
931 { 953 {
932 struct lib3270_session_callbacks *cbk; 954 struct lib3270_session_callbacks *cbk;
@@ -934,16 +956,7 @@ static void v3270_init(v3270 *widget) @@ -934,16 +956,7 @@ static void v3270_init(v3270 *widget)
934 widget->host = lib3270_session_new(""); 956 widget->host = lib3270_session_new("");
935 957
936 lib3270_set_user_data(widget->host,widget); 958 lib3270_set_user_data(widget->host,widget);
937 -  
938 - /*  
939 - trace("%s host->sz=%d expected=%d revision=%s expected=%s",__FUNCTION__,widget->host->sz,(int) sizeof(H3270),lib3270_get_revision(),PACKAGE_REVISION);  
940 -  
941 - if(widget->host->sz != sizeof(H3270))  
942 - {  
943 - g_error( _( "Unexpected signature in H3270 object, possible version mismatch in lib3270") );  
944 - return;  
945 - }  
946 - */ 959 + lib3270_set_popup_handler(widget->host, popup_handler);
947 960
948 cbk = lib3270_get_session_callbacks(widget->host,sizeof(struct lib3270_session_callbacks)); 961 cbk = lib3270_get_session_callbacks(widget->host,sizeof(struct lib3270_session_callbacks));
949 if(!cbk) 962 if(!cbk)
src/pw3270/window.c
@@ -139,27 +139,7 @@ @@ -139,27 +139,7 @@
139 return 0; 139 return 0;
140 } 140 }
141 141
142 - static int popup_handler(H3270 *session, void *terminal, LIB3270_NOTIFY type, const char *title, const char *msg, const char *fmt, va_list args)  
143 - {  
144 - GtkWidget *widget = NULL;  
145 -  
146 - if(session && terminal && GTK_IS_V3270(terminal))  
147 - widget = GTK_WIDGET(terminal);  
148 -  
149 - if(fmt)  
150 - {  
151 - gchar *text = g_strdup_vprintf(fmt,args);  
152 - v3270_popup_message(GTK_WIDGET(widget),type,title,msg,text);  
153 - g_free(text);  
154 - }  
155 - else  
156 - {  
157 - v3270_popup_message(GTK_WIDGET(widget),type,title,msg,NULL);  
158 - }  
159 - return 0;  
160 - }  
161 -  
162 - static void pw3270_class_init(pw3270Class *klass) 142 + static void pw3270_class_init(pw3270Class *klass)
163 { 143 {
164 #if GTK_CHECK_VERSION(3,0,0) 144 #if GTK_CHECK_VERSION(3,0,0)
165 GtkWidgetClass * widget_class = GTK_WIDGET_CLASS(klass); 145 GtkWidgetClass * widget_class = GTK_WIDGET_CLASS(klass);
@@ -172,7 +152,6 @@ @@ -172,7 +152,6 @@
172 #endif // GTK3 152 #endif // GTK3
173 153
174 configuration_init(); 154 configuration_init();
175 - lib3270_set_popup_handler(popup_handler);  
176 155
177 } 156 }
178 157