diff --git a/src/filetransfer/v3270ft.c b/src/filetransfer/v3270ft.c index 70251fe..68debed 100644 --- a/src/filetransfer/v3270ft.c +++ b/src/filetransfer/v3270ft.c @@ -352,7 +352,6 @@ static void v3270ft_init(v3270ft *dialog) { // Initialize gtk_window_set_title(GTK_WINDOW(dialog),_( "3270 File transfer")); gtk_window_set_resizable(GTK_WINDOW(dialog),FALSE); - gtk_container_set_border_width(GTK_CONTAINER(box),18); dialog->files = dialog->active = g_list_append(NULL,v3270ft_create_entry()); // Buttons @@ -476,50 +475,72 @@ static void v3270ft_init(v3270ft *dialog) { }; #if HAVE_GTK_HEADER_BAR - widget = gtk_dialog_get_header_bar(GTK_DIALOG(dialog)); + { + gboolean use_header; + g_object_get(gtk_settings_get_default(), "gtk-dialogs-use-header", &use_header, NULL); - for(f=0;f< (int) G_N_ELEMENTS(action);f++) { + if(use_header) { + widget = gtk_dialog_get_header_bar(GTK_DIALOG(dialog)); + } else { + widget = NULL; + } - GtkWidget *button = gtk_button_new_from_icon_name(action[f].name,GTK_ICON_SIZE_BUTTON); + } +#else + widget = NULL; +#endif // HAVE_GTK_HEADER_BAR - gtk_widget_set_tooltip_markup(button,g_dgettext(GETTEXT_PACKAGE,action[f].tooltip)); + if(widget) { - if(action[f].start) { - gtk_header_bar_pack_start(GTK_HEADER_BAR(widget),button); - } else { - gtk_header_bar_pack_end(GTK_HEADER_BAR(widget),button); - } + gtk_container_set_border_width(GTK_CONTAINER(box),18); - g_signal_connect(button,"clicked",action[f].callback,dialog); + for(f=0;f< (int) G_N_ELEMENTS(action);f++) { - dialog->button[action[f].id] = button; - gtk_widget_set_sensitive(button,FALSE); + GtkWidget *button = gtk_button_new_from_icon_name(action[f].name,GTK_ICON_SIZE_BUTTON); - } + gtk_widget_set_tooltip_markup(button,g_dgettext(GETTEXT_PACKAGE,action[f].tooltip)); -#else + if(action[f].start) { + gtk_header_bar_pack_start(GTK_HEADER_BAR(widget),button); + } else { + gtk_header_bar_pack_end(GTK_HEADER_BAR(widget),button); + } - widget = gtk_toolbar_new(); - gtk_toolbar_set_icon_size(GTK_TOOLBAR(widget),GTK_ICON_SIZE_SMALL_TOOLBAR); + g_signal_connect(button,"clicked",action[f].callback,dialog); - gtk_box_pack_start(box,GTK_WIDGET(widget),FALSE,FALSE,2); + dialog->button[action[f].id] = button; + gtk_widget_set_sensitive(button,FALSE); - for(f=0;fbutton[action[f].id] = button; - gtk_widget_set_sensitive(button,FALSE); + GtkWidget *button = GTK_WIDGET(gtk_tool_button_new(gtk_image_new_from_icon_name(action[f].name,GTK_ICON_SIZE_SMALL_TOOLBAR),NULL)); - } + gtk_widget_set_tooltip_markup(button,g_dgettext(GETTEXT_PACKAGE,action[f].tooltip)); -#endif + gtk_toolbar_insert(GTK_TOOLBAR(widget),GTK_TOOL_ITEM(button),-1); + + g_signal_connect(button,"clicked",action[f].callback,dialog); + + dialog->button[action[f].id] = button; + gtk_widget_set_sensitive(button,FALSE); + } + + // Create inner box + widget = gtk_box_new(GTK_ORIENTATION_VERTICAL,0); + gtk_box_pack_start(box,widget,TRUE,TRUE,0); + gtk_container_set_border_width(GTK_CONTAINER(widget),18); + box = GTK_BOX(widget); + + } gtk_widget_set_sensitive(dialog->button[FT_BUTTON_LOAD_LIST],TRUE); gtk_widget_set_sensitive(dialog->button[FT_BUTTON_REMOVE_FILE],TRUE); @@ -703,7 +724,28 @@ static void v3270ft_init(v3270ft *dialog) { */ LIB3270_EXPORT GtkWidget * v3270ft_new(GtkWidget *parent) { - GtkWidget * dialog = GTK_WIDGET(g_object_new(GTK_TYPE_V3270FT, "use-header-bar", (gint) 1, NULL)); +#if GTK_CHECK_VERSION(3,12,0) + + gboolean use_header; + g_object_get(gtk_settings_get_default(), "gtk-dialogs-use-header", &use_header, NULL); + + GtkWidget * dialog = + GTK_WIDGET(g_object_new( + GTK_TYPE_V3270FT, + "use-header-bar", (use_header ? 1 : 0), + NULL + )); + +#else + + GtkWidget * dialog = + GTK_WIDGET(g_object_new( + GTK_TYPE_V3270FT, + NULL + )); + +#endif + gtk_window_set_transient_for(GTK_WINDOW(dialog),GTK_WINDOW(gtk_widget_get_toplevel(parent))); return dialog; diff --git a/src/testprogram/toolbar.c b/src/testprogram/toolbar.c index 22d80ee..1d742eb 100644 --- a/src/testprogram/toolbar.c +++ b/src/testprogram/toolbar.c @@ -117,6 +117,7 @@ { // v3270_error_popup(terminal,"title","summary","body"); + /* { GtkWidget * dialog = v3270_dialog_new_with_buttons("Testing dialog", terminal, "Ok", GTK_RESPONSE_OK, "Cancel", GTK_RESPONSE_CANCEL, NULL); @@ -126,6 +127,7 @@ gtk_widget_show_all(dialog); } + */ /* @@ -156,24 +158,25 @@ v3270_ft_activity_set_options(activity,LIB3270_FT_OPTION_RECEIVE|LIB3270_FT_OPTION_ASCII|LIB3270_FT_OPTION_REMAP); */ - /* - // - // Test settings dialog - // - // GtkWidget * dialog = v3270_ft_settings_dialog_new(terminal); - // v3270_ft_settings_dialog_append_activity(dialog,activity,NULL); - // - // V5.1 dialog - // - GtkWidget *dialog = v3270ft_new(GTK_WIDGET(button)); - */ + { + // + // Test V3270 FT Dialog + // + // + // GtkWidget * dialog = v3270_ft_settings_dialog_new(terminal); + // v3270_ft_settings_dialog_append_activity(dialog,activity,NULL); + + // + // V5.1 dialog + // + GtkWidget *dialog = v3270ft_new(GTK_WIDGET(button)); + + g_signal_connect(dialog,"response",G_CALLBACK(gtk_widget_destroy),NULL); + gtk_widget_show_all(dialog); + + } - /* - gtk_widget_show_all(dialog); - gtk_dialog_run(GTK_DIALOG(dialog)); - gtk_widget_destroy(dialog); - */ } -- libgit2 0.21.2