20 #include <gtkmm/table.h>
21 #include <gtkmm/stock.h>
22 #include <gtkmm/alignment.h>
44 , in_row_change (false)
45 , regions_at_position (0)
46 , layering_order_model (
Gtk::ListStore::create (layering_order_columns))
47 , clock (
"layer dialog", true,
"", false, false, false)
51 set_name (
"RegionLayeringOrderEditorWindow");
60 scroller.set_policy (Gtk::POLICY_AUTOMATIC, Gtk::POLICY_AUTOMATIC);
65 Gtk::Table* scroller_table = manage (
new Gtk::Table);
66 scroller_table->set_size_request (300, 250);
67 scroller_table->attach (
scroller, 0, 1, 0, 1);
68 scroller_table->set_col_spacings (5);
69 scroller_table->set_row_spacings (5);
71 track_label.set_name (
"RegionLayeringOrderEditorLabel");
74 clock_label.set_name (
"RegionLayeringOrderEditorLabel");
81 Gtk::Table* info_table = manage (
new Gtk::Table (2, 2));
82 info_table->set_col_spacings (5);
83 info_table->set_row_spacings (5);
84 info_table->attach (
track_label, 0, 1, 0, 1, FILL, FILL);
86 info_table->attach (
clock_label, 0, 1, 1, 2, FILL, FILL);
87 info_table->attach (
clock, 1, 2, 1, 2, Gtk::AttachOptions(0), FILL);
89 Gtk::VBox* vbox = Gtk::manage (
new Gtk::VBox ());
90 vbox->set_spacing (12);
91 vbox->pack_start (*info_table,
false,
false);
92 vbox->pack_start (*scroller_table,
true,
true);
95 info_table->set_name (
"RegionLayeringOrderTable");
96 scroller_table->set_name (
"RegionLayeringOrderTable");
104 set_title (
_(
"Choose Top Region"));
121 TreeModel::iterator iter = selection->get_selected();
127 TreeModel::Row row = *iter;
130 vector<RegionView*> eq;
135 for (vector<RegionView*>::iterator i = eq.begin(); i != eq.end(); ++i) {
173 region_list.sort (cmp);
175 for (RegionSelection::const_iterator i = region_list.begin(); i != region_list.end(); ++i) {
180 if (i == region_list.begin()) {
209 bool handled =
false;
220 if (ev->keyval == GDK_Return) {
void set(framepos_t, bool force=false, ARDOUR::framecnt_t offset=0)
void set_session(ARDOUR::Session *s)
Gtk::Label track_name_label
RegionLayeringOrderEditor(PublicEditor &)
bool key_press_focus_accelerator_handler(Gtk::Window &window, GdkEventKey *ev)
virtual void get_regions_at(RegionSelection &, framepos_t where, TrackViewList const &) const =0
Representation of the interface of the Editor class.
PBD::Signal0< void > ContentsChanged
TimeAxisView * _time_axis_view
Gtk::TreeModelColumn< std::string > name
virtual void get_equivalent_regions(RegionView *rv, std::vector< RegionView * > &, PBD::PropertyID) const =0
PBD::ScopedConnection playlist_modified_connection
void set_context(const std::string &, ARDOUR::Session *, TimeAxisView *, boost::shared_ptr< ARDOUR::Playlist >, ARDOUR::framepos_t)
LayeringOrderColumns layering_order_columns
boost::shared_ptr< ARDOUR::Region > region() const
Gtk::TreeView layering_order_display
Gtk::ScrolledWindow scroller
void raise_region_to_top(boost::shared_ptr< Region >)
Glib::RefPtr< Gtk::ListStore > layering_order_model
bool operator()(RegionView *a, RegionView *b) const
LIBARDOUR_API PBD::PropertyDescriptor< framepos_t > position
bool on_key_press_event(GdkEventKey *)
uint32_t regions_at_position
LIBARDOUR_API PBD::PropertyDescriptor< bool > select
virtual bool on_key_press_event(GdkEventKey *event)
virtual ~RegionLayeringOrderEditor()
Gtk::TreeModelColumn< RegionView * > region_view