|  | /*
 * Pixmap Button, a custom Qt4 widget
 * Copyright (C) 2011-2013 Filipe Coelho <falktx@falktx.com>
 *
 * 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 any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * For a full copy of the GNU General Public License see the GPL.txt file
 */
#include "ledbutton.hpp"
#include <QtGui/QPainter>
#include <QtGui/QPaintEvent>
LEDButton::LEDButton(QWidget* parent):
    QPushButton(parent)
{
    fPixmapRect = QRectF(0, 0, 0, 0);
    setCheckable(true);
    setText("");
    setColor(BLUE);
}
LEDButton::~LEDButton()
{
}
void LEDButton::setColor(Color color)
{
    fColor = color;
    int size = 14;
    fPixmapRect = QRectF(0, 0, size, size);
    setMinimumWidth(size);
    setMaximumWidth(size);
    setMinimumHeight(size);
    setMaximumHeight(size);
}
void LEDButton::paintEvent(QPaintEvent* event)
{
    QPainter painter(this);
    event->accept();
    if (isChecked())
    {
        switch (fColor)
        {
        case BLUE:
            fPixmap.load(":/bitmaps/led_blue.png");
        case GREEN:
            fPixmap.load(":/bitmaps/led_green.png");
        case RED:
            fPixmap.load(":/bitmaps/led_red.png");
        case YELLOW:
            fPixmap.load(":/bitmaps/led_yellow.png");
        default:
            return;
        }
    }
    else
    {
        fPixmap.load(":/bitmaps/led_off.png");
    }
    painter.drawPixmap(fPixmapRect, fPixmap, fPixmapRect);
}
 |