98 lines
2.5 KiB
C++
98 lines
2.5 KiB
C++
/*******************************************************************************
|
|
* *
|
|
* Société de Transports de Montréal. *
|
|
* 2013 *
|
|
* *
|
|
* Projet Zones Tests *
|
|
* *
|
|
* *
|
|
* *
|
|
*******************************************************************************/
|
|
/*
|
|
Description:
|
|
.
|
|
|
|
*/
|
|
|
|
|
|
#include "ONOFFStatusWidget.h"
|
|
#include <QPainter>
|
|
|
|
CONOFFStatusWidget::CONOFFStatusWidget(eONOFFLedColor Color, QWidget *Parent, QString Label)
|
|
{
|
|
setParent(Parent);
|
|
if(Color == ON_OFF_LED_COLOR_GREEN)
|
|
{
|
|
mLedOffPixmap = QPixmap("./Images/green-led-off-md.png").scaled(10,10);
|
|
mLedOnPixmap = QPixmap("./Images/green-led-on-md.png").scaled(10,10);
|
|
}
|
|
else
|
|
{
|
|
mLedOffPixmap = QPixmap("./Images/red-led-off-md.png").scaled(10,10);
|
|
mLedOnPixmap = QPixmap("./Images/red-led-on-md.png").scaled(10,10);
|
|
}
|
|
|
|
mLabel = new QLabel(Label,this);
|
|
mLabel->move(0,15);
|
|
}
|
|
|
|
CONOFFStatusWidget::~CONOFFStatusWidget()
|
|
{
|
|
}
|
|
|
|
void CONOFFStatusWidget::SetON()
|
|
{
|
|
IsOn = true;
|
|
}
|
|
|
|
void CONOFFStatusWidget::SetOFF()
|
|
{
|
|
IsOn = true;
|
|
}
|
|
|
|
void CONOFFStatusWidget::Toggle()
|
|
{
|
|
if(IsOn)
|
|
{
|
|
SetOFF();
|
|
}
|
|
else
|
|
{
|
|
SetON();
|
|
}
|
|
}
|
|
|
|
void CONOFFStatusWidget::paintEvent(QPaintEvent *PaintEvent)
|
|
{
|
|
QPainter painter(this);
|
|
|
|
if(IsOn)
|
|
{
|
|
painter.drawPixmap(0,0,mLedOnPixmap);
|
|
}
|
|
else
|
|
{
|
|
painter.drawPixmap(0,0,mLedOnPixmap);
|
|
}
|
|
}
|
|
|
|
void CONOFFStatusWidget::resizeEvent(QResizeEvent *event)
|
|
{
|
|
int width = geometry().width();
|
|
int height;
|
|
if(mLabel->text().isEmpty())
|
|
{
|
|
height = geometry().height();
|
|
}
|
|
else
|
|
{
|
|
height = geometry().height() - mLabel->fontMetrics().height();
|
|
}
|
|
mLedOffPixmap = QPixmap("./Images/green-led-off-md.png").scaled(width,height);
|
|
mLedOnPixmap = QPixmap("./Images/green-led-on-md.png").scaled(width,height);
|
|
|
|
int LabelWidth = mLabel->fontMetrics().width(mLabel->text());
|
|
mLabel->move((width/2)-(LabelWidth/2),height);
|
|
|
|
}
|