add prototype wrapping of the qt sequence browser
[mussa.git] / qui / seqbrowser / SequenceBrowserWidget.hpp
index 3527e20bb5a004ad8856a2db2b99a82304352180..8f957c76a1d975198205103a71f67a60266ec5f8 100644 (file)
 #include "qui/seqbrowser/SequenceBrowserSidebar.hpp"
 
 //! the master widget that makes a useful Sequence Browser
-class SequenceBrowserWidget : public QWidget 
+class SequenceBrowserWidget : public QScrollArea 
 {
   Q_OBJECT 
 
 public:
+  SequenceBrowserWidget(QWidget *parent=0);
+  SequenceBrowserWidget(const SequenceBrowserWidget &);
   SequenceBrowserWidget(boost::shared_ptr<QDir>, QWidget *parent=0);
 
+  //! return our wrapped browser, so we can test it.
+  SequenceBrowser& browser() { return scrollable_browser->browser(); }
+  
   //! return the popup menu for the glcanvas (reference stored internally)
   QMenu *getPopupMenu();
   //! return our fasta copy action (reference stored internally)
   QAction *getCopySelectedSequenceAsFastaAction();
   //! return our string copy action (reference stored internally)
   QAction *getCopySelectedSequenceAsStringAction();
+  //! return sequence properties edit action
+  QAction *getEditSequencePropertiesAction();
 
   QSize sizeHint() const;
     
@@ -45,7 +52,6 @@ public:
    * as it draw and redraws the SequenceDescriptions in the various
    * positions.
    */
-  //void push_sequences(std::vector<Sequence>& sequences);
   void setSequences(
       const std::vector< boost::shared_ptr<Sequence> >& sequences, 
       boost::shared_ptr<AnnotationColors> cm);
@@ -80,6 +86,8 @@ public slots:
 signals:
   //! emit when someone copies basepairs
   void basepairsCopied(size_t);
+  //! emit when sequence browser alerts this widget of mouse wheel zoom event
+  void mouseWheelZoom(double);
   
 private:
   boost::shared_ptr<QDir> default_dir;
@@ -87,10 +95,14 @@ private:
   SequenceBrowserSidebar *left_sidebar;
   SequenceBrowserSidebar *right_sidebar;
   QHBoxLayout *layout;
+  QWidget *layout_container;
 
   //! sequences created by a setSequences(vector<Sequences>) call
   /*! I need to save them so i can free them to avoid a memory leak 
    */
-  std::vector<boost::shared_ptr<GlSequence> > converted_sequences;
+  std::vector<GlSequenceRef > converted_sequences;
+
+  //! shared code for constructors
+  void init();
 };
 #endif