Mercurial > hg > svgui
view widgets/LEDButton.h @ 33:651e4e868bcc
* Implement play mute, level and pan controls and a layer visibility control
* Handle swapping the buffers in AudioCallbackPlaySource more gracefully, so
that in many cases it can be done inaudibly. Still gets it wrong when
playing in a noncontiguous selection.
* Fix to SV file save for non-2d sparse models
* Fixes to LED button drawing and AudioDial mouse functionality
* Add progress bar for Ogg file import
* Reshuffle PropertyContainer and its subclasses so it can be a QObject
* Add layer dormancy (invisible layer permitted to free its cache space)
* Optimisations to SpectrogramLayer, removing locks when reading/writing
individual pixels in the cache (should be unnecessary there) -- there's
still an issue here as we need a lock when reading from the model in
case the model is replaced, and we don't currently have one
* Several munlock() calls to make it harder to exhaust real memory if
running in an RT mode with mlockall() active
author | Chris Cannam |
---|---|
date | Fri, 17 Feb 2006 18:04:26 +0000 |
parents | c53b949ef142 |
children | c43f2c4f66f2 |
line wrap: on
line source
/* -*- c-basic-offset: 4 -*- vi:set ts=8 sts=4 sw=4: */ /* A waveform viewer and audio annotation editor. Chris Cannam, Queen Mary University of London, 2005-2006 This is experimental software. Not for distribution. */ /* This is a modified version of a source file from the KDE libraries. Copyright (c) 1998-2004 Jörg Habenicht, Richard J Moore and others, distributed under the GNU Lesser General Public License. Ported to Qt4 by Chris Cannam. The original KDE widget comes in round and rectangular and flat, raised, and sunken variants. This version retains only the round sunken variant. This version also implements a simple button API. */ #ifndef _LED_BUTTON_H_ #define _LED_BUTTON_H_ #include <QWidget> class QColor; class LEDButton : public QWidget { Q_OBJECT Q_ENUMS(State) Q_PROPERTY(State state READ state WRITE setState) Q_PROPERTY(QColor color READ color WRITE setColor) Q_PROPERTY(int darkFactor READ darkFactor WRITE setDarkFactor) public: enum State { Off, On }; LEDButton(QWidget *parent = 0); LEDButton(const QColor &col, QWidget *parent = 0); LEDButton(const QColor& col, LEDButton::State state, QWidget *parent = 0); ~LEDButton(); State state() const; QColor color() const; int darkFactor() const; void setState(State state); void toggleState(); void setColor(const QColor& color); void setDarkFactor(int darkfactor); virtual QSize sizeHint() const; virtual QSize minimumSizeHint() const; signals: void stateChanged(bool); public slots: void toggle(); void on(); void off(); protected: void paintEvent(QPaintEvent *); void mousePressEvent(QMouseEvent *); private: State led_state; QColor led_color; private: class LEDButtonPrivate; LEDButtonPrivate *d; }; #endif