|
- /*******************************************************************************
- * *
- * Société de Transports de Montréal. *
- * 2013 *
- * *
- * Projet Zones Tests *
- * *
- * *
- * *
- *******************************************************************************/
- /*
- Description:
- .
-
- */
-
-
- #include "ONOFFStatusWidget.h"
- #include <QPainter>
-
- CONOFFStatusWidget::CONOFFStatusWidget(eONOFFLedColor Color,int index, 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);
-
- mIndex = index;
- mIsOn = false;
- }
-
- CONOFFStatusWidget::~CONOFFStatusWidget()
- {
- }
-
- void CONOFFStatusWidget::SetON()
- {
- if(mIsOn == false)
- {
- mIsOn = true;
- repaint();
- }
- }
-
- void CONOFFStatusWidget::SetOFF()
- {
- if(mIsOn == true)
- {
- mIsOn = false;
- repaint();
- }
- }
-
- void CONOFFStatusWidget::SetState(bool IsON)
- {
- if(IsON != mIsOn) //don't repaint if not necessary
- {
- mIsOn = IsON;
- repaint();
- }
- }
-
- void CONOFFStatusWidget::Toggle()
- {
- if(mIsOn)
- {
- SetOFF();
- }
- else
- {
- SetON();
- }
- }
-
- void CONOFFStatusWidget::paintEvent(QPaintEvent *PaintEvent)
- {
- QPainter painter(this);
-
- if(mIsOn)
- {
- painter.drawPixmap(0,0,mLedOnPixmap);
- }
- else
- {
- painter.drawPixmap(0,0,mLedOffPixmap);
- }
- }
-
- 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);
-
- }
-
- void CONOFFStatusWidget::mouseReleaseEvent(QMouseEvent *event)
- {
- emit Clicked(mIndex);
- }
|