Mouse scroll wheel zooming! =o)
[mussa.git] / qui / seqbrowser / SequenceBrowser.hpp
index 7ada6124d2cab26c56e2c84a0fe60f9ff41c8076..cea5f069bbc51df0303702d13b37e2a77f6deb54 100644 (file)
 #include "alg/mussa.hpp"
 #include "alg/glsequence.hpp"
 #include "alg/glseqbrowser.hpp"
+#include "qui/seqbrowser/seqproperties/PropertiesWindow.hpp"
 
 class QMouseEvent;
+class QWheelEvent;
 class QRubberBand;
 
 /*! \brief Render mussa sequences and paths 
@@ -27,6 +29,7 @@ class SequenceBrowser: public QGLWidget, public GlSeqBrowser
 
 public: 
   SequenceBrowser(QWidget *parent=0);
+  SequenceBrowser(const SequenceBrowser&, QWidget *parent=0);
 
   QSize sizeHint() const;
   void clear();
@@ -34,23 +37,34 @@ public:
   void push_sequence(boost::shared_ptr<GlSequence>);
 
   //! return the popup menu for the glcanvas (reference stored internally)
-  QMenu &getPopupMenu();
-  //! return our copy actioy (reference stored internally)
-  QAction &getCopySelectedSequenceAsFastaAction();
+  QMenu *getPopupMenu();
+  //! return our copy action (reference stored internally)
+  QAction *getCopySelectedSequenceAsFastaAction();
+  //! return copy sequence action
+  QAction *getCopySelectedSequenceAsStringAction();
+  //! return view sequence properties action
+  QAction *getEditSequencePropertiesAction();
 
 public slots:
   void copySelectedSequenceAsFasta();
+  void copySelectedSequenceAsString();
   void displayContextMenu(const QPoint &p);
+  void editSequenceProperties();
   void setClipPlane(int z);
   //! set the center of the current viewport
   void setViewportCenter(float x);
   //! set our magnification level
   void setZoom(double);
+  // actually declared in base class
+  void clearSelection();
 
 signals:
   //! emited when someone adds to our list of tracks
   void tracksChanged();
   void viewportChanged();
+  //! emit when someone copies basepairs
+  void basepairsCopied(size_t);
+  void mouseWheelZoom(double);
 
 protected:
   void initializeGL();
@@ -66,12 +80,17 @@ protected:
   void mousePressEvent(QMouseEvent *);
   void mouseMoveEvent(QMouseEvent *);
   void mouseReleaseEvent(QMouseEvent *);
+  void wheelEvent(QWheelEvent *);
 
   void startSelecting(QMouseEvent *);
   void stopSelecting(QMouseEvent *);
   /* \@} */
 
-  QMenu popupMenu;
-  QAction copySelectedSequenceAsFastaAction;
+  QMenu *popupMenu;
+  QAction *copySelectedSequenceAsFastaAction;
+  QAction *copySelectedSequenceAsStringAction;
+  QAction *editSequencePropertiesAction;
+  QAction *clearSelectionAction;
+  PropertiesWindowRef properties;
 };
 #endif