+ RegionEditor (ARDOUR::Session*, boost::shared_ptr<ARDOUR::Region>);
+ virtual ~RegionEditor ();
+
+ protected:
+ virtual void region_changed (const PBD::PropertyChange&);
+
+ Gtk::Table _table;
+ int _table_row;
+
+ private:
+ boost::shared_ptr<ARDOUR::Region> _region;
+
+ void connect_editor_events ();
+
+ Gtk::Label name_label;
+ Gtk::Entry name_entry;
+ Gtk::ToggleButton audition_button;
+
+ Gtk::Label position_label;
+ Gtk::Label end_label;
+ Gtk::Label length_label;
+ Gtk::Label sync_relative_label;
+ Gtk::Label sync_absolute_label;
+ Gtk::Label start_label;
+
+ ClockGroup* _clock_group;
+
+ AudioClock position_clock;
+ AudioClock end_clock;
+ AudioClock length_clock;
+ AudioClock sync_offset_relative_clock; ///< sync offset relative to the start of the region
+ AudioClock sync_offset_absolute_clock; ///< sync offset relative to the start of the timeline
+ AudioClock start_clock;
+
+ PBD::ScopedConnection state_connection;
+ PBD::ScopedConnection audition_connection;
+
+ void bounds_changed (const PBD::PropertyChange&);
+ void name_changed ();
+
+ void audition_state_changed (bool);
+
+ void activation ();
+
+ void name_entry_changed ();
+ void position_clock_changed ();
+ void end_clock_changed ();
+ void length_clock_changed ();
+ void sync_offset_absolute_clock_changed ();
+ void sync_offset_relative_clock_changed ();
+
+ void audition_button_toggled ();
+
+ gint bpressed (GdkEventButton* ev, Gtk::SpinButton* but, void (RegionEditor::*pmf)());
+ gint breleased (GdkEventButton* ev, Gtk::SpinButton* but, void (RegionEditor::*pmf)());
+
+ bool on_delete_event (GdkEventAny *);
+ void handle_response (int);