annotate widgets/LEDButton.h @ 282:d9319859a4cf tip

(none)
author benoitrigolleau
date Fri, 31 Oct 2008 11:00:24 +0000
parents fc9323a41f5a
children
rev   line source
lbajardsilogic@0 1 /* -*- c-basic-offset: 4 indent-tabs-mode: nil -*- vi:set ts=8 sts=4 sw=4: */
lbajardsilogic@0 2
lbajardsilogic@0 3 /*
lbajardsilogic@0 4 Sonic Visualiser
lbajardsilogic@0 5 An audio file viewer and annotation editor.
lbajardsilogic@0 6 Centre for Digital Music, Queen Mary, University of London.
lbajardsilogic@0 7
lbajardsilogic@0 8 This program is free software; you can redistribute it and/or
lbajardsilogic@0 9 modify it under the terms of the GNU General Public License as
lbajardsilogic@0 10 published by the Free Software Foundation; either version 2 of the
lbajardsilogic@0 11 License, or (at your option) any later version. See the file
lbajardsilogic@0 12 COPYING included with this distribution for more information.
lbajardsilogic@0 13 */
lbajardsilogic@0 14
lbajardsilogic@0 15 /*
lbajardsilogic@0 16 This is a modified version of a source file from the KDE
lbajardsilogic@0 17 libraries. Copyright (c) 1998-2004 Jörg Habenicht, Richard J
lbajardsilogic@0 18 Moore and others, distributed under the GNU Lesser General Public
lbajardsilogic@0 19 License.
lbajardsilogic@0 20
lbajardsilogic@0 21 Ported to Qt4 by Chris Cannam.
lbajardsilogic@0 22
lbajardsilogic@0 23 The original KDE widget comes in round and rectangular and flat,
lbajardsilogic@0 24 raised, and sunken variants. This version retains only the round
lbajardsilogic@0 25 sunken variant. This version also implements a simple button API.
lbajardsilogic@0 26 */
lbajardsilogic@0 27
lbajardsilogic@0 28 #ifndef _LED_BUTTON_H_
lbajardsilogic@0 29 #define _LED_BUTTON_H_
lbajardsilogic@0 30
lbajardsilogic@0 31 #include <QWidget>
lbajardsilogic@0 32
lbajardsilogic@0 33 class QColor;
lbajardsilogic@0 34
lbajardsilogic@0 35 class LEDButton : public QWidget
lbajardsilogic@0 36 {
lbajardsilogic@0 37 Q_OBJECT
lbajardsilogic@0 38 Q_PROPERTY(QColor color READ color WRITE setColor)
lbajardsilogic@0 39 Q_PROPERTY(int darkFactor READ darkFactor WRITE setDarkFactor)
lbajardsilogic@0 40
lbajardsilogic@0 41 public:
lbajardsilogic@0 42 LEDButton(QWidget *parent = 0);
lbajardsilogic@0 43 LEDButton(const QColor &col, QWidget *parent = 0);
lbajardsilogic@0 44 LEDButton(const QColor& col, bool state, QWidget *parent = 0);
lbajardsilogic@0 45 ~LEDButton();
lbajardsilogic@0 46
lbajardsilogic@0 47 bool state() const;
lbajardsilogic@0 48 QColor color() const;
lbajardsilogic@0 49 int darkFactor() const;
lbajardsilogic@0 50
lbajardsilogic@0 51 virtual QSize sizeHint() const;
lbajardsilogic@0 52 virtual QSize minimumSizeHint() const;
lbajardsilogic@0 53
lbajardsilogic@0 54 signals:
lbajardsilogic@0 55 void stateChanged(bool);
lbajardsilogic@0 56
lbajardsilogic@0 57 void mouseEntered();
lbajardsilogic@0 58 void mouseLeft();
lbajardsilogic@0 59
lbajardsilogic@0 60 public slots:
lbajardsilogic@0 61 void toggle();
lbajardsilogic@0 62 void on();
lbajardsilogic@0 63 void off();
lbajardsilogic@0 64
lbajardsilogic@0 65 void setState(bool);
lbajardsilogic@0 66 void toggleState();
lbajardsilogic@0 67 void setColor(const QColor& color);
lbajardsilogic@0 68 void setDarkFactor(int darkfactor);
lbajardsilogic@0 69
lbajardsilogic@0 70 protected:
lbajardsilogic@0 71 void paintEvent(QPaintEvent *);
lbajardsilogic@0 72 void mousePressEvent(QMouseEvent *);
lbajardsilogic@0 73 void enterEvent(QEvent *);
lbajardsilogic@0 74 void leaveEvent(QEvent *);
lbajardsilogic@0 75
lbajardsilogic@0 76 bool led_state;
lbajardsilogic@0 77 QColor led_color;
lbajardsilogic@0 78
lbajardsilogic@0 79 class LEDButtonPrivate;
lbajardsilogic@0 80 LEDButtonPrivate *d;
lbajardsilogic@0 81 };
lbajardsilogic@0 82
lbajardsilogic@0 83 #endif