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 | 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 | 53 | LIB3270_EXPORT GtkWidget * v3270_dialog_new(const gchar *title, GtkWindow *parent, const gchar *apply) |
| 45 | 54 | { |
| 46 | 55 | GtkWidget * dialog = |
| ... | ... | @@ -62,20 +71,10 @@ LIB3270_EXPORT GtkWidget * v3270_dialog_new(const gchar *title, GtkWindow *paren |
| 62 | 71 | } |
| 63 | 72 | |
| 64 | 73 | GtkWidget * header = gtk_dialog_get_header_bar(GTK_DIALOG(dialog)); |
| 65 | - GtkWidget * button; | |
| 66 | 74 | |
| 67 | 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 | 79 | return dialog; |
| 81 | 80 | } | ... | ... |
src/dialogs/hostselect.c
| ... | ... | @@ -226,18 +226,19 @@ LIB3270_EXPORT GtkWidget * v3270_host_select_new(GtkWidget *widget) |
| 226 | 226 | { |
| 227 | 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 | 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 | 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 | 242 | widget->hSession = v3270_get_session(session); |
| 242 | 243 | |
| 243 | 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 | 306 | { |
| 306 | 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 | 315 | GtkWidget * dialog = v3270_host_select_new(widget); |
| 309 | 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 | 320 | gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(win))),dialog,FALSE,FALSE,2); |
| 312 | 321 | gtk_widget_show_all(dialog); |
| 313 | 322 | |
| ... | ... | @@ -323,7 +332,7 @@ LIB3270_EXPORT void v3270_select_host(GtkWidget *widget) |
| 323 | 332 | case GTK_RESPONSE_APPLY: |
| 324 | 333 | gtk_widget_set_visible(win,FALSE); |
| 325 | 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 | 336 | break; |
| 328 | 337 | |
| 329 | 338 | case GTK_RESPONSE_CANCEL: |
| ... | ... | @@ -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 | 354 | lib3270_set_hostname(widget->hSession,gtk_entry_get_text(widget->input.entry[ENTRY_HOSTNAME])); |
| 344 | 355 | lib3270_set_srvcname(widget->hSession,gtk_entry_get_text(widget->input.entry[ENTRY_SRVCNAME])); |
| 345 | - | |
| 346 | 356 | lib3270_set_host_type(widget->hSession,widget->type); |
| 347 | 357 | |
| 348 | 358 | return lib3270_reconnect(widget->hSession,0); | ... | ... |
src/include/hostselect.h
| ... | ... | @@ -59,8 +59,8 @@ |
| 59 | 59 | |
| 60 | 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 | 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 | 166 | GtkWidget * terminal = v3270_new(); |
| 167 | 167 | GValue val = G_VALUE_INIT; |
| 168 | 168 | |
| 169 | + v3270_set_url(terminal,NULL); | |
| 170 | + | |
| 169 | 171 | g_signal_connect(terminal,"field_clicked",G_CALLBACK(field_clicked),window); |
| 170 | 172 | |
| 171 | 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 | 179 | } |
| 178 | 180 | |
| 179 | 181 | /* |
| 180 | - v3270_set_url(terminal,url); | |
| 181 | 182 | v3270_connect(terminal); |
| 182 | 183 | */ |
| 183 | 184 | ... | ... |