Store Sequence sequence location in a shared_ptr class
[mussa.git] / alg / glseqbrowser.hpp
index 40f158ba7b01467d49ca55e3d09c7244cd398c80..38ede4bc05476ffa32458850db76aafe9ae1e368 100644 (file)
@@ -50,6 +50,11 @@ public:
   float viewportHeight() const;
   //! return width of the viewport in world coordinates
   float viewportWidth() const;
+  
+  //! return viewport height in pixels
+  int viewportPixelHeight() const;
+  //! return viewport width in pixels
+  int viewportPixelWidth() const;
 
   //! zoom out far enough to show the full size of the sequence
   double zoomOut();
@@ -99,19 +104,23 @@ public:
 
   //! copy sequence from selected track using formating function
   template<class Item>
-  void copySelectedTracks(std::list<Item>& result, 
-             Item (*format_track)(boost::shared_ptr<Sequence> s,
-                                  int left, 
-                                  int right));
+  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
-  void copySelectedTracksAsFasta(std::string& copy_buffer);
+  /*! \return number of base pairs copied
+   */
+  size_t copySelectedTracksAsFasta(std::string& copy_buffer);
   //! copy sequence from selected tracks as a list of sequences
-  void copySelectedTracksAsSequences(std::list<Sequence>& result);
+  /*! \return number of base pairs copied
+   */
+  size_t copySelectedTracksAsSequences(std::list<Sequence>& result);
   //! copy sequence from selected tracks as plain sequences
-  void copySelectedTracksAsString(std::string& copy_buffer);
+  /*! \return number of base pairs copied
+   */
+  size_t copySelectedTracksAsString(std::string& copy_buffer);
 
   //! copy tracks as a sequence and its coordinates
-  void copySelectedTracksAsSeqLocation(std::list<SequenceLocation>& result);
+  size_t copySelectedTracksAsSeqLocation(std::list<SequenceLocation>& result);
   
   
   //! Provide a logical name for a type discriminator for our glName stack
@@ -200,12 +209,12 @@ private:
   float viewport_center;
   double zoom_level;
   boost::shared_ptr<AnnotationColors> color_mapper;
-  //! container of all the GlSequences loaded into our scene
-  std::vector<boost::shared_ptr<GlSequence> > track_container;
   //! counter for each path added to us via connect
   int pathid;
 
 protected:
+  //! container of all the GlSequences loaded into our scene
+  std::vector<boost::shared_ptr<GlSequence> > track_container;
   //! where to draw our box (world coordinates)
   rect<float> selectedRegion;
   //! true if we have a selection