diff --git a/src/widgets/window/terminal.c b/src/widgets/window/terminal.c index 3ee1b9e..fef9d28 100644 --- a/src/widgets/window/terminal.c +++ b/src/widgets/window/terminal.c @@ -28,21 +28,32 @@ */ #include "private.h" + #include static gboolean on_terminal_focus(GtkWidget *terminal, GdkEvent *event, pw3270ApplicationWindow * window) { debug("Focus on terminal %p", terminal); + window->terminal = terminal; return FALSE; } - GtkWidget * pw3270_terminal_new(GtkWidget *window) { + static void session_changed(GtkWidget *terminal, GtkWidget *label) { + gtk_label_set_text(GTK_LABEL(label),v3270_get_session_name(terminal)); + } + + GtkWidget * pw3270_terminal_new(GtkWidget *widget) { + pw3270ApplicationWindow * window = PW3270_APPLICATION_WINDOW(widget); GtkWidget * terminal = v3270_new(); - g_signal_connect(G_OBJECT(terminal), "focus-in-event", G_CALLBACK(on_terminal_focus), window); + GtkWidget * label = gtk_label_new(v3270_get_session_name(terminal)); + + g_signal_connect(G_OBJECT(terminal), "focus-in-event", G_CALLBACK(on_terminal_focus), widget); + g_signal_connect(G_OBJECT(terminal), "session_changed", G_CALLBACK(session_changed),label); - gtk_notebook_append_page(PW3270_APPLICATION_WINDOW(window)->notebook,terminal,NULL); + gtk_notebook_append_page(GTK_NOTEBOOK(window->notebook),terminal,label); + gtk_notebook_set_show_tabs(GTK_NOTEBOOK(window->notebook),gtk_notebook_get_n_pages(GTK_NOTEBOOK(window->notebook)) > 1); return terminal; diff --git a/src/widgets/window/testprogram/testprogram.c b/src/widgets/window/testprogram/testprogram.c index 9d0ee17..5c29fcb 100644 --- a/src/widgets/window/testprogram/testprogram.c +++ b/src/widgets/window/testprogram/testprogram.c @@ -29,7 +29,7 @@ */ #include - #include + #include #include #include #include @@ -40,6 +40,10 @@ GtkWidget * window = pw3270_application_window_new(app); + // Create terminal widget + pw3270_terminal_new(window); + pw3270_terminal_new(window); + // Setup and show main window gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER); gtk_window_set_default_size (GTK_WINDOW (window), 800, 500); diff --git a/src/widgets/window/window.cbp b/src/widgets/window/window.cbp index cf43400..5d6dde6 100644 --- a/src/widgets/window/window.cbp +++ b/src/widgets/window/window.cbp @@ -38,6 +38,7 @@ +