Some HIG and wording improvements to the right-click region context menu. Closes...
[ardour.git] / gtk2_ardour / audio_region_editor.h
index 00e77e430ee7624824337631755cdd93565733d9..0450d0c293eff91b1ae08275510b3094811b3871 100644 (file)
 #include <gtkmm/arrow.h>
 #include <gtkmm/frame.h>
 #include <gtkmm/table.h>
-#include <gtkmm/alignment.h>
 #include <gtkmm/adjustment.h>
 #include <gtkmm/separator.h>
 #include <gtkmm/spinbutton.h>
 
 #include <libgnomecanvas/libgnomecanvas.h>
-#include <sigc++/signal.h>
+
+#include "pbd/signals.h"
 
 #include "audio_clock.h"
 #include "ardour_dialog.h"
@@ -52,7 +52,7 @@ class AudioRegionView;
 class AudioRegionEditor : public RegionEditor
 {
   public:
-       AudioRegionEditor (ARDOUR::Session&, boost::shared_ptr<ARDOUR::AudioRegion>, AudioRegionView& rv);
+       AudioRegionEditor (ARDOUR::Session*, boost::shared_ptr<ARDOUR::AudioRegion>, AudioRegionView& rv);
        ~AudioRegionEditor ();
 
   private:
@@ -77,27 +77,31 @@ class AudioRegionEditor : public RegionEditor
        Gtk::Label position_label;
        Gtk::Label end_label;
        Gtk::Label length_label;
-       Gtk::Label sync_label;
+       Gtk::Label sync_relative_label;
+       Gtk::Label sync_absolute_label;
        Gtk::Label start_label;
-       Gtk::Alignment position_alignment;
-       Gtk::Alignment end_alignment;
-       Gtk::Alignment length_alignment;
-       Gtk::Alignment sync_alignment;
-       Gtk::Alignment start_alignment;
+       Gtk::Label gain_label;
 
        AudioClock position_clock;
        AudioClock end_clock;
        AudioClock length_clock;
-       AudioClock sync_offset_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;
+       Gtk::Adjustment gain_adjustment;
+       Gtk::SpinButton gain_entry;
 
        Gtk::HSeparator sep3;
        Gtk::VSeparator sep1;
        Gtk::VSeparator sep2;
 
+       PBD::ScopedConnection state_connection;
+       PBD::ScopedConnection audition_connection;
+
        void region_changed (ARDOUR::Change);
        void bounds_changed (ARDOUR::Change);
        void name_changed ();
+       void gain_changed ();
 
        void audition_state_changed (bool);
 
@@ -107,12 +111,17 @@ class AudioRegionEditor : public RegionEditor
        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 gain_adjustment_changed ();
 
        void audition_button_toggled ();
 
        gint bpressed (GdkEventButton* ev, Gtk::SpinButton* but, void (AudioRegionEditor::*pmf)());
        gint breleased (GdkEventButton* ev, Gtk::SpinButton* but, void (AudioRegionEditor::*pmf)());
 
+       bool on_delete_event (GdkEventAny *);
+
        bool spin_arrow_grab;
 };