sort export formats & presets in alphabetical name order
[ardour.git] / gtk2_ardour / location_ui.h
index dd735cddba96a571fbde2230646106bbd818139f..84c6fa9fc5b0fb419d63be98c21ab3f1c034085c 100644 (file)
@@ -29,7 +29,7 @@
 #include <gtkmm/paned.h>
 #include <gtkmm/scrolledwindow.h>
 
-#include "pbd/scoped_connections.h"
+#include "pbd/signals.h"
 
 #include "ardour/location.h"
 #include "ardour/session_handle.h"
@@ -42,6 +42,8 @@ namespace ARDOUR {
        class Location;
 }
 
+class ClockGroup;
+
 class LocationEditRow  : public Gtk::HBox, public ARDOUR::SessionHandlePtr
 {
   public:
@@ -55,7 +57,8 @@ class LocationEditRow  : public Gtk::HBox, public ARDOUR::SessionHandlePtr
 
        void set_number (int);
        void focus_name();
-
+        void set_clock_group (ClockGroup&);
+        
        sigc::signal<void,ARDOUR::Location*> remove_requested;
        sigc::signal<void> redraw_ranges;
 
@@ -86,6 +89,8 @@ class LocationEditRow  : public Gtk::HBox, public ARDOUR::SessionHandlePtr
        AudioClock    length_clock;
        Gtk::CheckButton cd_check_button;
        Gtk::CheckButton hide_check_button;
+       Gtk::CheckButton lock_check_button;
+       Gtk::CheckButton glue_check_button;
 
        Gtk::Button   remove_button;
 
@@ -95,11 +100,12 @@ class LocationEditRow  : public Gtk::HBox, public ARDOUR::SessionHandlePtr
 
 
        Gtk::Label    performer_label;
-       Gtk::Entry  performer_entry;
+       Gtk::Entry    performer_entry;
        Gtk::Label    composer_label;
-       Gtk::Entry  composer_entry;
+       Gtk::Entry    composer_entry;
        Gtk::CheckButton   scms_check_button;
        Gtk::CheckButton   preemph_check_button;
+        ClockGroup* _clock_group;
 
        guint32 i_am_the_modifier;
        int   number;
@@ -109,7 +115,7 @@ class LocationEditRow  : public Gtk::HBox, public ARDOUR::SessionHandlePtr
        void performer_entry_changed ();
        void composer_entry_changed ();
 
-       void set_button_pressed (LocationPart part);
+       void to_playhead_button_pressed (LocationPart part);
        void go_button_pressed (LocationPart part);
 
        void clock_changed (LocationPart part);
@@ -117,6 +123,8 @@ class LocationEditRow  : public Gtk::HBox, public ARDOUR::SessionHandlePtr
 
        void cd_toggled ();
        void hide_toggled ();
+       void lock_toggled ();
+       void glue_toggled ();
        void remove_button_pressed ();
 
        void scms_toggled ();
@@ -127,6 +135,10 @@ class LocationEditRow  : public Gtk::HBox, public ARDOUR::SessionHandlePtr
        void name_changed (ARDOUR::Location *);
        void location_changed (ARDOUR::Location *);
        void flags_changed (ARDOUR::Location *, void *src);
+       void lock_changed (ARDOUR::Location *);
+       void position_lock_style_changed (ARDOUR::Location *);
+
+       void set_clock_sensitivity ();
 
        PBD::ScopedConnectionList connections;
 };
@@ -138,6 +150,7 @@ class LocationUI : public Gtk::HBox, public ARDOUR::SessionHandlePtr
        ~LocationUI ();
        
        void set_session (ARDOUR::Session *);
+        void set_clock_mode (AudioClock::Mode);
 
        void add_new_location();
        void add_new_range();
@@ -150,22 +163,17 @@ class LocationUI : public Gtk::HBox, public ARDOUR::SessionHandlePtr
 
        void session_going_away ();
 
-       Gtk::VBox  location_vpacker;
-
        LocationEditRow      loop_edit_row;
        LocationEditRow      punch_edit_row;
        Gtk::VBox loop_punch_box;
-       Gtk::ScrolledWindow loop_punch_scroller;
 
        Gtk::VPaned loc_range_panes;
 
-       Gtk::Frame loc_frame;
        Gtk::VBox  loc_frame_box;
        Gtk::Button add_location_button;
        Gtk::ScrolledWindow  location_rows_scroller;
        Gtk::VBox            location_rows;
 
-       Gtk::Frame range_frame;
        Gtk::VBox  range_frame_box;
        Gtk::Button add_range_button;
        Gtk::ScrolledWindow  range_rows_scroller;
@@ -186,7 +194,10 @@ class LocationUI : public Gtk::HBox, public ARDOUR::SessionHandlePtr
 
        void location_removed (ARDOUR::Location *);
        void location_added (ARDOUR::Location *);
+       void locations_changed (ARDOUR::Locations::Change);
        void map_locations (ARDOUR::Locations::LocationList&);
+
+        ClockGroup* _clock_group;
 };
 
 class LocationUIWindow : public ArdourDialog