Commit 8be1f955827e07105f51dfb1cad632ad61363a88
1 parent
fc3bbab1
Exists in
master
and in
1 other branch
Small adjustments in common dialogs.
Showing
4 changed files
with
33 additions
and
23 deletions
Show diff stats
src/dialogs/commondialog.c
| @@ -41,6 +41,15 @@ static void cancel_clicked(GtkButton G_GNUC_UNUSED(*button), GtkWidget *dialog) | @@ -41,6 +41,15 @@ static void cancel_clicked(GtkButton G_GNUC_UNUSED(*button), GtkWidget *dialog) | ||
| 41 | gtk_dialog_response(GTK_DIALOG(dialog),GTK_RESPONSE_CANCEL); | 41 | gtk_dialog_response(GTK_DIALOG(dialog),GTK_RESPONSE_CANCEL); |
| 42 | } | 42 | } |
| 43 | 43 | ||
| 44 | +static GtkWidget * create_button(GtkWidget *dialog, const gchar *mnemonic, GCallback callback) | ||
| 45 | +{ | ||
| 46 | + GtkWidget * button = gtk_button_new_with_mnemonic(mnemonic); | ||
| 47 | + gtk_button_set_use_underline(GTK_BUTTON (button), TRUE); | ||
| 48 | + g_signal_connect(button,"clicked",callback,dialog); | ||
| 49 | + gtk_widget_show(button); | ||
| 50 | + return button; | ||
| 51 | +} | ||
| 52 | + | ||
| 44 | LIB3270_EXPORT GtkWidget * v3270_dialog_new(const gchar *title, GtkWindow *parent, const gchar *apply) | 53 | LIB3270_EXPORT GtkWidget * v3270_dialog_new(const gchar *title, GtkWindow *parent, const gchar *apply) |
| 45 | { | 54 | { |
| 46 | GtkWidget * dialog = | 55 | GtkWidget * dialog = |
| @@ -62,20 +71,10 @@ LIB3270_EXPORT GtkWidget * v3270_dialog_new(const gchar *title, GtkWindow *paren | @@ -62,20 +71,10 @@ LIB3270_EXPORT GtkWidget * v3270_dialog_new(const gchar *title, GtkWindow *paren | ||
| 62 | } | 71 | } |
| 63 | 72 | ||
| 64 | GtkWidget * header = gtk_dialog_get_header_bar(GTK_DIALOG(dialog)); | 73 | GtkWidget * header = gtk_dialog_get_header_bar(GTK_DIALOG(dialog)); |
| 65 | - GtkWidget * button; | ||
| 66 | 74 | ||
| 67 | // Cancel button | 75 | // Cancel button |
| 68 | - button = gtk_button_new_with_mnemonic(_("_Cancel")); | ||
| 69 | - gtk_header_bar_pack_start(GTK_HEADER_BAR(header),button); | ||
| 70 | - gtk_button_set_use_underline(GTK_BUTTON (button), TRUE); | ||
| 71 | - g_signal_connect(button,"clicked",G_CALLBACK(cancel_clicked),dialog); | ||
| 72 | - gtk_widget_show(button); | ||
| 73 | - | ||
| 74 | - button = gtk_button_new_with_mnemonic(apply); | ||
| 75 | - gtk_header_bar_pack_end(GTK_HEADER_BAR(header),button); | ||
| 76 | - gtk_button_set_use_underline(GTK_BUTTON (button), TRUE); | ||
| 77 | - g_signal_connect(button,"clicked",G_CALLBACK(apply_clicked),dialog); | ||
| 78 | - gtk_widget_show(button); | 76 | + gtk_header_bar_pack_start(GTK_HEADER_BAR(header),create_button(dialog,_("_Cancel"),G_CALLBACK(cancel_clicked))); |
| 77 | + gtk_header_bar_pack_end(GTK_HEADER_BAR(header),create_button(dialog,apply,G_CALLBACK(apply_clicked))); | ||
| 79 | 78 | ||
| 80 | return dialog; | 79 | return dialog; |
| 81 | } | 80 | } |
src/dialogs/hostselect.c
| @@ -226,18 +226,19 @@ LIB3270_EXPORT GtkWidget * v3270_host_select_new(GtkWidget *widget) | @@ -226,18 +226,19 @@ LIB3270_EXPORT GtkWidget * v3270_host_select_new(GtkWidget *widget) | ||
| 226 | { | 226 | { |
| 227 | g_return_val_if_fail(GTK_IS_V3270(widget),NULL); | 227 | g_return_val_if_fail(GTK_IS_V3270(widget),NULL); |
| 228 | 228 | ||
| 229 | - V3270HostSelectWidget * selector = GTK_V3270HostSelectWidget(g_object_new(GTK_TYPE_V3270HostSelectWidget, NULL)); | 229 | + GtkWidget * selector = GTK_WIDGET(g_object_new(GTK_TYPE_V3270HostSelectWidget, NULL)); |
| 230 | 230 | ||
| 231 | v3270_host_select_set_session(selector,widget); | 231 | v3270_host_select_set_session(selector,widget); |
| 232 | 232 | ||
| 233 | - return GTK_WIDGET(selector); | 233 | + return selector; |
| 234 | } | 234 | } |
| 235 | 235 | ||
| 236 | -LIB3270_EXPORT void v3270_host_select_set_session(V3270HostSelectWidget *widget, GtkWidget *session) | 236 | +LIB3270_EXPORT void v3270_host_select_set_session(GtkWidget *w, GtkWidget *session) |
| 237 | { | 237 | { |
| 238 | g_return_if_fail(GTK_IS_V3270(session)); | 238 | g_return_if_fail(GTK_IS_V3270(session)); |
| 239 | - g_return_if_fail(GTK_IS_V3270HostSelectWidget(widget)); | 239 | + g_return_if_fail(GTK_IS_V3270HostSelectWidget(w)); |
| 240 | 240 | ||
| 241 | + V3270HostSelectWidget *widget = GTK_V3270HostSelectWidget(w); | ||
| 241 | widget->hSession = v3270_get_session(session); | 242 | widget->hSession = v3270_get_session(session); |
| 242 | 243 | ||
| 243 | gtk_entry_set_text(widget->input.entry[ENTRY_HOSTNAME],lib3270_get_hostname(widget->hSession)); | 244 | gtk_entry_set_text(widget->input.entry[ENTRY_HOSTNAME],lib3270_get_hostname(widget->hSession)); |
| @@ -305,9 +306,17 @@ LIB3270_EXPORT void v3270_select_host(GtkWidget *widget) | @@ -305,9 +306,17 @@ LIB3270_EXPORT void v3270_select_host(GtkWidget *widget) | ||
| 305 | { | 306 | { |
| 306 | g_return_if_fail(GTK_IS_V3270(widget)); | 307 | g_return_if_fail(GTK_IS_V3270(widget)); |
| 307 | 308 | ||
| 309 | + if(v3270_is_connected(widget)) | ||
| 310 | + { | ||
| 311 | + gdk_display_beep(gdk_display_get_default()); | ||
| 312 | + return; | ||
| 313 | + } | ||
| 314 | + | ||
| 308 | GtkWidget * dialog = v3270_host_select_new(widget); | 315 | GtkWidget * dialog = v3270_host_select_new(widget); |
| 309 | GtkWidget * win = v3270_dialog_new(_("Configure host"), GTK_WINDOW(gtk_widget_get_toplevel(widget)), _("C_onnect")); | 316 | GtkWidget * win = v3270_dialog_new(_("Configure host"), GTK_WINDOW(gtk_widget_get_toplevel(widget)), _("C_onnect")); |
| 310 | 317 | ||
| 318 | + gtk_window_set_default_size(GTK_WINDOW(win), 700, 150); | ||
| 319 | + | ||
| 311 | gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(win))),dialog,FALSE,FALSE,2); | 320 | gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(win))),dialog,FALSE,FALSE,2); |
| 312 | gtk_widget_show_all(dialog); | 321 | gtk_widget_show_all(dialog); |
| 313 | 322 | ||
| @@ -323,7 +332,7 @@ LIB3270_EXPORT void v3270_select_host(GtkWidget *widget) | @@ -323,7 +332,7 @@ LIB3270_EXPORT void v3270_select_host(GtkWidget *widget) | ||
| 323 | case GTK_RESPONSE_APPLY: | 332 | case GTK_RESPONSE_APPLY: |
| 324 | gtk_widget_set_visible(win,FALSE); | 333 | gtk_widget_set_visible(win,FALSE); |
| 325 | gtk_widget_set_sensitive(win,FALSE); | 334 | gtk_widget_set_sensitive(win,FALSE); |
| 326 | - again = v3270_host_select_apply(GTK_V3270HostSelectWidget(dialog)) != 0; | 335 | + again = v3270_host_select_apply(dialog) != 0; |
| 327 | break; | 336 | break; |
| 328 | 337 | ||
| 329 | case GTK_RESPONSE_CANCEL: | 338 | case GTK_RESPONSE_CANCEL: |
| @@ -336,13 +345,14 @@ LIB3270_EXPORT void v3270_select_host(GtkWidget *widget) | @@ -336,13 +345,14 @@ LIB3270_EXPORT void v3270_select_host(GtkWidget *widget) | ||
| 336 | 345 | ||
| 337 | } | 346 | } |
| 338 | 347 | ||
| 339 | -int v3270_host_select_apply(V3270HostSelectWidget *widget) | 348 | +int v3270_host_select_apply(GtkWidget *w) |
| 340 | { | 349 | { |
| 341 | - g_return_val_if_fail(GTK_IS_V3270HostSelectWidget(widget),0); | 350 | + g_return_val_if_fail(GTK_IS_V3270HostSelectWidget(w),EINVAL); |
| 351 | + | ||
| 352 | + V3270HostSelectWidget *widget = GTK_V3270HostSelectWidget(w); | ||
| 342 | 353 | ||
| 343 | lib3270_set_hostname(widget->hSession,gtk_entry_get_text(widget->input.entry[ENTRY_HOSTNAME])); | 354 | lib3270_set_hostname(widget->hSession,gtk_entry_get_text(widget->input.entry[ENTRY_HOSTNAME])); |
| 344 | lib3270_set_srvcname(widget->hSession,gtk_entry_get_text(widget->input.entry[ENTRY_SRVCNAME])); | 355 | lib3270_set_srvcname(widget->hSession,gtk_entry_get_text(widget->input.entry[ENTRY_SRVCNAME])); |
| 345 | - | ||
| 346 | lib3270_set_host_type(widget->hSession,widget->type); | 356 | lib3270_set_host_type(widget->hSession,widget->type); |
| 347 | 357 | ||
| 348 | return lib3270_reconnect(widget->hSession,0); | 358 | return lib3270_reconnect(widget->hSession,0); |
src/include/hostselect.h
| @@ -59,8 +59,8 @@ | @@ -59,8 +59,8 @@ | ||
| 59 | 59 | ||
| 60 | /*--[ Prototipes ]-----------------------------------------------------------------------------------*/ | 60 | /*--[ Prototipes ]-----------------------------------------------------------------------------------*/ |
| 61 | 61 | ||
| 62 | - void v3270_host_select_set_session(V3270HostSelectWidget *widget, GtkWidget *session); | ||
| 63 | - int v3270_host_select_apply(V3270HostSelectWidget *widget); | 62 | + void v3270_host_select_set_session(GtkWidget *widget, GtkWidget *session); |
| 63 | + int v3270_host_select_apply(GtkWidget *widget); | ||
| 64 | 64 | ||
| 65 | G_END_DECLS | 65 | G_END_DECLS |
| 66 | 66 |
src/testprogram/testprogram.c
| @@ -166,6 +166,8 @@ static void activate(GtkApplication* app, G_GNUC_UNUSED gpointer user_data) { | @@ -166,6 +166,8 @@ static void activate(GtkApplication* app, G_GNUC_UNUSED gpointer user_data) { | ||
| 166 | GtkWidget * terminal = v3270_new(); | 166 | GtkWidget * terminal = v3270_new(); |
| 167 | GValue val = G_VALUE_INIT; | 167 | GValue val = G_VALUE_INIT; |
| 168 | 168 | ||
| 169 | + v3270_set_url(terminal,NULL); | ||
| 170 | + | ||
| 169 | g_signal_connect(terminal,"field_clicked",G_CALLBACK(field_clicked),window); | 171 | g_signal_connect(terminal,"field_clicked",G_CALLBACK(field_clicked),window); |
| 170 | 172 | ||
| 171 | GtkWidget *trace = v3270_new_trace_window(terminal,NULL); | 173 | GtkWidget *trace = v3270_new_trace_window(terminal,NULL); |
| @@ -177,7 +179,6 @@ static void activate(GtkApplication* app, G_GNUC_UNUSED gpointer user_data) { | @@ -177,7 +179,6 @@ static void activate(GtkApplication* app, G_GNUC_UNUSED gpointer user_data) { | ||
| 177 | } | 179 | } |
| 178 | 180 | ||
| 179 | /* | 181 | /* |
| 180 | - v3270_set_url(terminal,url); | ||
| 181 | v3270_connect(terminal); | 182 | v3270_connect(terminal); |
| 182 | */ | 183 | */ |
| 183 | 184 |