Commit c9d59970d3a3660a63d76517a5626e83bd5ba74e
1 parent
e6dbb5cd
Exists in
master
and in
1 other branch
Session name is now a widget property.
Showing
5 changed files
with
33 additions
and
5 deletions
Show diff stats
src/testprogram/testprogram.c
@@ -95,11 +95,15 @@ static void activate(GtkApplication* app, gpointer user_data) { | @@ -95,11 +95,15 @@ static void activate(GtkApplication* app, gpointer user_data) { | ||
95 | 95 | ||
96 | const gchar *url = getenv("LIB3270_DEFAULT_HOST"); | 96 | const gchar *url = getenv("LIB3270_DEFAULT_HOST"); |
97 | if(url) { | 97 | if(url) { |
98 | + | ||
98 | v3270_set_url(terminal,url); | 99 | v3270_set_url(terminal,url); |
99 | v3270_connect(terminal); | 100 | v3270_connect(terminal); |
100 | - gtk_window_set_title(GTK_WINDOW(window), url); | 101 | + gchar * title = g_strdup_printf("%s - %s", v3270_get_session_name(terminal), url); |
102 | + gtk_window_set_title(GTK_WINDOW(window), title); | ||
103 | + g_free(title); | ||
104 | + | ||
101 | } else { | 105 | } else { |
102 | - gtk_window_set_title(GTK_WINDOW(window), "Window"); | 106 | + gtk_window_set_title(GTK_WINDOW(window), v3270_get_session_name(terminal)); |
103 | } | 107 | } |
104 | 108 | ||
105 | g_signal_connect(terminal,"popup",G_CALLBACK(popup_menu),NULL); | 109 | g_signal_connect(terminal,"popup",G_CALLBACK(popup_menu),NULL); |
src/v3270/private.h
@@ -216,6 +216,7 @@ G_BEGIN_DECLS | @@ -216,6 +216,7 @@ G_BEGIN_DECLS | ||
216 | PROP_LUNAME, | 216 | PROP_LUNAME, |
217 | PROP_AUTO_DISCONNECT, | 217 | PROP_AUTO_DISCONNECT, |
218 | PROP_URL, | 218 | PROP_URL, |
219 | + PROP_SESSION_NAME, | ||
219 | 220 | ||
220 | /* Toggles - always the last one, the real values are PROP_TOGGLE+LIB3270_TOGGLE */ | 221 | /* Toggles - always the last one, the real values are PROP_TOGGLE+LIB3270_TOGGLE */ |
221 | PROP_TOGGLE | 222 | PROP_TOGGLE |
src/v3270/properties.c
@@ -70,6 +70,10 @@ | @@ -70,6 +70,10 @@ | ||
70 | v3270_set_url(GTK_WIDGET(object),g_value_get_string(value)); | 70 | v3270_set_url(GTK_WIDGET(object),g_value_get_string(value)); |
71 | break; | 71 | break; |
72 | 72 | ||
73 | + case PROP_SESSION_NAME: | ||
74 | + v3270_set_session_name(GTK_WIDGET(object),g_value_get_string(value)); | ||
75 | + break; | ||
76 | + | ||
73 | default: | 77 | default: |
74 | if(prop_id < (PROP_TOGGLE + LIB3270_TOGGLE_COUNT)) | 78 | if(prop_id < (PROP_TOGGLE + LIB3270_TOGGLE_COUNT)) |
75 | { | 79 | { |
@@ -117,6 +121,10 @@ | @@ -117,6 +121,10 @@ | ||
117 | } | 121 | } |
118 | break; | 122 | break; |
119 | 123 | ||
124 | + case PROP_SESSION_NAME: | ||
125 | + g_value_set_string(value,v3270_get_session_name(GTK_WIDGET(object))); | ||
126 | + break; | ||
127 | + | ||
120 | default: | 128 | default: |
121 | if(prop_id < (PROP_TOGGLE + LIB3270_TOGGLE_COUNT)) | 129 | if(prop_id < (PROP_TOGGLE + LIB3270_TOGGLE_COUNT)) |
122 | { | 130 | { |
@@ -185,6 +193,14 @@ | @@ -185,6 +193,14 @@ | ||
185 | G_PARAM_READABLE|G_PARAM_WRITABLE); | 193 | G_PARAM_READABLE|G_PARAM_WRITABLE); |
186 | g_object_class_install_property(gobject_class,PROP_AUTO_DISCONNECT,v3270_properties[PROP_URL]); | 194 | g_object_class_install_property(gobject_class,PROP_AUTO_DISCONNECT,v3270_properties[PROP_URL]); |
187 | 195 | ||
196 | + v3270_properties[PROP_SESSION_NAME] = g_param_spec_string( | ||
197 | + "session_name", | ||
198 | + "session_name", | ||
199 | + "The TN3270 Session Name", | ||
200 | + g_get_application_name(), | ||
201 | + G_PARAM_READABLE|G_PARAM_WRITABLE); | ||
202 | + g_object_class_install_property(gobject_class,PROP_SESSION_NAME,v3270_properties[PROP_SESSION_NAME]); | ||
203 | + | ||
188 | // Toggle properties | 204 | // Toggle properties |
189 | int f; | 205 | int f; |
190 | 206 |
src/v3270/widget.c
@@ -1629,8 +1629,14 @@ const gchar * v3270_get_luname(GtkWidget *widget) | @@ -1629,8 +1629,14 @@ const gchar * v3270_get_luname(GtkWidget *widget) | ||
1629 | 1629 | ||
1630 | const gchar * v3270_get_session_name(GtkWidget *widget) | 1630 | const gchar * v3270_get_session_name(GtkWidget *widget) |
1631 | { | 1631 | { |
1632 | - if(!GTK_IS_V3270(widget) || GTK_V3270(widget)->session_name == NULL) | 1632 | +#ifdef DEBUG |
1633 | + v3270 * terminal = GTK_V3270(widget); | ||
1634 | + debug("Session name: [%s] Application name: [%s]",terminal->session_name, g_get_application_name()); | ||
1635 | +#endif // DEBUG | ||
1636 | + | ||
1637 | + if(!(GTK_IS_V3270(widget) && GTK_V3270(widget)->session_name)) | ||
1633 | return g_get_application_name(); | 1638 | return g_get_application_name(); |
1639 | + | ||
1634 | return GTK_V3270(widget)->session_name; | 1640 | return GTK_V3270(widget)->session_name; |
1635 | } | 1641 | } |
1636 | 1642 |
v3270.cbp
@@ -8,10 +8,11 @@ | @@ -8,10 +8,11 @@ | ||
8 | <Option compiler="gcc" /> | 8 | <Option compiler="gcc" /> |
9 | <Build> | 9 | <Build> |
10 | <Target title="Debug"> | 10 | <Target title="Debug"> |
11 | - <Option output=".bin/Debug/v3270" imp_lib="$(TARGET_OUTPUT_DIR)$(TARGET_OUTPUT_BASENAME).a" def_file="$(TARGET_OUTPUT_DIR)$(TARGET_OUTPUT_BASENAME).def" prefix_auto="1" extension_auto="1" /> | 11 | + <Option output=".bin/Debug/libv3270" prefix_auto="1" extension_auto="1" /> |
12 | <Option object_output=".obj/Debug/" /> | 12 | <Option object_output=".obj/Debug/" /> |
13 | - <Option type="3" /> | 13 | + <Option type="1" /> |
14 | <Option compiler="gcc" /> | 14 | <Option compiler="gcc" /> |
15 | + <Option use_console_runner="0" /> | ||
15 | <Compiler> | 16 | <Compiler> |
16 | <Add option="-g" /> | 17 | <Add option="-g" /> |
17 | <Add option="-DDEBUG=1" /> | 18 | <Add option="-DDEBUG=1" /> |