remove incorrect calls to Editor::maybe_autoscroll() from specific Drag classes ...
[ardour.git] / gtk2_ardour / export_timespan_selector.h
index d855df4d89c2d1f59b30ca5d0a52b3714453e04d..12166709911688721999564836dc900eb2aea847 100644 (file)
 #ifndef __export_timespan_selector_h__
 #define __export_timespan_selector_h__
 
-#include "public_editor.h"
 #include "audio_clock.h"
 
 #include <list>
 
+#ifdef interface
+#undef interface
+#endif
+
 #include <gtkmm.h>
 #include <boost/shared_ptr.hpp>
 
+
 #include "ardour/types.h"
 #include "ardour/session_handle.h"
 #include "ardour/export_profile_manager.h"
@@ -40,6 +44,7 @@ namespace ARDOUR {
 }
 
 using ARDOUR::CDMarkerFormat;
+using ARDOUR::framecnt_t;
 
 /// Timespan Selector base
 class ExportTimespanSelector : public Gtk::VBox, public ARDOUR::SessionHandlePtr
@@ -49,8 +54,7 @@ class ExportTimespanSelector : public Gtk::VBox, public ARDOUR::SessionHandlePtr
        typedef boost::shared_ptr<ARDOUR::ExportHandler> HandlerPtr;
        typedef boost::shared_ptr<ARDOUR::ExportProfileManager> ProfileManagerPtr;
 
-       typedef boost::shared_ptr<ARDOUR::ExportTimespan> TimespanPtr;
-       typedef std::list<TimespanPtr> TimespanList;
+       typedef std::list<ARDOUR::ExportTimespanPtr> TimespanList;
        typedef boost::shared_ptr<TimespanList> TimespanListPtr;
        typedef ARDOUR::ExportProfileManager::TimespanStatePtr TimespanStatePtr;
 
@@ -77,12 +81,16 @@ class ExportTimespanSelector : public Gtk::VBox, public ARDOUR::SessionHandlePtr
        void change_time_format ();
 
        std::string construct_label (ARDOUR::Location const * location) const;
-       std::string bbt_str (nframes_t frames) const;
-       std::string timecode_str (nframes_t frames) const;
-       std::string ms_str (nframes_t frames) const;
+       std::string construct_length (ARDOUR::Location const * location) const;
+       std::string bbt_str (framepos_t frames) const;
+       std::string timecode_str (framecnt_t frames) const;
+       std::string ms_str (framecnt_t frames) const;
 
        void update_range_name (std::string const & path, std::string const & new_text);
 
+       void set_selection_state_of_all_timespans (bool);
+       int location_sorter(Gtk::TreeModel::iterator a, Gtk::TreeModel::iterator b);
+
        /*** GUI components ***/
 
        Gtk::HBox      option_hbox;
@@ -111,10 +119,11 @@ class ExportTimespanSelector : public Gtk::VBox, public ARDOUR::SessionHandlePtr
          public:
                Gtk::TreeModelColumn<ARDOUR::Location *>  location;
                Gtk::TreeModelColumn<std::string>       label;
-               Gtk::TreeModelColumn<bool>                selected;
+               Gtk::TreeModelColumn<bool>              selected;
                Gtk::TreeModelColumn<std::string>       name;
+               Gtk::TreeModelColumn<std::string>       length;
 
-               RangeCols () { add (location); add(label); add(selected); add(name); }
+               RangeCols () { add (location); add(label); add(selected); add(name); add(length); }
        };
        RangeCols                    range_cols;
 
@@ -124,7 +133,7 @@ class ExportTimespanSelector : public Gtk::VBox, public ARDOUR::SessionHandlePtr
        Gtk::ScrolledWindow          range_scroller;
 };
 
-/// Allows seleting multiple timespans
+/// Allows selecting multiple timespans
 class ExportTimespanSelectorMultiple : public ExportTimespanSelector
 {
   public: