Commit c9d59970d3a3660a63d76517a5626e83bd5ba74e

Authored by Perry Werneck
1 parent e6dbb5cd
Exists in master and in 1 other branch develop

Session name is now a widget property.

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
... ... @@ -216,6 +216,7 @@ G_BEGIN_DECLS
216 216 PROP_LUNAME,
217 217 PROP_AUTO_DISCONNECT,
218 218 PROP_URL,
  219 + PROP_SESSION_NAME,
219 220  
220 221 /* Toggles - always the last one, the real values are PROP_TOGGLE+LIB3270_TOGGLE */
221 222 PROP_TOGGLE
... ...
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" />
... ...