#include <vector>
#include <set>
+#include <boost/shared_ptr.hpp>
+
#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
public:
SequenceBrowser(QWidget *parent=0);
+ SequenceBrowser(const SequenceBrowser&, QWidget *parent=0);
QSize sizeHint() const;
void clear();
- void push_sequence(const Sequence &s);
- void push_sequence(GlSequence &);
-
+ void push_sequence(boost::shared_ptr<Sequence> s);
+ void push_sequence(boost::shared_ptr<GlSequence>);
+
+ //! return the popup menu for the glcanvas (reference stored internally)
+ 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();
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