Commit 54c30a1273683a1f9e0ce84e108a911f8c999a4e

Authored by Perry Werneck
1 parent 6bb62c53

Working in the main window.

src/widgets/window/terminal.c
@@ -28,21 +28,32 @@ @@ -28,21 +28,32 @@
28 */ 28 */
29 29
30 #include "private.h" 30 #include "private.h"
  31 + #include <pw3270/actions.h>
31 32
32 static gboolean on_terminal_focus(GtkWidget *terminal, GdkEvent *event, pw3270ApplicationWindow * window) { 33 static gboolean on_terminal_focus(GtkWidget *terminal, GdkEvent *event, pw3270ApplicationWindow * window) {
33 34
34 debug("Focus on terminal %p", terminal); 35 debug("Focus on terminal %p", terminal);
  36 +
35 window->terminal = terminal; 37 window->terminal = terminal;
36 38
37 return FALSE; 39 return FALSE;
38 } 40 }
39 41
40 - GtkWidget * pw3270_terminal_new(GtkWidget *window) { 42 + static void session_changed(GtkWidget *terminal, GtkWidget *label) {
  43 + gtk_label_set_text(GTK_LABEL(label),v3270_get_session_name(terminal));
  44 + }
  45 +
  46 + GtkWidget * pw3270_terminal_new(GtkWidget *widget) {
41 47
  48 + pw3270ApplicationWindow * window = PW3270_APPLICATION_WINDOW(widget);
42 GtkWidget * terminal = v3270_new(); 49 GtkWidget * terminal = v3270_new();
43 - g_signal_connect(G_OBJECT(terminal), "focus-in-event", G_CALLBACK(on_terminal_focus), window); 50 + GtkWidget * label = gtk_label_new(v3270_get_session_name(terminal));
  51 +
  52 + g_signal_connect(G_OBJECT(terminal), "focus-in-event", G_CALLBACK(on_terminal_focus), widget);
  53 + g_signal_connect(G_OBJECT(terminal), "session_changed", G_CALLBACK(session_changed),label);
44 54
45 - gtk_notebook_append_page(PW3270_APPLICATION_WINDOW(window)->notebook,terminal,NULL); 55 + gtk_notebook_append_page(GTK_NOTEBOOK(window->notebook),terminal,label);
  56 + gtk_notebook_set_show_tabs(GTK_NOTEBOOK(window->notebook),gtk_notebook_get_n_pages(GTK_NOTEBOOK(window->notebook)) > 1);
46 57
47 return terminal; 58 return terminal;
48 59
src/widgets/window/testprogram/testprogram.c
@@ -29,7 +29,7 @@ @@ -29,7 +29,7 @@
29 */ 29 */
30 30
31 #include <config.h> 31 #include <config.h>
32 - #include <pw3270/toolbar.h> 32 + #include <pw3270/window.h>
33 #include <v3270.h> 33 #include <v3270.h>
34 #include <v3270/trace.h> 34 #include <v3270/trace.h>
35 #include <lib3270/log.h> 35 #include <lib3270/log.h>
@@ -40,6 +40,10 @@ @@ -40,6 +40,10 @@
40 40
41 GtkWidget * window = pw3270_application_window_new(app); 41 GtkWidget * window = pw3270_application_window_new(app);
42 42
  43 + // Create terminal widget
  44 + pw3270_terminal_new(window);
  45 + pw3270_terminal_new(window);
  46 +
43 // Setup and show main window 47 // Setup and show main window
44 gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER); 48 gtk_window_set_position(GTK_WINDOW(window),GTK_WIN_POS_CENTER);
45 gtk_window_set_default_size (GTK_WINDOW (window), 800, 500); 49 gtk_window_set_default_size (GTK_WINDOW (window), 800, 500);
src/widgets/window/window.cbp
@@ -38,6 +38,7 @@ @@ -38,6 +38,7 @@
38 <Linker> 38 <Linker>
39 <Add option="`pkg-config --libs gtk+-3.0 libv3270`" /> 39 <Add option="`pkg-config --libs gtk+-3.0 libv3270`" />
40 </Linker> 40 </Linker>
  41 + <Unit filename="../../include/pw3270/actions.h" />
41 <Unit filename="../../include/pw3270/window.h" /> 42 <Unit filename="../../include/pw3270/window.h" />
42 <Unit filename="core.c"> 43 <Unit filename="core.c">
43 <Option compilerVar="CC" /> 44 <Option compilerVar="CC" />