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 |