basic adoption of new mouse binding facility
[ardour.git] / gtk2_ardour / export_channel_selector.h
index cfb71b34f532d884bd6b2735fb6d3be00c7ca1ed..e7b2dc11ee0a0785667187e41dd3163b6d3a8caf 100644 (file)
@@ -47,6 +47,7 @@ class ExportChannelSelector : public Gtk::HBox, public ARDOUR::SessionHandlePtr
 {
   protected:
        typedef boost::shared_ptr<ARDOUR::ExportChannelConfiguration> ChannelConfigPtr;
+       typedef std::list<ChannelConfigPtr> ChannelConfigList;
        typedef boost::shared_ptr<ARDOUR::ExportProfileManager> ProfileManagerPtr;
 
        ProfileManagerPtr manager;
@@ -225,4 +226,37 @@ class RegionExportChannelSelector : public ExportChannelSelector
        Gtk::RadioButton      processed_button;
 };
 
+class TrackExportChannelSelector : public ExportChannelSelector
+{
+  public:
+       TrackExportChannelSelector (ARDOUR::Session * session, ProfileManagerPtr manager);
+
+       virtual void sync_with_manager ();
+
+  private:
+
+       void fill_list();
+       void add_track(ARDOUR::Route * route);
+       void update_config();
+
+       ChannelConfigList configs;
+
+       struct TrackCols : public Gtk::TreeModelColumnRecord
+       {
+         public:
+               Gtk::TreeModelColumn<ARDOUR::Route *> track;
+               Gtk::TreeModelColumn<std::string>     label;
+               Gtk::TreeModelColumn<bool>            selected;
+
+               TrackCols () { add (track); add(label); add(selected); }
+       };
+       TrackCols                    track_cols;
+
+       Glib::RefPtr<Gtk::ListStore> track_list;
+       Gtk::TreeView                track_view;
+
+       Gtk::ScrolledWindow          track_scroller;
+       
+};
+
 #endif /* __export_channel_selector_h__ */