/******************************************************************************* * * * Société de Transports de Montréal. * * 2013 * * * * Projet Zones Tests * * * * * * * *******************************************************************************/ /* Description: . */ #include "ONOFFStatusWidget.h" #include 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 = geometry().height(); bool square = height == width; if(mLabel->text().isEmpty() == false) { height = geometry().height() - mLabel->fontMetrics().height(); } if(square) { width = 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); }