+ //! set selected tracks (it'd be nice if this could be a templated function)
+ void appendSelectedTrack(GLuint track_index, int left, int right);
+
+ //! return list of selected tracks
+ std::list<TrackRegion> selectedTracks() const;
+
+ //! copy sequence from selected track using formating function
+ template<class Item>
+ size_t copySelectedTracks(std::list<Item>& result,
+ Item (*format_track)(const Sequence& s, int left, int right));
+ //! copy sequence from selected tracks as FASTA sequences
+ /*! \return number of base pairs copied
+ */
+ size_t copySelectedTracksAsFasta(std::string& copy_buffer);
+ //! copy sequence from selected tracks as a list of sequences
+ /*! \return number of base pairs copied
+ */
+ size_t copySelectedTracksAsSequences(std::list<Sequence>& result);
+ //! copy sequence from selected tracks as plain sequences
+ /*! \return number of base pairs copied
+ */
+ size_t copySelectedTracksAsString(std::string& copy_buffer);
+
+ //! copy tracks as a sequence and its coordinates
+ size_t copySelectedTracksAsSeqLocation(std::list<SequenceLocation>& result);
+
+