Update mussa to build on ubuntu 10.04 with qt 4.6.2 +boost 1.40.0.1
[mussa.git] / qui / seqbrowser / SequenceBrowserSidebar.hpp
1 #ifndef _SEQUENCE_BROWSER_SIDEBAR_H
2 #define _SEQUENCE_BROWSER_SIDEBAR_H
3
4 #include <vector>
5
6 #include <boost/shared_ptr.hpp>
7
8 #include <QVBoxLayout>
9 #include <QWidget>
10 #include "qui/seqbrowser/SequenceBrowser.hpp"
11 #include "qui/seqbrowser/SequenceDescription.hpp"
12 #include "alg/glsequence.hpp"
13
14 //! store a collection of sequence descriptions for the SequenceBrowserWidget
15 class SequenceBrowserSidebar : public QWidget
16 {
17   Q_OBJECT
18
19 public:
20   //! pointer to our sequence description widget
21   typedef SequenceDescription *seq_description_type;
22   //! an STL collection of our sequence description widget
23   typedef std::vector<seq_description_type> collection;
24   typedef collection::size_type size_type;
25   typedef collection::iterator iterator;
26   enum SidebarSide { Left, Right };
27
28   SequenceBrowserSidebar(QWidget *parent = 0);
29
30   //! clear our list of descriptions
31   void clear();
32   //! how many items are we storing
33   size_t size() const;
34   //! set the glsequences we're going to be displaying
35   void setSequences(std::vector<boost::shared_ptr<GlSequence> > );
36
37   collection descriptions;
38 public slots:
39   //! update the reported sequence position for each of our sequences
40   /*! for example when the right side is at position 3000 call 
41    *  iterate over each sequence and get its rightbase pair value
42    */
43   //void updatePositionValues(float left, float right);
44
45 private:
46   QVBoxLayout layout;
47   //! for updating positions we need to know which side we're on
48   //SidebarSide sidebar_side;
49 };
50 #endif