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