Mercurial > hg > svgui
diff widgets/Thumbwheel.h @ 132:5d3a483856ff
* Add Thumbwheel widget for all our zooming needs
* Use QSettings to save/restore window size and position -- precursor to
switching our preferences to QSettings as well -- wish I'd noticed it sooner
* Only suspend writes (not reads from the underlying cache objects) from the
fft caches when repainting the spectrogram -- performance should now be
significantly better
author | Chris Cannam |
---|---|
date | Thu, 03 Aug 2006 15:40:11 +0000 |
parents | |
children | 9e6b3e239b9d |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/widgets/Thumbwheel.h Thu Aug 03 15:40:11 2006 +0000 @@ -0,0 +1,68 @@ +/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ + +/* + Sonic Visualiser + An audio file viewer and annotation editor. + Centre for Digital Music, Queen Mary, University of London. + This file copyright 2006 Chris Cannam. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public License as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. See the file + COPYING included with this distribution for more information. +*/ + +#ifndef _THUMBWHEEL_H_ +#define _THUMBWHEEL_H_ + +#include <QWidget> + +class Thumbwheel : public QWidget +{ + Q_OBJECT + +public: + Thumbwheel(int min, int max, int defaultValue, + Qt::Orientation orientation, QWidget *parent = 0); + virtual ~Thumbwheel(); + + void setSpeed(float speed); + float getSpeed() const; + + void setTracking(bool tracking); + bool getTracking() const; + + void setShowScale(bool show); + bool getShowScale() const; + + void setValue(int value); + int getValue() const; + + virtual void mousePressEvent(QMouseEvent *e); + virtual void mouseDoubleClickEvent(QMouseEvent *e); + virtual void mouseMoveEvent(QMouseEvent *e); + virtual void mouseReleaseEvent(QMouseEvent *e); + virtual void wheelEvent(QWheelEvent *e); + virtual void paintEvent(QPaintEvent *e); + + QSize sizeHint() const; + +signals: + void valueChanged(int); + +private: + int m_min; + int m_max; + int m_default; + int m_value; + Qt::Orientation m_orientation; + float m_speed; + bool m_tracking; + bool m_showScale; + bool m_clicked; + QPoint m_clickPos; + int m_clickValue; +}; + +#endif