Advertisement
Guest User

Untitled

a guest
Jul 23rd, 2013
56
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include "TriforceWidget.hpp"
  2. #include <QPainter>
  3. #include <QMouseEvent>
  4. #include <QDebug>
  5. #include <QStatusBar>
  6. #include <QMainWindow>
  7.  
  8. TriforceWidget::TriforceWidget(QWidget *parent) :
  9.     QWidget(parent),
  10.     m_bg(QImage(":/Triforce/Background")),
  11.     m_piece(QImage(":/Triforce/Piece")),
  12.     m_glow(QImage(":/Triforce/Glow")),
  13.     m_courage(true),
  14.     m_courageHovered(false),
  15.     m_power(true),
  16.     m_powerHovered(false),
  17.     m_wisdom(true),
  18.     m_wisdomHovered(false)
  19. {
  20.     setMouseTracking(true);
  21.     setBaseSize(m_bg.width(), m_bg.height());
  22.     setMinimumSize(m_bg.width(), m_bg.height());
  23.     setMaximumSize(m_bg.width(), m_bg.height());
  24. }
  25.  
  26. bool TriforceWidget::isCourageChecked() const
  27. {
  28.     return m_courage;
  29. }
  30.  
  31. bool TriforceWidget::isWisdomChecked() const
  32. {
  33.     return m_wisdom;
  34. }
  35.  
  36. bool TriforceWidget::isPowerChecked() const
  37. {
  38.     return m_power;
  39. }
  40.  
  41. void TriforceWidget::setCourageChecked(bool checked)
  42. {
  43.     m_courage = checked;
  44. }
  45.  
  46. void TriforceWidget::setWisdomChecked(bool checked)
  47. {
  48.     m_wisdom = checked;
  49. }
  50.  
  51. void TriforceWidget::setPowerChecked(bool checked)
  52. {
  53.     m_power = checked;
  54. }
  55.  
  56. void TriforceWidget::mousePressEvent(QMouseEvent* event)
  57. {
  58.     if (event->button() == Qt::LeftButton)
  59.     {
  60.         if (m_courageHovered)
  61.         {
  62.             m_courage = !m_courage;
  63.             emit courageClicked(m_courage);
  64.         }
  65.         else if (m_wisdomHovered)
  66.         {
  67.             m_wisdom = !m_wisdom;
  68.             emit wisdomClicked(m_wisdom);
  69.         }
  70.         else if (m_powerHovered)
  71.         {
  72.             m_power = !m_power;
  73.             emit powerClicked(m_power);
  74.         }
  75.     }
  76. }
  77.  
  78. void TriforceWidget::mouseMoveEvent(QMouseEvent* event)
  79. {
  80.     setStatusTip(tr("Triforce Pieces"));
  81.     if ((event->pos().x()    > (m_bg.width()/2)
  82.         && event->pos().x()  < (m_bg.width()/2 + m_piece.width()))
  83.         && (event->pos().y() > (m_bg.height()/2)
  84.         && event->pos().y()  < (m_bg.height()/2 + m_piece.height() - 4)))
  85.     {
  86.         setToolTip(tr("Triforce of Courage"));
  87.         //update();
  88.         m_courageHovered = true;
  89.     }
  90.     else
  91.     {
  92.         m_courageHovered = false;
  93.     }
  94.     if ((event->pos().x()    > (m_bg.width()/2 - m_piece.width())
  95.         && event->pos().x()  < (m_bg.width()/2))
  96.         && (event->pos().y() > (m_bg.height()/2)
  97.         && event->pos().y()  < (m_bg.height()/2 + m_piece.height() - 4)))
  98.     {
  99.         setToolTip(tr("Triforce of Wisdom"));
  100.         //update();
  101.         m_wisdomHovered = true;
  102.     }
  103.     else
  104.     {
  105.         m_wisdomHovered = false;
  106.     }
  107.  
  108.     if ((event->pos().x()    > (m_bg.width()/2 - m_piece.width()/2)
  109.         && event->pos().x()  < (m_bg.width()/2 + m_piece.width()/2))
  110.         && (event->pos().y() > (m_piece.height()/2 + 4)
  111.         && event->pos().y()  < ((m_piece.height()/2 + 4) + (m_piece.height() - 8))))
  112.     {
  113.         setToolTip(tr("Triforce of Power"));
  114.         //update();
  115.         m_powerHovered = true;
  116.     }
  117.     else
  118.     {
  119.         m_powerHovered = false;
  120.     }
  121. }
  122.  
  123. void TriforceWidget::paintEvent(QPaintEvent* event)
  124. {
  125.     Q_UNUSED(event);
  126.     QPainter painter(this);
  127.  
  128.     // Draw the background first
  129.     painter.drawImage(0, 0, m_bg);
  130.  
  131.     // Courage goes on the lower left
  132.     if (m_courage)
  133.         painter.drawImage(m_bg.width()/2 - 2, m_bg.height()/2 - 4, m_piece);
  134.     if (m_courageHovered)
  135.         painter.drawImage(m_bg.width()/2 - 2, m_bg.height()/2 - 4, m_glow);
  136.  
  137.     // wisdom goes on the lower right
  138.     if (m_wisdom)
  139.         painter.drawImage(m_piece.width()/2, m_bg.height()/2 - 4, m_piece);
  140.     if (m_wisdomHovered)
  141.         painter.drawImage(m_piece.width()/2, m_bg.height()/2 - 4, m_glow);
  142.  
  143.     // power goes at the top
  144.     if (m_power)
  145.         painter.drawImage((m_bg.width() / 2) - (m_piece.width()/2), m_piece.height()/2 + 4, m_piece);
  146.     if (m_powerHovered)
  147.         painter.drawImage((m_bg.width() / 2) - (m_piece.width()/2), m_piece.height()/2 + 4, m_glow);
  148.  
  149.     this->update();
  150. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement