Commit aa2168781de64c99de8f9ac07d5314d0f1b0a77d

Authored by Perry Werneck
1 parent da3dd36a
Exists in master and in 1 other branch develop

Trace, log and messages are now managed by session.

Showing 1 changed file with 23 additions and 10 deletions   Show diff stats
@@ -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)