39 #include <glib/gi18n.h> 42 #if defined (HAVE_LIBSSH) && defined (HAVE_LIBVTE) 62 #define GET_OBJECT(object_name) gtk_builder_get_object(remmina_pref_dialog->builder, object_name) 75 g_return_if_fail(GTK_IS_BUTTON(widget));
78 if (arguments->
response != GTK_RESPONSE_CANCEL && arguments->
response != GTK_RESPONSE_DELETE_EVENT) {
80 gtk_button_set_label(GTK_BUTTON(widget), val);
95 gtk_window_set_transient_for(GTK_WINDOW(dialog), GTK_WINDOW(remmina_pref_dialog->
dialog));
96 gtk_dialog_run(dialog);
99 gtk_widget_destroy(GTK_WIDGET(dialog));
106 TRACE_CALL(__func__);
113 sourcepath = gtk_file_chooser_get_filename(remmina_pref_dialog->
button_term_cs);
114 source = g_file_new_for_path(sourcepath);
116 remmina_dir = g_build_path(
"/", g_get_user_config_dir(),
"remmina", NULL);
118 destpath = g_strdup_printf(
"%s/remmina.colors", remmina_dir);
119 destination = g_file_new_for_path(destpath);
121 if (g_file_test(sourcepath, G_FILE_TEST_IS_REGULAR)) {
124 G_FILE_COPY_OVERWRITE,
130 gtk_file_chooser_set_file(remmina_pref_dialog->
button_term_cs, source, NULL);
135 g_object_unref(source);
140 TRACE_CALL(__func__);
144 dialog = GTK_DIALOG(gtk_message_dialog_new(GTK_WINDOW(remmina_pref_dialog->
dialog),
145 GTK_DIALOG_MODAL, GTK_MESSAGE_INFO, GTK_BUTTONS_OK,
146 _(
"Recent lists cleared.")));
147 gtk_dialog_run(dialog);
148 gtk_widget_destroy(GTK_WIDGET(dialog));
154 TRACE_CALL(__func__);
159 gtk_window_set_transient_for(GTK_WINDOW(dialog), GTK_WINDOW(remmina_pref_dialog->
dialog));
160 gtk_dialog_run(dialog);
163 gtk_widget_destroy(GTK_WIDGET(dialog));
168 TRACE_CALL(__func__);
170 gtk_widget_set_sensitive(GTK_WIDGET(remmina_pref_dialog->
entry_grab_color), gtk_switch_get_active(widget));
176 TRACE_CALL(__func__);
178 if (gtk_switch_get_active(sw)) {
180 gchar *unlock_password = NULL;
186 if (unlock_password == NULL || unlock_password[0] ==
'\0') {
196 g_free(unlock_password), unlock_password = NULL;
209 TRACE_CALL(__func__);
210 gtk_widget_destroy(GTK_WIDGET(remmina_pref_dialog->
dialog));
217 TRACE_CALL(__func__);
218 gtk_widget_destroy(GTK_WIDGET(remmina_pref_dialog->
dialog));
223 TRACE_CALL(__func__);
226 gboolean rebuild_remmina_icon = FALSE;
273 #if SODIUM_VERSION_INT >= 90200 294 rebuild_remmina_icon = TRUE;
303 rebuild_remmina_icon = TRUE;
311 if (rebuild_remmina_icon) {
341 gtk_color_chooser_get_rgba(GTK_COLOR_CHOOSER(remmina_pref_dialog->
colorbutton_cursor), &color);
349 gtk_color_chooser_get_rgba(GTK_COLOR_CHOOSER(remmina_pref_dialog->
colorbutton_colorBD), &color);
351 gtk_color_chooser_get_rgba(GTK_COLOR_CHOOSER(remmina_pref_dialog->
colorbutton_color0), &color);
353 gtk_color_chooser_get_rgba(GTK_COLOR_CHOOSER(remmina_pref_dialog->
colorbutton_color1), &color);
355 gtk_color_chooser_get_rgba(GTK_COLOR_CHOOSER(remmina_pref_dialog->
colorbutton_color2), &color);
357 gtk_color_chooser_get_rgba(GTK_COLOR_CHOOSER(remmina_pref_dialog->
colorbutton_color3), &color);
359 gtk_color_chooser_get_rgba(GTK_COLOR_CHOOSER(remmina_pref_dialog->
colorbutton_color4), &color);
361 gtk_color_chooser_get_rgba(GTK_COLOR_CHOOSER(remmina_pref_dialog->
colorbutton_color5), &color);
363 gtk_color_chooser_get_rgba(GTK_COLOR_CHOOSER(remmina_pref_dialog->
colorbutton_color6), &color);
365 gtk_color_chooser_get_rgba(GTK_COLOR_CHOOSER(remmina_pref_dialog->
colorbutton_color7), &color);
367 gtk_color_chooser_get_rgba(GTK_COLOR_CHOOSER(remmina_pref_dialog->
colorbutton_color8), &color);
369 gtk_color_chooser_get_rgba(GTK_COLOR_CHOOSER(remmina_pref_dialog->
colorbutton_color9), &color);
371 gtk_color_chooser_get_rgba(GTK_COLOR_CHOOSER(remmina_pref_dialog->
colorbutton_color10), &color);
373 gtk_color_chooser_get_rgba(GTK_COLOR_CHOOSER(remmina_pref_dialog->
colorbutton_color11), &color);
375 gtk_color_chooser_get_rgba(GTK_COLOR_CHOOSER(remmina_pref_dialog->
colorbutton_color12), &color);
377 gtk_color_chooser_get_rgba(GTK_COLOR_CHOOSER(remmina_pref_dialog->
colorbutton_color13), &color);
379 gtk_color_chooser_get_rgba(GTK_COLOR_CHOOSER(remmina_pref_dialog->
colorbutton_color14), &color);
381 gtk_color_chooser_get_rgba(GTK_COLOR_CHOOSER(remmina_pref_dialog->
colorbutton_color15), &color);
394 remmina_pref_dialog->
dialog = NULL;
399 TRACE_CALL(__func__);
406 widget = gtk_label_new(pref_plugin->
pref_label);
407 gtk_widget_set_halign(widget, GTK_ALIGN_START);
408 gtk_widget_show(widget);
410 vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
411 gtk_widget_show(vbox);
412 gtk_notebook_append_page(GTK_NOTEBOOK(remmina_pref_dialog->
notebook_preferences), vbox, widget);
415 gtk_box_pack_start(GTK_BOX(vbox), widget, FALSE, FALSE, 0);
422 TRACE_CALL(__func__);
423 gtk_widget_set_sensitive(GTK_WIDGET(remmina_pref_dialog->
fontbutton_terminal_font), !gtk_switch_get_active(widget));
428 TRACE_CALL(__func__);
431 b = !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(widget));
442 gtk_button_set_label(button, val);
449 TRACE_CALL(__func__);
453 #if !defined (HAVE_LIBSSH) || !defined (HAVE_LIBVTE) 457 #if !defined (HAVE_LIBVTE) 458 align = GTK_WIDGET(GET_OBJECT(
"alignment_terminal"));
459 gtk_widget_set_sensitive(align, FALSE);
462 #if !defined (HAVE_LIBSSH) 463 align = GTK_WIDGET(GET_OBJECT(
"alignment_ssh"));
464 gtk_widget_set_sensitive(align, FALSE);
469 #if SODIUM_VERSION_INT >= 90200 475 gtk_widget_set_sensitive(GTK_WIDGET(remmina_pref_dialog->
unlock_timeout), TRUE);
483 gtk_widget_set_sensitive(GTK_WIDGET(remmina_pref_dialog->
unlock_timeout), FALSE);
516 #ifdef HAVE_LIBAPPINDICATOR 565 gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(remmina_pref_dialog->
colorbutton_cursor), &color);
575 gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(remmina_pref_dialog->
colorbutton_colorBD), &color);
578 gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(remmina_pref_dialog->
colorbutton_color0), &color);
580 gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(remmina_pref_dialog->
colorbutton_color1), &color);
582 gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(remmina_pref_dialog->
colorbutton_color2), &color);
584 gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(remmina_pref_dialog->
colorbutton_color3), &color);
586 gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(remmina_pref_dialog->
colorbutton_color4), &color);
588 gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(remmina_pref_dialog->
colorbutton_color5), &color);
590 gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(remmina_pref_dialog->
colorbutton_color6), &color);
592 gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(remmina_pref_dialog->
colorbutton_color7), &color);
594 gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(remmina_pref_dialog->
colorbutton_color8), &color);
596 gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(remmina_pref_dialog->
colorbutton_color9), &color);
598 gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(remmina_pref_dialog->
colorbutton_color10), &color);
600 gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(remmina_pref_dialog->
colorbutton_color11), &color);
602 gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(remmina_pref_dialog->
colorbutton_color12), &color);
604 gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(remmina_pref_dialog->
colorbutton_color13), &color);
606 gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(remmina_pref_dialog->
colorbutton_color14), &color);
608 gtk_color_chooser_set_rgba(GTK_COLOR_CHOOSER(remmina_pref_dialog->
colorbutton_color15), &color);
609 #if defined (HAVE_LIBSSH) && defined (HAVE_LIBVTE) 610 #if !VTE_CHECK_VERSION(0, 38, 0) 639 #if SODIUM_VERSION_INT >= 90200 688 g_object_set_data(G_OBJECT(remmina_pref_dialog->
dialog),
"tag",
"remmina-pref-dialog");
695 TRACE_CALL(__func__);
696 GSimpleActionGroup *actions;
697 GtkAccelGroup *accel_group = NULL;
703 remmina_pref_dialog->
dialog = GTK_WIDGET(gtk_builder_get_object(remmina_pref_dialog->
builder,
"RemminaPrefDialog"));
705 gtk_window_set_transient_for(GTK_WINDOW(remmina_pref_dialog->
dialog), parent);
717 remmina_pref_dialog->
unlock_timeout = GTK_ENTRY(GET_OBJECT(
"unlock_timeout"));
745 remmina_pref_dialog->
entry_grab_color = GTK_ENTRY(GET_OBJECT(
"entry_grab_color"));
785 remmina_pref_dialog->
colorbutton_cursor = GTK_COLOR_BUTTON(GET_OBJECT(
"colorbutton_cursor"));
790 remmina_pref_dialog->
colorbutton_colorBD = GTK_COLOR_BUTTON(GET_OBJECT(
"colorbutton_colorBD"));
792 remmina_pref_dialog->
colorbutton_color0 = GTK_COLOR_BUTTON(GET_OBJECT(
"colorbutton_color0"));
793 remmina_pref_dialog->
colorbutton_color1 = GTK_COLOR_BUTTON(GET_OBJECT(
"colorbutton_color1"));
794 remmina_pref_dialog->
colorbutton_color2 = GTK_COLOR_BUTTON(GET_OBJECT(
"colorbutton_color2"));
795 remmina_pref_dialog->
colorbutton_color3 = GTK_COLOR_BUTTON(GET_OBJECT(
"colorbutton_color3"));
796 remmina_pref_dialog->
colorbutton_color4 = GTK_COLOR_BUTTON(GET_OBJECT(
"colorbutton_color4"));
797 remmina_pref_dialog->
colorbutton_color5 = GTK_COLOR_BUTTON(GET_OBJECT(
"colorbutton_color5"));
798 remmina_pref_dialog->
colorbutton_color6 = GTK_COLOR_BUTTON(GET_OBJECT(
"colorbutton_color6"));
799 remmina_pref_dialog->
colorbutton_color7 = GTK_COLOR_BUTTON(GET_OBJECT(
"colorbutton_color7"));
801 remmina_pref_dialog->
colorbutton_color8 = GTK_COLOR_BUTTON(GET_OBJECT(
"colorbutton_color8"));
802 remmina_pref_dialog->
colorbutton_color9 = GTK_COLOR_BUTTON(GET_OBJECT(
"colorbutton_color9"));
803 remmina_pref_dialog->
colorbutton_color10 = GTK_COLOR_BUTTON(GET_OBJECT(
"colorbutton_color10"));
804 remmina_pref_dialog->
colorbutton_color11 = GTK_COLOR_BUTTON(GET_OBJECT(
"colorbutton_color11"));
805 remmina_pref_dialog->
colorbutton_color12 = GTK_COLOR_BUTTON(GET_OBJECT(
"colorbutton_color12"));
806 remmina_pref_dialog->
colorbutton_color13 = GTK_COLOR_BUTTON(GET_OBJECT(
"colorbutton_color13"));
807 remmina_pref_dialog->
colorbutton_color14 = GTK_COLOR_BUTTON(GET_OBJECT(
"colorbutton_color14"));
808 remmina_pref_dialog->
colorbutton_color15 = GTK_COLOR_BUTTON(GET_OBJECT(
"colorbutton_color15"));
809 #if defined (HAVE_LIBSSH) && defined (HAVE_LIBVTE) 810 #if VTE_CHECK_VERSION(0, 38, 0) 811 const gchar *remmina_dir;
813 remmina_dir = g_build_path(
"/", g_get_user_config_dir(),
"remmina", NULL);
814 destpath = g_strdup_printf(
"%s/remmina.colors", remmina_dir);
815 remmina_pref_dialog->
button_term_cs = GTK_FILE_CHOOSER(GET_OBJECT(
"button_term_cs"));
816 const gchar *fc_tooltip_text = g_strconcat(_(
"Picking a terminal colouring file replaces the file: "),
820 _(
"This file contains the “Custom” terminal colour scheme selectable from the “Advanced” tab of terminal connections and editable in the “Terminal” tab in the settings."),
822 gtk_widget_set_tooltip_text(GTK_WIDGET(remmina_pref_dialog->
button_term_cs), fc_tooltip_text);
823 gtk_file_chooser_set_current_folder(GTK_FILE_CHOOSER(remmina_pref_dialog->
button_term_cs), REMMINA_RUNTIME_TERM_CS_DIR);
828 actions = g_simple_action_group_new();
830 gtk_widget_insert_action_group(GTK_WIDGET(remmina_pref_dialog->
dialog),
"pref", G_ACTION_GROUP(actions));
832 g_object_unref(actions);
834 accel_group = gtk_accel_group_new();
835 gtk_window_add_accel_group(GTK_WINDOW(remmina_pref_dialog->
dialog), accel_group);
836 gtk_accel_group_connect(accel_group, GDK_KEY_Q, GDK_CONTROL_MASK, 0,
840 gtk_builder_connect_signals(remmina_pref_dialog->
builder, NULL);
846 return remmina_pref_dialog->
dialog;
851 if (!remmina_pref_dialog)
853 return remmina_pref_dialog->
dialog;
guint shortcutkey_fullscreen
GtkDialog * remmina_string_list_new(gboolean two_columns, const gchar *fields_separator)
guint vte_shortcutkey_search_text
GtkButton * button_keyboard_select_all
static gboolean remmina_pref_dialog_add_pref_plugin(gchar *name, RemminaPlugin *plugin, gpointer user_data)
GtkColorButton * colorbutton_color2
guint shortcutkey_minimize
GtkColorButton * colorbutton_color14
GtkColorButton * colorbutton_highlight_foreground
GtkButton * button_keyboard_grab_keyboard
RemminaKeyChooserArguments * remmina_key_chooser_new(GtkWindow *parent_window, gboolean use_modifiers)
guint vte_shortcutkey_increase_font
static void remmina_pref_dialog_set_button_label(GtkButton *button, guint keyval)
GtkComboBox * comboboxtext_appearance_fullscreen_toolbar_visibility
void remmina_string_list_set_validation_func(RemminaStringListValidationFunc func)
GtkButton * button_keyboard_paste
void remmina_main_reload_preferences()
GtkButton * button_options_recent_items_clear
GtkEntry * entry_options_screenshot_name
guint shortcutkey_screenshot
guint shortcutkey_prevtab
gboolean use_primary_password
GtkSwitch * switch_security_audit
static void remmina_pref_dialog_init(void)
void remmina_plugin_manager_for_each_plugin(RemminaPluginType type, RemminaPluginFunc func, gpointer data)
GtkEntry * entry_options_file_name
GtkCheckButton * checkbutton_appearance_fullscreen_on_auto
GtkLabel * label_terminal_foreground
GtkSwitch * switch_options_confirm_close
GtkButton * button_keyboard_fullscreen
GtkCheckButton * checkbutton_options_save_settings
GtkButton * button_keyboard_toolbar
GtkButton * button_keyboard_disconnect
void remmina_pref_dialog_vte_font_on_toggled(GtkSwitch *widget, RemminaPrefDialog *dialog)
GtkEntry * entry_options_recent_items
guint vte_shortcutkey_copy
GtkEntry * entry_options_ssh_tcp_usrtimeout
void remmina_pref_dialog_disable_tray_icon_on_toggled(GtkWidget *widget, RemminaPrefDialog *dialog)
gboolean remmina_public_resolution_validation_func(const gchar *new_str, gchar **error)
GtkSwitch * switch_terminal_bold
guint shortcutkey_autofit
GtkCheckButton * checkbutton_dark_theme
GtkColorButton * colorbutton_color6
void remmina_icon_populate_menu(void)
GtkLabel * label_terminal_normal_colors
GtkSwitch * switch_security_use_primary_password
GtkSwitch * switch_options_remember_last_view_mode
GtkFontButton * fontbutton_terminal_font
GtkColorButton * colorbutton_color3
gchar * highlight_foreground
GtkColorButton * colorbutton_color15
gboolean remmina_passwd(GtkWindow *parent, gchar **unlock_password)
void remmina_pref_set_value(const gchar *key, const gchar *value)
gboolean deny_screenshot_clipboard
guint vte_shortcutkey_select_all
GtkCheckButton * checkbutton_appearance_hide_searchbar
GtkCheckButton * checkbutton_appearance_hide_toolbar
void remmina_pref_on_dialog_destroy(GtkWidget *widget, gpointer user_data)
GtkSwitch * switch_security_lock_edit
void remmina_pref_on_color_scheme_selected(GtkWidget *widget, gpointer user_data)
GtkButton * button_keyboard_copy
GtkEntry * entry_options_ssh_tcp_keepintvl
GtkColorButton * colorbutton_cursor_foreground
GtkSwitch * switch_security_lock_view_passwords
GtkEntry * entry_options_ssh_port
gboolean vte_allow_bold_text
GtkFileChooser * filechooserbutton_options_screenshots_path
GtkEntry * entry_options_ssh_tcp_keepidle
gchar * remmina_pref_get_value(const gchar *key)
gboolean disable_tray_icon
GtkEntry * entry_scrollback_lines
GtkColorButton * colorbutton_color4
gboolean lock_view_passwords
GtkButton * button_keyboard_search_text
guint shortcutkey_multimon
void remmina_prefdiag_on_use_password_activated(GtkSwitch *sw, gpointer user_data)
void remmina_pref_dialog_on_key_chooser(GtkWidget *widget, gpointer user_data)
const gchar * screenshot_path
void remmina_icon_init(void)
GtkButton * button_keyboard_screenshot
GtkButton * button_keyboard_viewonly
GtkCheckButton * checkbutton_applet_new_connection_on_top
GtkSwitch * switch_terminal_font_system
GtkButton * button_keyboard_clipboard
GtkColorButton * colorbutton_color13
GtkSwitch * switch_security_trust_all
GtkColorButton * colorbutton_color5
guint vte_shortcutkey_decrease_font
GtkEntry * entry_options_ssh_tcp_keepcnt
GtkNotebook * notebook_preferences
GtkSwitch * switch_security_lock_connect
GtkComboBox * comboboxtext_security_enc_method
const gchar * unlock_password
guint vte_shortcutkey_paste
GtkEntry * entry_grab_color
GtkEntry * unlock_timeout
guint shortcutkey_disconnect
GtkButton * button_keyboard_decrease_font
GtkButton * button_keyboard_switch_tab_left
void remmina_pref_dialog_on_close_clicked(GtkWidget *widget, RemminaPrefDialog *dialog)
GtkCheckButton * checkbutton_applet_start_in_tray
GtkButton * button_keyboard_auto_fit
GtkLabel * label_terminal_background
GtkFileChooser * button_term_cs
GtkColorButton * colorbutton_color0
GtkComboBox * comboboxtext_options_scale_quality
GtkEntry * entry_options_scroll
GtkCheckButton * checkbutton_appearance_show_tabs
gboolean remmina_icon_is_autostart(void)
GtkBuilder * remmina_public_gtk_builder_new_from_resource(gchar *resource)
GtkColorButton * colorbutton_foreground
static RemminaPrefDialog * remmina_pref_dialog
guint shortcutkey_clipboard
gchar * remmina_file_get_datadir(void)
Return datadir_path from pref or first found data dir as per XDG specs.
GtkColorButton * colorbutton_color11
GtkButton * button_keyboard_host_key
void remmina_string_list_set_text(const gchar *text, const gboolean clear_data)
GtkColorButton * colorbutton_highlight
void remmina_pref_clear_recent(void)
GtkComboBox * comboboxtext_appearance_tab_interface
guint shortcutkey_nexttab
void remmina_prefdiag_on_grab_color_activated(GtkSwitch *widget, gpointer user_data)
gboolean applet_hide_count
GtkCheckButton * checkbutton_appearance_show_notes
GtkCheckButton * checkbutton_applet_disable_tray
GtkComboBox * comboboxtext_options_ssh_loglevel
void remmina_string_list_set_titles(gchar *title1, gchar *title2)
GtkWidget *(* get_pref_body)(struct _RemminaPrefPlugin *instance)
GtkLabel * label_terminal_cursor_color
GtkLabel * label_terminal_bold_color
GtkButton * button_keyboard_multimon
const gchar * remmina_file_name
void remmina_pref_init(void)
GtkColorButton * colorbutton_colorBD
guint shortcutkey_toolbar
void remmina_pref_on_button_resolutions_clicked(GtkWidget *widget, gpointer user_data)
static GActionEntry pref_actions[]
GtkComboBox * comboboxtext_options_double_click
void remmina_pref_on_button_keystrokes_clicked(GtkWidget *widget, gpointer user_data)
gboolean remmina_pref_save(void)
gboolean applet_new_ontop
const gchar * screenshot_name
GtkButton * button_keyboard_minimize
gboolean hide_connection_toolbar
GtkCheckButton * checkbutton_options_ssh_parseconfig
const gchar * datadir_path
GtkSwitch * switch_options_deny_screenshot_clipboard
void remmina_pref_dialog_clear_recent(GtkWidget *widget, gpointer user_data)
GtkCheckButton * checkbutton_applet_hide_totals
GtkColorButton * colorbutton_color10
void remmina_pref_dialog_on_action_close(GSimpleAction *action, GVariant *param, gpointer data)
GtkButton * button_keyboard_switch_tab_right
GtkComboBox * comboboxtext_appearance_view_mode
GtkButton * button_keyboard_increase_font
GtkButton * button_keyboard_scaled
gchar * cursor_foreground
GtkColorButton * colorbutton_color8
GtkColorButton * colorbutton_background
gboolean always_show_notes
GtkColorButton * colorbutton_cursor
GtkColorButton * colorbutton_color7
void remmina_icon_set_autostart(gboolean autostart)
RemminaColorPref color_pref
guint shortcutkey_viewonly
GtkWidget * remmina_pref_dialog_new(gint default_tab, GtkWindow *parent)
RemminaPrefDialogPriv * priv
gboolean fullscreen_on_auto
GtkWidget * remmina_pref_dialog_get_dialog()
GtkColorButton * colorbutton_color9
GtkLabel * label_terminal_bright_colors
GtkSwitch * switch_appearance_grab_color
gint fullscreen_toolbar_visibility
GtkColorButton * colorbutton_color12
GtkFileChooser * filechooserbutton_options_datadir_path
GtkColorButton * colorbutton_color1
guint remmina_key_chooser_get_keyval(const gchar *value)
gboolean grab_color_switch
gchar * remmina_key_chooser_get_value(guint keyval, guint state)
gchar * remmina_string_list_get_text(void)