annotate widgets/Pane.h @ 38:beb801473743

* Rearrange spectrogram cacheing so that gain, normalization, instantaneous frequency calculations etc can be done from the cached data (increasing the size of the cache, but also the usability).
author Chris Cannam
date Thu, 23 Feb 2006 18:01:31 +0000
parents c43f2c4f66f2
children 1bdf285c4eac
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@13 19 #include "base/Selection.h"
Chris@0 20
Chris@0 21 class QWidget;
Chris@0 22 class QPaintEvent;
Chris@0 23 class Layer;
Chris@0 24
Chris@0 25 class Pane : public View
Chris@0 26 {
Chris@0 27 Q_OBJECT
Chris@0 28
Chris@0 29 public:
Chris@0 30 Pane(QWidget *parent = 0);
Chris@34 31 virtual QString getPropertyContainerIconName() const { return "pane"; }
Chris@0 32
Chris@0 33 virtual bool shouldIlluminateLocalFeatures(const Layer *layer, QPoint &pos);
Chris@0 34
Chris@0 35 void setCentreLineVisible(bool visible);
Chris@0 36 bool getCentreLineVisible() const { return m_centreLineVisible; }
Chris@0 37
Chris@8 38 virtual QString toXmlString(QString indent = "",
Chris@8 39 QString extraAttributes = "") const;
Chris@8 40
Chris@0 41 signals:
Chris@0 42 void paneInteractedWith();
Chris@0 43
Chris@13 44 public slots:
Chris@13 45 virtual void toolModeChanged();
Chris@13 46
Chris@0 47 protected:
Chris@0 48 virtual void paintEvent(QPaintEvent *e);
Chris@0 49 virtual void mousePressEvent(QMouseEvent *e);
Chris@0 50 virtual void mouseReleaseEvent(QMouseEvent *e);
Chris@0 51 virtual void mouseMoveEvent(QMouseEvent *e);
Chris@0 52 virtual void mouseDoubleClickEvent(QMouseEvent *e);
Chris@0 53 virtual void leaveEvent(QEvent *e);
Chris@0 54 virtual void wheelEvent(QWheelEvent *e);
Chris@0 55
Chris@17 56 Selection getSelectionAt(int x, bool &closeToLeft, bool &closeToRight);
Chris@17 57
Chris@0 58 bool m_identifyFeatures;
Chris@0 59 QPoint m_identifyPoint;
Chris@0 60 QPoint m_clickPos;
Chris@0 61 QPoint m_mousePos;
Chris@0 62 bool m_clickedInRange;
Chris@0 63 bool m_shiftPressed;
Chris@13 64 bool m_ctrlPressed;
Chris@17 65 bool m_navigating;
Chris@17 66 bool m_resizing;
Chris@0 67 size_t m_dragCentreFrame;
Chris@0 68 bool m_centreLineVisible;
Chris@13 69 size_t m_selectionStartFrame;
Chris@0 70 };
Chris@0 71
Chris@0 72 #endif
Chris@0 73