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 | 95 | |
96 | 96 | const gchar *url = getenv("LIB3270_DEFAULT_HOST"); |
97 | 97 | if(url) { |
98 | + | |
98 | 99 | v3270_set_url(terminal,url); |
99 | 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 | 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 | 109 | g_signal_connect(terminal,"popup",G_CALLBACK(popup_menu),NULL); | ... | ... |
src/v3270/private.h
src/v3270/properties.c
... | ... | @@ -70,6 +70,10 @@ |
70 | 70 | v3270_set_url(GTK_WIDGET(object),g_value_get_string(value)); |
71 | 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 | 77 | default: |
74 | 78 | if(prop_id < (PROP_TOGGLE + LIB3270_TOGGLE_COUNT)) |
75 | 79 | { |
... | ... | @@ -117,6 +121,10 @@ |
117 | 121 | } |
118 | 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 | 128 | default: |
121 | 129 | if(prop_id < (PROP_TOGGLE + LIB3270_TOGGLE_COUNT)) |
122 | 130 | { |
... | ... | @@ -185,6 +193,14 @@ |
185 | 193 | G_PARAM_READABLE|G_PARAM_WRITABLE); |
186 | 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 | 204 | // Toggle properties |
189 | 205 | int f; |
190 | 206 | ... | ... |
src/v3270/widget.c
... | ... | @@ -1629,8 +1629,14 @@ const gchar * v3270_get_luname(GtkWidget *widget) |
1629 | 1629 | |
1630 | 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 | 1638 | return g_get_application_name(); |
1639 | + | |
1634 | 1640 | return GTK_V3270(widget)->session_name; |
1635 | 1641 | } |
1636 | 1642 | ... | ... |
v3270.cbp
... | ... | @@ -8,10 +8,11 @@ |
8 | 8 | <Option compiler="gcc" /> |
9 | 9 | <Build> |
10 | 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 | 12 | <Option object_output=".obj/Debug/" /> |
13 | - <Option type="3" /> | |
13 | + <Option type="1" /> | |
14 | 14 | <Option compiler="gcc" /> |
15 | + <Option use_console_runner="0" /> | |
15 | 16 | <Compiler> |
16 | 17 | <Add option="-g" /> |
17 | 18 | <Add option="-DDEBUG=1" /> | ... | ... |