Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
 
 
 
 

127 Zeilen
3.0 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,int index, 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. mIndex = index;
  33. mIsOn = false;
  34. }
  35. CONOFFStatusWidget::~CONOFFStatusWidget()
  36. {
  37. }
  38. void CONOFFStatusWidget::SetON()
  39. {
  40. if(mIsOn == false)
  41. {
  42. mIsOn = true;
  43. repaint();
  44. }
  45. }
  46. void CONOFFStatusWidget::SetOFF()
  47. {
  48. if(mIsOn == true)
  49. {
  50. mIsOn = false;
  51. repaint();
  52. }
  53. }
  54. void CONOFFStatusWidget::SetState(bool IsON)
  55. {
  56. if(IsON != mIsOn) //don't repaint if not necessary
  57. {
  58. mIsOn = IsON;
  59. repaint();
  60. }
  61. }
  62. void CONOFFStatusWidget::Toggle()
  63. {
  64. if(mIsOn)
  65. {
  66. SetOFF();
  67. }
  68. else
  69. {
  70. SetON();
  71. }
  72. }
  73. void CONOFFStatusWidget::paintEvent(QPaintEvent *PaintEvent)
  74. {
  75. QPainter painter(this);
  76. if(mIsOn)
  77. {
  78. painter.drawPixmap(0,0,mLedOnPixmap);
  79. }
  80. else
  81. {
  82. painter.drawPixmap(0,0,mLedOffPixmap);
  83. }
  84. }
  85. void CONOFFStatusWidget::resizeEvent(QResizeEvent *event)
  86. {
  87. int width = geometry().width();
  88. int height = geometry().height();
  89. bool square = height == width;
  90. if(mLabel->text().isEmpty() == false)
  91. {
  92. height = geometry().height() - mLabel->fontMetrics().height();
  93. }
  94. if(square)
  95. {
  96. width = height;
  97. }
  98. mLedOffPixmap = QPixmap("./Images/green-led-off-md.png").scaled(width,height);
  99. mLedOnPixmap = QPixmap("./Images/green-led-on-md.png").scaled(width,height);
  100. int LabelWidth = mLabel->fontMetrics().width(mLabel->text());
  101. mLabel->move((width/2)-(LabelWidth/2),height);
  102. }
  103. void CONOFFStatusWidget::mouseReleaseEvent(QMouseEvent *event)
  104. {
  105. emit Clicked(mIndex);
  106. }