diff --git a/src/dialogs/colors.c b/src/dialogs/colors.c index a4cc362..a879b39 100644 --- a/src/dialogs/colors.c +++ b/src/dialogs/colors.c @@ -27,6 +27,11 @@ * */ + /** + * @brief Implements the V3270 Color selection widget. + * + */ + #include "private.h" #include #include @@ -312,7 +317,7 @@ static void load(GtkWidget G_GNUC_UNUSED(*w), GtkWidget *terminal) gtk_widget_set_vexpand(box,TRUE); gtk_widget_set_hexpand(box,TRUE); - gtk_grid_attach(GTK_GRID(widget),box,0,0,1,5); + gtk_grid_attach(GTK_GRID(widget),box,0,0,3,5); } @@ -324,7 +329,7 @@ static void load(GtkWidget G_GNUC_UNUSED(*w), GtkWidget *terminal) gtk_widget_set_sensitive(widget->colors.chooser,0); g_signal_connect(G_OBJECT(widget->colors.chooser),"color-activated",G_CALLBACK(color_activated),widget); - gtk_grid_attach(GTK_GRID(widget),widget->colors.chooser,1,0,5,5); + gtk_grid_attach(GTK_GRID(widget),widget->colors.chooser,3,0,5,5); } #else { @@ -335,16 +340,25 @@ static void load(GtkWidget G_GNUC_UNUSED(*w), GtkWidget *terminal) gtk_widget_set_sensitive(widget->colors.editor,0); g_signal_connect(G_OBJECT(widget->colors.editor),"color-changed",G_CALLBACK(color_changed),widget); - gtk_grid_attach(GTK_GRID(widget),widget->colors.editor,1,0,5,5); + gtk_grid_attach(GTK_GRID(widget),widget->colors.editor,3,0,5,5); } #endif // USE_GTK_COLOR_CHOOSER { // Create scheme selector + GtkWidget * label = gtk_label_new_with_mnemonic(_("Color _theme")); + gtk_widget_set_halign(label,GTK_ALIGN_END); + widget->colors.scheme = v3270_color_scheme_new(); - gtk_widget_set_tooltip_markup(widget->colors.scheme,_("Predefined color schemes")); - gtk_grid_attach(GTK_GRID(widget),widget->colors.scheme,0,6,6,1); + gtk_widget_set_tooltip_markup(widget->colors.scheme,_("Predefined color theme")); + + gtk_label_set_mnemonic_widget(GTK_LABEL(label),widget->colors.scheme); + + gtk_widget_set_margin_top(label,6); + gtk_widget_set_margin_top(widget->colors.scheme,6); + gtk_grid_attach(GTK_GRID(widget),label,0,6,1,1); + gtk_grid_attach(GTK_GRID(widget),widget->colors.scheme,1,6,8,1); g_signal_connect(G_OBJECT(widget->colors.scheme),"update-colors",G_CALLBACK(color_scheme_changed),widget); } diff --git a/src/dialogs/hostselect.c b/src/dialogs/hostselect.c index 5ff80af..8ed1621 100644 --- a/src/dialogs/hostselect.c +++ b/src/dialogs/hostselect.c @@ -275,15 +275,21 @@ static void oversize_changed(GtkEditable *editable, GtkWidget *settings) v3270_settings_set_valid(settings,valid); } -static void remap_file_changed(GtkEditable *editable, GtkWidget *settings) +static void remap_file_changed(GtkEditable *editable, V3270HostSelectWidget *settings) { const gchar * filename = gtk_editable_get_chars(editable,0,-1); debug("%s(%s)",__FUNCTION__,filename); if(*filename) - v3270_settings_set_valid(settings,g_file_test(filename,G_FILE_TEST_IS_REGULAR)); + { + v3270_settings_set_valid(GTK_WIDGET(settings),g_file_test(filename,G_FILE_TEST_IS_REGULAR)); + gtk_widget_set_sensitive(GTK_WIDGET(settings->input.charset),FALSE); + } else - v3270_settings_set_valid(settings,TRUE); + { + v3270_settings_set_valid(GTK_WIDGET(settings),TRUE); + gtk_widget_set_sensitive(GTK_WIDGET(settings->input.charset),TRUE); + } } @@ -302,6 +308,12 @@ static void select_remap_file(GtkEditable *editable, G_GNUC_UNUSED GtkEntryIconP gtk_window_set_deletable(GTK_WINDOW(dialog),FALSE); g_signal_connect(G_OBJECT(dialog),"close",G_CALLBACK(v3270_dialog_close),NULL); + // Setup file filter + GtkFileFilter * filter = gtk_file_filter_new(); + gtk_file_filter_set_name(filter,_("TN3270 Custom charset")); + gtk_file_filter_add_pattern(filter,"*.xml"); + gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog),filter); + // Get current file name. const gchar * filename = gtk_editable_get_chars(editable,0,-1); @@ -596,6 +608,9 @@ static void apply(GtkWidget *w, GtkWidget *terminal) g_value_unset(&value); } + + v3270_set_remap_filename(terminal, gtk_entry_get_text(widget->input.entry[ENTRY_REMAP_FILE])); + } } @@ -706,6 +721,10 @@ static void load(GtkWidget *w, GtkWidget *terminal) } + const gchar * remap_file = v3270_get_remap_filename(terminal); + gtk_entry_set_text(widget->input.entry[ENTRY_REMAP_FILE],remap_file ? remap_file : ""); + + } } -- libgit2 0.21.2