13 #include <boost/shared_ptr.hpp>
15 #include "alg/mussa.hpp"
16 #include "alg/glsequence.hpp"
17 #include "alg/glseqbrowser.hpp"
22 /*! \brief Render mussa sequences and paths
24 class SequenceBrowser: public QGLWidget, public GlSeqBrowser
29 SequenceBrowser(QWidget *parent=0);
30 SequenceBrowser(const SequenceBrowser&, QWidget *parent=0);
32 QSize sizeHint() const;
34 void push_sequence(boost::shared_ptr<Sequence> s);
35 void push_sequence(boost::shared_ptr<GlSequence>);
37 //! return the popup menu for the glcanvas (reference stored internally)
38 QMenu *getPopupMenu();
39 //! return our copy action (reference stored internally)
40 QAction *getCopySelectedSequenceAsFastaAction();
41 //! return reference to copy sequence action
42 QAction *getCopySelectedSequenceAsStringAction();
45 void copySelectedSequenceAsFasta();
46 void copySelectedSequenceAsString();
47 void displayContextMenu(const QPoint &p);
48 void setClipPlane(int z);
49 //! set the center of the current viewport
50 void setViewportCenter(float x);
51 //! set our magnification level
55 //! emited when someone adds to our list of tracks
57 void viewportChanged();
58 //! emit when someone copies basepairs
59 void basepairsCopied(size_t);
63 void resizeGL(int height, int width);
66 //! \defgroup Selection
68 QRubberBand *rubberBand;
70 QRect selectedDisplayRegion;
71 QRect selectedCanvasRegion;
72 void mousePressEvent(QMouseEvent *);
73 void mouseMoveEvent(QMouseEvent *);
74 void mouseReleaseEvent(QMouseEvent *);
76 void startSelecting(QMouseEvent *);
77 void stopSelecting(QMouseEvent *);
81 QAction *copySelectedSequenceAsFastaAction;
82 QAction *copySelectedSequenceAsStringAction;