CableTestBench/Sources/Widgets/ONOFFStatusWidget.cpp
2019-05-01 16:27:59 -04:00

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);
}