13 #include <boost/shared_ptr.hpp>
15 #include "alg/mussa.hpp"
16 #include "alg/glsequence.hpp"
17 #include "alg/glseqbrowser.hpp"
18 #include "qui/seqbrowser/seqproperties/PropertiesWindow.hpp"
23 /*! \brief Render mussa sequences and paths
25 class SequenceBrowser: public QGLWidget, public GlSeqBrowser
30 SequenceBrowser(QWidget *parent=0);
31 SequenceBrowser(const SequenceBrowser&, QWidget *parent=0);
33 QSize sizeHint() const;
35 void push_sequence(boost::shared_ptr<Sequence> s);
36 void push_sequence(boost::shared_ptr<GlSequence>);
38 //! return the popup menu for the glcanvas (reference stored internally)
39 QMenu *getPopupMenu();
40 //! return our copy action (reference stored internally)
41 QAction *getCopySelectedSequenceAsFastaAction();
42 //! return copy sequence action
43 QAction *getCopySelectedSequenceAsStringAction();
44 //! return view sequence properties action
45 QAction *getEditSequencePropertiesAction();
48 void copySelectedSequenceAsFasta();
49 void copySelectedSequenceAsString();
50 void displayContextMenu(const QPoint &p);
51 void editSequenceProperties();
52 void setClipPlane(int z);
53 //! set the center of the current viewport
54 void setViewportCenter(float x);
55 //! set our magnification level
57 // actually declared in base class
58 void clearSelection();
61 //! emited when someone adds to our list of tracks
63 void viewportChanged();
64 //! emit when someone copies basepairs
65 void basepairsCopied(size_t);
69 void resizeGL(int height, int width);
72 //! \defgroup Selection
74 QRubberBand *rubberBand;
76 QRect selectedDisplayRegion;
77 QRect selectedCanvasRegion;
78 void mousePressEvent(QMouseEvent *);
79 void mouseMoveEvent(QMouseEvent *);
80 void mouseReleaseEvent(QMouseEvent *);
82 void startSelecting(QMouseEvent *);
83 void stopSelecting(QMouseEvent *);
87 QAction *copySelectedSequenceAsFastaAction;
88 QAction *copySelectedSequenceAsStringAction;
89 QAction *editSequencePropertiesAction;
90 QAction *clearSelectionAction;
91 PropertiesWindowRef properties;