You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

98 regels
2.5 KiB

  1. /*******************************************************************************
  2. * *
  3. * Société de Transports de Montréal. *
  4. * 2013 *
  5. * *
  6. * Projet Zones Tests *
  7. * *
  8. * *
  9. * *
  10. *******************************************************************************/
  11. /*
  12. Description:
  13. .
  14. */
  15. #include "ONOFFStatusWidget.h"
  16. #include <QPainter>
  17. CONOFFStatusWidget::CONOFFStatusWidget(eONOFFLedColor Color, QWidget *Parent, QString Label)
  18. {
  19. setParent(Parent);
  20. if(Color == ON_OFF_LED_COLOR_GREEN)
  21. {
  22. mLedOffPixmap = QPixmap("./Images/green-led-off-md.png").scaled(10,10);
  23. mLedOnPixmap = QPixmap("./Images/green-led-on-md.png").scaled(10,10);
  24. }
  25. else
  26. {
  27. mLedOffPixmap = QPixmap("./Images/red-led-off-md.png").scaled(10,10);
  28. mLedOnPixmap = QPixmap("./Images/red-led-on-md.png").scaled(10,10);
  29. }
  30. mLabel = new QLabel(Label,this);
  31. mLabel->move(0,15);
  32. }
  33. CONOFFStatusWidget::~CONOFFStatusWidget()
  34. {
  35. }
  36. void CONOFFStatusWidget::SetON()
  37. {
  38. IsOn = true;
  39. }
  40. void CONOFFStatusWidget::SetOFF()
  41. {
  42. IsOn = true;
  43. }
  44. void CONOFFStatusWidget::Toggle()
  45. {
  46. if(IsOn)
  47. {
  48. SetOFF();
  49. }
  50. else
  51. {
  52. SetON();
  53. }
  54. }
  55. void CONOFFStatusWidget::paintEvent(QPaintEvent *PaintEvent)
  56. {
  57. QPainter painter(this);
  58. if(IsOn)
  59. {
  60. painter.drawPixmap(0,0,mLedOnPixmap);
  61. }
  62. else
  63. {
  64. painter.drawPixmap(0,0,mLedOnPixmap);
  65. }
  66. }
  67. void CONOFFStatusWidget::resizeEvent(QResizeEvent *event)
  68. {
  69. int width = geometry().width();
  70. int height;
  71. if(mLabel->text().isEmpty())
  72. {
  73. height = geometry().height();
  74. }
  75. else
  76. {
  77. height = geometry().height() - mLabel->fontMetrics().height();
  78. }
  79. mLedOffPixmap = QPixmap("./Images/green-led-off-md.png").scaled(width,height);
  80. mLedOnPixmap = QPixmap("./Images/green-led-on-md.png").scaled(width,height);
  81. int LabelWidth = mLabel->fontMetrics().width(mLabel->text());
  82. mLabel->move((width/2)-(LabelWidth/2),height);
  83. }