#ifndef PREFERENCES_GUI_H #define PREFERENCES_GUI_H #include class Preferences : public Gtk::Dialog { private: Gtk::Button *button_preferences_close; // Grid behaviour Gtk::CheckButton *check_separate_port_type; Gtk::CheckButton *check_expand_clients; Gtk::CheckButton *check_expand_groups; // Session Gtk::CheckButton *check_default_location; Gtk::FileChooserButton *filechooser_custom_location; // Connections Gtk::CheckButton *check_activate_connections; Gtk::TreeView *treeview_connections; Gtk::Button *button_connections_add; Gtk::Button *button_connections_remove; Gtk::Button *button_connections_edit; Gtk::Button *button_connections_up; Gtk::Button *button_connections_down; // Aliases Gtk::CheckButton *check_activate_aliases; Gtk::TreeView *treeview_aliases; Gtk::Button *button_aliases_add; Gtk::Button *button_aliases_remove; Gtk::Button *button_aliases_edit; Gtk::Button *button_aliases_up; Gtk::Button *button_aliases_down; // Grid layout Gtk::FontButton *fontbutton_font; Gtk::SpinButton *spin_cell_padding; // Colours Gtk::ColorButton *colour_background; Gtk::ColorButton *colour_clients; Gtk::ColorButton *colour_port_groups; Gtk::ColorButton *colour_ports_audio; Gtk::ColorButton *colour_ports_midi; Gtk::ColorButton *colour_text; Gtk::ColorButton *colour_grid_client; Gtk::ColorButton *colour_grid_group; Gtk::ColorButton *colour_grid_port; public: Preferences(BaseObjectType *cobject, const Glib::RefPtr &builder); static Preferences *Open(); void Refresh(); void RefreshAliases(); protected: void on_preferences_close_click(); void on_check_separate_port_type_click(); void on_check_expand_clients_click(); void on_check_expand_groups_click(); void on_check_activate_aliases_click(); void on_button_aliases_add_click(); void on_button_aliases_remove_click(); void on_button_aliases_edit_click(); void on_button_aliases_up_click(); void on_button_aliases_down_click(); void on_fontbutton_font_click(); void on_spin_cell_padding_click(); class ModelColumns : public Gtk::TreeModel::ColumnRecord { public: ModelColumns() { add(m_row); add(m_first); add(m_second); } Gtk::TreeModelColumn m_row; Gtk::TreeModelColumn m_first; Gtk::TreeModelColumn m_second; }; ModelColumns m_columns; Glib::RefPtr m_tree_model_connections; Glib::RefPtr m_tree_model_aliases; int GetAliasRow(); }; #endif // PREFERENCES_GUI_H