Commit f4244f19114a442209a1ac2db8569e3dcd0c3fbf
1 parent
3d11a714
Exists in
master
and in
5 other branches
Incluindo opção para troca do nome da aplicação e atualização da barra de título
Showing
4 changed files
with
45 additions
and
27 deletions
Show diff stats
src/gtk/main.c
... | ... | @@ -107,11 +107,46 @@ static int initialize(void) |
107 | 107 | |
108 | 108 | int main(int argc, char *argv[]) |
109 | 109 | { |
110 | - int rc = 0; | |
110 | + static const gchar * appname = PACKAGE_NAME; | |
111 | + int rc = 0; | |
111 | 112 | |
112 | - g_set_application_name(PACKAGE_NAME); | |
113 | + // Process command-line options | |
114 | + { | |
115 | + static const GOptionEntry app_options[] = | |
116 | + { | |
117 | + { "appname", 'a', 0, G_OPTION_ARG_STRING, &appname, N_( "Application name" ), PACKAGE_NAME }, | |
118 | + | |
119 | + { NULL } | |
120 | + }; | |
121 | + | |
122 | + GOptionContext * options = g_option_context_new (_("- 3270 Emulator for Gtk")); | |
123 | + GError * error = NULL; | |
124 | + | |
125 | + g_option_context_add_main_entries(options, app_options, NULL); | |
126 | + | |
127 | + gtk_init(&argc, &argv); | |
128 | + | |
129 | + if(!g_option_context_parse( options, &argc, &argv, &error )) | |
130 | + { | |
131 | + GtkWidget *dialog = gtk_message_dialog_new( NULL, | |
132 | + GTK_DIALOG_DESTROY_WITH_PARENT, | |
133 | + GTK_MESSAGE_ERROR, | |
134 | + GTK_BUTTONS_CANCEL, | |
135 | + "%s", _( "Option parsing failed." )); | |
136 | + | |
137 | + gtk_window_set_title(GTK_WINDOW(dialog),_( "Parse error" )); | |
138 | + gtk_message_dialog_format_secondary_text(GTK_MESSAGE_DIALOG(dialog), "%s", error->message); | |
139 | + | |
140 | + gtk_dialog_run(GTK_DIALOG (dialog)); | |
141 | + gtk_widget_destroy(dialog); | |
142 | + | |
143 | + g_error_free(error); | |
144 | + | |
145 | + return -1; | |
146 | + } | |
147 | + } | |
113 | 148 | |
114 | - gtk_init(&argc, &argv); | |
149 | + g_set_application_name(appname); | |
115 | 150 | |
116 | 151 | rc = initialize(); |
117 | 152 | if(!rc) | ... | ... |
src/gtk/mainwindow.c
... | ... | @@ -122,33 +122,15 @@ |
122 | 122 | gtk_action_group_set_sensitive(group[ACTION_GROUP_PASTE],FALSE); |
123 | 123 | gtk_action_group_set_sensitive(group[ACTION_GROUP_ONLINE],FALSE); |
124 | 124 | gtk_action_group_set_sensitive(group[ACTION_GROUP_OFFLINE],TRUE); |
125 | + gtk_window_set_title(GTK_WINDOW(gtk_widget_get_toplevel(widget)),g_get_application_name()); | |
125 | 126 | } |
126 | 127 | |
127 | -/* | |
128 | -#ifndef WIN32 | |
129 | - static void clipboard_text_check(GtkClipboard *clipboard, const gchar *text, GtkActionGroup **group) | |
130 | - { | |
131 | - trace("%s called with text=%p",__FUNCTION__,text); | |
132 | - gtk_action_group_set_sensitive(group[ACTION_GROUP_PASTE],text != NULL); | |
133 | - } | |
134 | -#endif | |
135 | -*/ | |
136 | - | |
137 | - static void connected(GtkWidget *widget, GtkActionGroup **group) | |
128 | + static void connected(GtkWidget *widget, const gchar *host, GtkActionGroup **group) | |
138 | 129 | { |
130 | + gtk_window_set_title(GTK_WINDOW(gtk_widget_get_toplevel(widget)),host); | |
139 | 131 | gtk_action_group_set_sensitive(group[ACTION_GROUP_ONLINE],TRUE); |
140 | 132 | gtk_action_group_set_sensitive(group[ACTION_GROUP_OFFLINE],FALSE); |
141 | 133 | gtk_action_group_set_sensitive(group[ACTION_GROUP_PASTE],TRUE); |
142 | - | |
143 | -/* | |
144 | -#ifdef WIN32 | |
145 | - gtk_action_group_set_sensitive(group[ACTION_GROUP_PASTE],TRUE); | |
146 | -#else | |
147 | - gtk_action_group_set_sensitive(group[ACTION_GROUP_PASTE],FALSE); | |
148 | - gtk_clipboard_request_text(gtk_widget_get_clipboard(widget,GDK_SELECTION_CLIPBOARD),(GtkClipboardTextReceivedFunc) clipboard_text_check,(gpointer) group); | |
149 | -#endif | |
150 | -*/ | |
151 | - | |
152 | 134 | } |
153 | 135 | |
154 | 136 | static void update_config(GtkWidget *widget, const gchar *name, const gchar *value) | ... | ... |
src/gtk/v3270/genmarshal
src/gtk/v3270/widget.c
... | ... | @@ -318,8 +318,8 @@ static void v3270_class_init(v3270Class *klass) |
318 | 318 | G_SIGNAL_RUN_FIRST, |
319 | 319 | 0, |
320 | 320 | NULL, NULL, |
321 | - pw3270_VOID__VOID, | |
322 | - G_TYPE_NONE, 0); | |
321 | + pw3270_VOID__POINTER, | |
322 | + G_TYPE_NONE, 1, G_TYPE_STRING); | |
323 | 323 | |
324 | 324 | v3270_widget_signal[SIGNAL_DISCONNECTED] = |
325 | 325 | g_signal_new( "disconnected", |
... | ... | @@ -524,7 +524,7 @@ static void update_connect(H3270 *session, unsigned char connected) |
524 | 524 | if(connected) |
525 | 525 | { |
526 | 526 | widget->cursor.show |= 2; |
527 | - g_signal_emit(GTK_WIDGET(widget), v3270_widget_signal[SIGNAL_CONNECTED], 0); | |
527 | + g_signal_emit(GTK_WIDGET(widget), v3270_widget_signal[SIGNAL_CONNECTED], 0, session->full_current_host); | |
528 | 528 | } |
529 | 529 | else |
530 | 530 | { | ... | ... |