lbajardsilogic@0: /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */ lbajardsilogic@0: lbajardsilogic@0: /* lbajardsilogic@0: Sonic Visualiser lbajardsilogic@0: An audio file viewer and annotation editor. lbajardsilogic@0: Centre for Digital Music, Queen Mary, University of London. lbajardsilogic@0: lbajardsilogic@0: This program is free software; you can redistribute it and/or lbajardsilogic@0: modify it under the terms of the GNU General Public License as lbajardsilogic@0: published by the Free Software Foundation; either version 2 of the lbajardsilogic@0: License, or (at your option) any later version. See the file lbajardsilogic@0: COPYING included with this distribution for more information. lbajardsilogic@0: */ lbajardsilogic@0: lbajardsilogic@0: /* lbajardsilogic@0: This is a modified version of a source file from the KDE lbajardsilogic@0: libraries. Copyright (c) 1998-2004 Jörg Habenicht, Richard J lbajardsilogic@0: Moore and others, distributed under the GNU Lesser General Public lbajardsilogic@0: License. lbajardsilogic@0: lbajardsilogic@0: Ported to Qt4 by Chris Cannam. lbajardsilogic@0: lbajardsilogic@0: The original KDE widget comes in round and rectangular and flat, lbajardsilogic@0: raised, and sunken variants. This version retains only the round lbajardsilogic@0: sunken variant. This version also implements a simple button API. lbajardsilogic@0: */ lbajardsilogic@0: lbajardsilogic@0: #ifndef _LED_BUTTON_H_ lbajardsilogic@0: #define _LED_BUTTON_H_ lbajardsilogic@0: lbajardsilogic@0: #include lbajardsilogic@0: lbajardsilogic@0: class QColor; lbajardsilogic@0: lbajardsilogic@0: class LEDButton : public QWidget lbajardsilogic@0: { lbajardsilogic@0: Q_OBJECT lbajardsilogic@0: Q_PROPERTY(QColor color READ color WRITE setColor) lbajardsilogic@0: Q_PROPERTY(int darkFactor READ darkFactor WRITE setDarkFactor) lbajardsilogic@0: lbajardsilogic@0: public: lbajardsilogic@0: LEDButton(QWidget *parent = 0); lbajardsilogic@0: LEDButton(const QColor &col, QWidget *parent = 0); lbajardsilogic@0: LEDButton(const QColor& col, bool state, QWidget *parent = 0); lbajardsilogic@0: ~LEDButton(); lbajardsilogic@0: lbajardsilogic@0: bool state() const; lbajardsilogic@0: QColor color() const; lbajardsilogic@0: int darkFactor() const; lbajardsilogic@0: lbajardsilogic@0: virtual QSize sizeHint() const; lbajardsilogic@0: virtual QSize minimumSizeHint() const; lbajardsilogic@0: lbajardsilogic@0: signals: lbajardsilogic@0: void stateChanged(bool); lbajardsilogic@0: lbajardsilogic@0: void mouseEntered(); lbajardsilogic@0: void mouseLeft(); lbajardsilogic@0: lbajardsilogic@0: public slots: lbajardsilogic@0: void toggle(); lbajardsilogic@0: void on(); lbajardsilogic@0: void off(); lbajardsilogic@0: lbajardsilogic@0: void setState(bool); lbajardsilogic@0: void toggleState(); lbajardsilogic@0: void setColor(const QColor& color); lbajardsilogic@0: void setDarkFactor(int darkfactor); lbajardsilogic@0: lbajardsilogic@0: protected: lbajardsilogic@0: void paintEvent(QPaintEvent *); lbajardsilogic@0: void mousePressEvent(QMouseEvent *); lbajardsilogic@0: void enterEvent(QEvent *); lbajardsilogic@0: void leaveEvent(QEvent *); lbajardsilogic@0: lbajardsilogic@0: bool led_state; lbajardsilogic@0: QColor led_color; lbajardsilogic@0: lbajardsilogic@0: class LEDButtonPrivate; lbajardsilogic@0: LEDButtonPrivate *d; lbajardsilogic@0: }; lbajardsilogic@0: lbajardsilogic@0: #endif