do not reset session for MonitorSection just because monitor out was removed
[ardour.git] / gtk2_ardour / location_ui.h
index 76542804c24bc27d179d186a4ae68017a6220da6..2cd69b834c038a89724d1c649982a33457cd44e2 100644 (file)
@@ -33,9 +33,9 @@
 #include "ardour/location.h"
 #include "ardour/session_handle.h"
 
-#include <gtkmm2ext/pane.h>
+#include "widgets/ardour_button.h"
+#include "widgets/pane.h"
 
-#include "ardour_button.h"
 #include "ardour_window.h"
 #include "audio_clock.h"
 
@@ -82,13 +82,13 @@ protected:
 
        Gtk::HBox     start_hbox;
        AudioClock    start_clock;
-       ArdourButton  start_to_playhead_button;
-       ArdourButton  locate_to_start_button;
+       ArdourWidgets::ArdourButton start_to_playhead_button;
+       ArdourWidgets::ArdourButton locate_to_start_button;
 
        Gtk::HBox     end_hbox;
        AudioClock    end_clock;
-       ArdourButton  end_to_playhead_button;
-       ArdourButton  locate_to_end_button;
+       ArdourWidgets::ArdourButton end_to_playhead_button;
+       ArdourWidgets::ArdourButton locate_to_end_button;
 
        AudioClock    length_clock;
        Gtk::CheckButton cd_check_button;
@@ -96,7 +96,7 @@ protected:
        Gtk::CheckButton lock_check_button;
        Gtk::CheckButton glue_check_button;
 
-       ArdourButton   remove_button;
+       ArdourWidgets::ArdourButton remove_button;
 
        Gtk::HBox     cd_track_details_hbox;
        Gtk::Entry    isrc_entry;
@@ -153,11 +153,10 @@ protected:
 class LocationUI : public Gtk::HBox, public ARDOUR::SessionHandlePtr
 {
 public:
-       LocationUI ();
+       LocationUI (std::string state_node_name = "LocationUI");
        ~LocationUI ();
 
        void set_session (ARDOUR::Session *);
-       void set_clock_mode (AudioClock::Mode);
 
        void add_new_location();
        void add_new_range();
@@ -165,6 +164,7 @@ public:
        void refresh_location_list ();
 
        XMLNode & get_state () const;
+       int set_state (const XMLNode&);
 
 private:
        /** set to the location that has just been created with the LocationUI `add' button
@@ -179,7 +179,7 @@ private:
        LocationEditRow      punch_edit_row;
        Gtk::VBox loop_punch_box;
 
-       Gtkmm2ext::VPane loc_range_panes;
+       ArdourWidgets::VPane loc_range_panes;
 
        Gtk::VBox  loc_frame_box;
        Gtk::Button add_location_button;
@@ -209,7 +209,12 @@ private:
        void map_locations (const ARDOUR::Locations::LocationList&);
 
        ClockGroup* _clock_group;
-       AudioClock::Mode clock_mode_from_session_instant_xml () const;
+       AudioClock::Mode clock_mode_from_session_instant_xml ();
+
+       AudioClock::Mode _mode;
+       bool _mode_set;
+
+       std::string _state_node_name;
 };
 
 class LocationUIWindow : public ArdourWindow