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 | { | ... | ... |