Update GPL boilerplate and (C)
[ardour.git] / gtk2_ardour / location_ui.h
index 76542804c24bc27d179d186a4ae68017a6220da6..871a169410626abb9dff22f6544f7b811e77402a 100644 (file)
@@ -1,21 +1,24 @@
 /*
-    Copyright (C) 1999-2002 Paul Davis
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
-
-*/
+ * Copyright (C) 2005-2018 Paul Davis <paul@linuxaudiosystems.com>
+ * Copyright (C) 2005 Taybin Rutkin <taybin@taybin.com>
+ * Copyright (C) 2008-2011 David Robillard <d@drobilla.net>
+ * Copyright (C) 2009-2012 Carl Hetherington <carl@carlh.net>
+ * Copyright (C) 2015-2017 Robin Gareus <robin@gareus.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ */
 
 #ifndef __ardour_location_ui_h__
 #define __ardour_location_ui_h__
@@ -33,9 +36,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"
 
@@ -79,16 +82,17 @@ protected:
        Gtk::Entry    name_entry;
        Gtk::Label    name_label;
        Gtk::Label    number_label;
+       Gtk::Label    date_label;
 
        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 +100,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 +157,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 +168,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 +183,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 +213,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