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.
 
 
 
 

102 line
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 = geometry().height();
  71. bool square = height == width;
  72. if(mLabel->text().isEmpty() == false)
  73. {
  74. height = geometry().height() - mLabel->fontMetrics().height();
  75. }
  76. if(square)
  77. {
  78. width = height;
  79. }
  80. mLedOffPixmap = QPixmap("./Images/green-led-off-md.png").scaled(width,height);
  81. mLedOnPixmap = QPixmap("./Images/green-led-on-md.png").scaled(width,height);
  82. int LabelWidth = mLabel->fontMetrics().width(mLabel->text());
  83. mLabel->move((width/2)-(LabelWidth/2),height);
  84. }