annotate widgets/Pane.h @ 10:8f5b812baaee

* Hook up SV file i/o. You can now save and load sessions. Some problems -- gain is not reloaded correctly for waveforms, reloaded panes are not properly reconnected to the panner, and no doubt plenty of others.
author Chris Cannam
date Tue, 17 Jan 2006 17:45:55 +0000
parents 06bba0b79b1c
children 01849cd277e6
rev   line source
Chris@0 1
Chris@0 2 /* -*- c-basic-offset: 4 -*- vi:set ts=8 sts=4 sw=4: */
Chris@0 3
Chris@0 4 /*
Chris@0 5 A waveform viewer and audio annotation editor.
Chris@5 6 Chris Cannam, Queen Mary University of London, 2005-2006
Chris@0 7
Chris@0 8 This is experimental software. Not for distribution.
Chris@0 9 */
Chris@0 10
Chris@0 11 #ifndef _PANE_H_
Chris@0 12 #define _PANE_H_
Chris@0 13
Chris@0 14 #include <QFrame>
Chris@0 15 #include <QPoint>
Chris@0 16
Chris@0 17 #include "base/ZoomConstraint.h"
Chris@0 18 #include "base/View.h"
Chris@0 19
Chris@0 20 class QWidget;
Chris@0 21 class QPaintEvent;
Chris@0 22 class Layer;
Chris@0 23
Chris@0 24 class Pane : public View
Chris@0 25 {
Chris@0 26 Q_OBJECT
Chris@0 27
Chris@0 28 public:
Chris@0 29 Pane(QWidget *parent = 0);
Chris@0 30 virtual QString getPropertyContainerIconName() const { return "pane"; }
Chris@0 31
Chris@0 32 virtual bool shouldIlluminateLocalFeatures(const Layer *layer, QPoint &pos);
Chris@0 33
Chris@0 34 void setCentreLineVisible(bool visible);
Chris@0 35 bool getCentreLineVisible() const { return m_centreLineVisible; }
Chris@0 36
Chris@8 37 virtual QString toXmlString(QString indent = "",
Chris@8 38 QString extraAttributes = "") const;
Chris@8 39
Chris@0 40 signals:
Chris@0 41 void paneInteractedWith();
Chris@0 42
Chris@0 43 protected:
Chris@0 44 virtual void paintEvent(QPaintEvent *e);
Chris@0 45 virtual void mousePressEvent(QMouseEvent *e);
Chris@0 46 virtual void mouseReleaseEvent(QMouseEvent *e);
Chris@0 47 virtual void mouseMoveEvent(QMouseEvent *e);
Chris@0 48 virtual void mouseDoubleClickEvent(QMouseEvent *e);
Chris@0 49 virtual void leaveEvent(QEvent *e);
Chris@0 50 virtual void wheelEvent(QWheelEvent *e);
Chris@0 51
Chris@0 52 bool m_identifyFeatures;
Chris@0 53 QPoint m_identifyPoint;
Chris@0 54 QPoint m_clickPos;
Chris@0 55 QPoint m_mousePos;
Chris@0 56 bool m_clickedInRange;
Chris@0 57 bool m_shiftPressed;
Chris@0 58 size_t m_dragCentreFrame;
Chris@0 59 bool m_centreLineVisible;
Chris@0 60 };
Chris@0 61
Chris@0 62 #endif
Chris@0 63