Commit ed23a333b185d83caec027416af73c92cb366e9d
1 parent
be2f90f9
Exists in
master
and in
1 other branch
The "trace" widget can now be create/destroyed changing a terminal
property.
Showing
2 changed files
with
36 additions
and
18 deletions
Show diff stats
src/testprogram/testprogram.c
@@ -75,10 +75,14 @@ | @@ -75,10 +75,14 @@ | ||
75 | } | 75 | } |
76 | 76 | ||
77 | // Create trace window | 77 | // Create trace window |
78 | + v3270_set_trace(terminal,TRUE); | ||
79 | + | ||
80 | + /* | ||
78 | GtkWidget *trace = v3270_trace_new(terminal); | 81 | GtkWidget *trace = v3270_trace_new(terminal); |
79 | debug("Trace=%p",trace); | 82 | debug("Trace=%p",trace); |
80 | gtk_notebook_append_page(GTK_NOTEBOOK(notebook),trace,gtk_label_new("Trace")); | 83 | gtk_notebook_append_page(GTK_NOTEBOOK(notebook),trace,gtk_label_new("Trace")); |
81 | // v3270_trace_window_new(terminal,NULL); | 84 | // v3270_trace_window_new(terminal,NULL); |
85 | + */ | ||
82 | 86 | ||
83 | // Setup and show main window | 87 | // Setup and show main window |
84 | gtk_window_set_title(GTK_WINDOW(window),v3270_get_session_title(terminal)); | 88 | gtk_window_set_title(GTK_WINDOW(window),v3270_get_session_title(terminal)); |
src/trace/property.c
@@ -65,48 +65,62 @@ | @@ -65,48 +65,62 @@ | ||
65 | gtk_notebook_page_num(GTK_NOTEBOOK(parent),terminal->trace) | 65 | gtk_notebook_page_num(GTK_NOTEBOOK(parent),terminal->trace) |
66 | ); | 66 | ); |
67 | } | 67 | } |
68 | - else if(GTK_IS_WINDOW(parent)) | 68 | + else |
69 | { | 69 | { |
70 | - debug("%s: Parent window %s",__FUNCTION__,"is a window"); | ||
71 | - gtk_widget_destroy(parent); | 70 | + debug("%s: Parent window %s",__FUNCTION__,"is not a notebook"); |
71 | +// gtk_widget_destroy(terminal->trace); | ||
72 | } | 72 | } |
73 | - else if(GTK_IS_CONTAINER(parent)) | 73 | + |
74 | + return FALSE; | ||
75 | + | ||
76 | + } | ||
77 | + | ||
78 | + static gboolean bg_append_trace(GtkWidget *terminal) | ||
79 | + { | ||
80 | + if(GTK_V3270(terminal)->trace) | ||
81 | + return FALSE; | ||
82 | + | ||
83 | + // Destroy trace window. | ||
84 | + GtkWidget * parent = gtk_widget_get_parent(terminal); | ||
85 | + | ||
86 | + if(GTK_IS_NOTEBOOK(parent)) | ||
74 | { | 87 | { |
75 | - debug("%s: Parent window %s",__FUNCTION__,"is a container"); | ||
76 | - gtk_container_remove(GTK_CONTAINER(parent),terminal->trace); | 88 | + debug("%s: Parent window %s",__FUNCTION__,"is a notebook"); |
89 | + GtkWidget * trace = v3270_trace_new(terminal); | ||
90 | + gtk_widget_show_all(trace); | ||
91 | + | ||
92 | + gtk_notebook_insert_page( | ||
93 | + GTK_NOTEBOOK(parent), | ||
94 | + trace, | ||
95 | + gtk_label_new(_("Trace")), | ||
96 | + gtk_notebook_page_num(GTK_NOTEBOOK(parent),terminal)+1 | ||
97 | + ); | ||
77 | 98 | ||
78 | } | 99 | } |
79 | else | 100 | else |
80 | { | 101 | { |
81 | - g_warning("Can't remove trace window from parent widget"); | ||
82 | - } | 102 | + debug("%s: Parent window %s",__FUNCTION__,"is not a notebook, creating trace window"); |
103 | + gtk_widget_show_all(v3270_trace_window_new(terminal,NULL)); | ||
83 | 104 | ||
105 | + } | ||
84 | 106 | ||
85 | return FALSE; | 107 | return FALSE; |
108 | + | ||
86 | } | 109 | } |
87 | 110 | ||
88 | void v3270_set_trace(GtkWidget *widget, gboolean trace) | 111 | void v3270_set_trace(GtkWidget *widget, gboolean trace) |
89 | { | 112 | { |
90 | g_return_if_fail(GTK_IS_V3270(widget)); | 113 | g_return_if_fail(GTK_IS_V3270(widget)); |
91 | 114 | ||
92 | - v3270 * terminal = GTK_V3270(widget); | ||
93 | - | ||
94 | if(trace) | 115 | if(trace) |
95 | { | 116 | { |
96 | debug("%s: trace is %s",__FUNCTION__,"ON"); | 117 | debug("%s: trace is %s",__FUNCTION__,"ON"); |
97 | - | ||
98 | - if(terminal->trace) | ||
99 | - return; | ||
100 | - | ||
101 | - // Create trace window | ||
102 | - | 118 | + g_idle_add((GSourceFunc) bg_append_trace, GTK_V3270(widget)); |
103 | } | 119 | } |
104 | else | 120 | else |
105 | { | 121 | { |
106 | debug("%s: trace is %s",__FUNCTION__,"OFF"); | 122 | debug("%s: trace is %s",__FUNCTION__,"OFF"); |
107 | g_idle_add((GSourceFunc) bg_remove_trace, GTK_V3270(widget)); | 123 | g_idle_add((GSourceFunc) bg_remove_trace, GTK_V3270(widget)); |
108 | - | ||
109 | } | 124 | } |
110 | 125 | ||
111 | - | ||
112 | } | 126 | } |