22 #ifndef _ardour_gtk_route_list_base_h_
23 #define _ardour_gtk_route_list_base_h_
27 #include <ytkmm/liststore.h>
28 #include <ytkmm/scrolledwindow.h>
29 #include <ytkmm/treemodel.h>
30 #include <ytkmm/treestore.h>
31 #include <ytkmm/treeview.h>
67 void setup_col (Gtk::TreeViewColumn*,
const char*,
const char*,
bool require_mod_to_edit =
false);
69 template <
class T,
class U>
70 Gtk::TreeViewColumn*
append_toggle (Gtk::TreeModelColumn<T>
const& col_state, Gtk::TreeModelColumn<U>
const& col_viz, sigc::slot<void, std::string> cb)
72 Gtk::TreeViewColumn* tvc = manage (
new Gtk::TreeViewColumn (
"", col_state));
73 tvc->set_fixed_width (30);
74 tvc->set_sizing (Gtk::TREE_VIEW_COLUMN_FIXED);
75 tvc->set_expand (
false);
76 tvc->set_alignment (Gtk::ALIGN_CENTER);
78 Gtk::CellRendererToggle* tc =
dynamic_cast<Gtk::CellRendererToggle*
> (tvc->get_first_cell ());
79 tc->property_activatable () =
true;
80 tc->property_radio () =
false;
81 tc->signal_toggled ().connect (cb);
83 tvc->add_attribute (tc->property_visible (), col_viz);
90 template <
class T,
class U>
94 Gtk::TreeViewColumn* tvc;
99 tvc = manage (
new Gtk::TreeViewColumn (lbl, *cell));
101 tvc->add_attribute (cell->property_visible (), col_viz);
102 tvc->set_sizing (Gtk::TREE_VIEW_COLUMN_FIXED);
103 tvc->set_alignment (Gtk::ALIGN_CENTER);
104 tvc->set_expand (
false);
105 tvc->set_fixed_width (24);
148 Gtk::TreeModelColumn<std::string>
text;
160 Gtk::TreeModelColumn<std::shared_ptr<ARDOUR::Stripable>>
stripable;
186 void reordered (Gtk::TreeModel::Path
const&, Gtk::TreeModel::iterator
const&,
int*);
201 void name_edit (std::string
const&, std::string
const&);
203 bool select_function (
const Glib::RefPtr<Gtk::TreeModel>& model,
const Gtk::TreeModel::Path& path,
bool);
SignalChanged & signal_changed()
Glib::PropertyProxy< uint32_t > property_state()
void on_tv_rec_enable_changed(std::string const &)
void on_tv_solo_enable_toggled(std::string const &)
bool button_release(GdkEventButton *)
void append_col_rec_enable()
bool button_press(GdkEventButton *)
void on_tv_active_changed(std::string const &)
bool select_function(const Glib::RefPtr< Gtk::TreeModel > &model, const Gtk::TreeModel::Path &path, bool)
bool focus_out(GdkEventFocus *)
bool key_press(GdkEventKey *ev)
void name_edit(std::string const &, std::string const &)
bool enter_notify(GdkEventCrossing *)
void on_tv_mute_enable_toggled(std::string const &)
void on_tv_input_active_changed(std::string const &)
void set_all_audio_midi_visibility(int, bool)
void show_tracks_with_regions_at_playhead()
void on_tv_trigger_changed(std::string const &)
bool _column_does_not_select
void setup_col(Gtk::TreeViewColumn *, const char *, const char *, bool require_mod_to_edit=false)
void add_routes(ARDOUR::RouteList &)
bool _ignore_visibility_change
std::set< Gtk::TreeViewColumn * > no_select_columns
bool leave_notify(GdkEventCrossing *)
void remove_strip(std::weak_ptr< ARDOUR::Stripable >)
void on_tv_solo_safe_toggled(std::string const &)
void update_input_active_display()
sigc::connection _idle_update_connection
PBD::ScopedConnectionList _stripable_connections
void append_col_input_active()
void presentation_info_changed(PBD::PropertyChange const &)
Gtk::ScrolledWindow _scroller
bool _route_deletion_in_progress
void sync_presentation_info_from_treeview()
void on_tv_solo_isolate_toggled(std::string const &)
void reordered(Gtk::TreeModel::Path const &, Gtk::TreeModel::iterator const &, int *)
bool focus_in(GdkEventFocus *)
Glib::RefPtr< Gtk::ListStore > _model
void route_property_changed(const PBD::PropertyChange &, std::weak_ptr< ARDOUR::Stripable >)
void sync_treeview_from_presentation_info(PBD::PropertyChange const &)
Gtk::TreeViewColumn * append_toggle(Gtk::TreeModelColumn< T > const &col_state, Gtk::TreeModelColumn< U > const &col_viz, sigc::slot< void, std::string > cb)
void append_col_rec_safe()
void on_tv_rec_safe_toggled(std::string const &)
bool get_relevant_routes(std::shared_ptr< ARDOUR::RouteList > rl)
void add_masters(ARDOUR::VCAList &)
Gtkmm2ext::CellRendererPixbufMulti * append_cell(const char *lbl, const char *tip, Gtk::TreeModelColumn< T > const &col_state, Gtk::TreeModelColumn< U > const &col_viz, sigc::slot< void, std::string > cb)
bool _ignore_selection_change
bool idle_update_mute_rec_solo_etc()
void on_tv_visible_changed(std::string const &)
Gtk::CellEditable * name_editable
void row_deleted(Gtk::TreeModel::Path const &)
void name_edit_started(Gtk::CellEditable *, const Glib::ustring &)
void add_stripables(ARDOUR::StripableList &)
void set_session(ARDOUR::Session *)
std::list< std::shared_ptr< Stripable > > StripableList
std::list< std::shared_ptr< VCA > > VCAList
std::list< std::shared_ptr< Route > > RouteList
Gtk::TreeModelColumn< bool > active
Gtk::TreeModelColumn< bool > trigger
Gtk::TreeModelColumn< bool > is_input_active
Gtk::TreeModelColumn< bool > is_midi
Gtk::TreeModelColumn< uint32_t > mute_state
Gtk::TreeModelColumn< uint32_t > solo_isolate_state
Gtk::TreeModelColumn< bool > solo_visible
Gtk::TreeModelColumn< uint32_t > solo_state
Gtk::TreeModelColumn< bool > is_track
Gtk::TreeModelColumn< std::shared_ptr< ARDOUR::Stripable > > stripable
Gtk::TreeModelColumn< uint32_t > solo_safe_state
Gtk::TreeModelColumn< bool > activatable
Gtk::TreeModelColumn< bool > noop_true
Gtk::TreeModelColumn< bool > solo_lock_iso_visible
Gtk::TreeModelColumn< uint32_t > rec_state
Gtk::TreeModelColumn< std::string > text
Gtk::TreeModelColumn< bool > name_editable
Gtk::TreeModelColumn< uint32_t > rec_safe
Gtk::TreeModelColumn< bool > visible