#include "Button.h" #include "Display.h" Button::Button (QWidget *parent, uint normal, uint pressed) : PixWidget (parent) { m_name_normal = normal; m_name_pressed = pressed; } Button::~Button () { } void Button::setPixmaps(Skin *skin) { m_pixmap_normal = skin->getItem (m_name_normal); m_pixmap_pressed = skin->getItem (m_name_pressed); m_pixmap = m_pixmap_normal; setMinimumSize (m_pixmap.size ()); setMaximumSize (m_pixmap.size ()); update(); } void Button::mousePressEvent (QMouseEvent *event) { ((SkinDisplay *)parent ())->setNoDrag (true); m_pixmap = m_pixmap_pressed; update (); } void Button::mouseReleaseEvent (QMouseEvent *event) { ((SkinDisplay *)parent())->setNoDrag (false); m_pixmap = m_pixmap_normal; update(); emit clicked(); } ToggleButton::ToggleButton (QWidget *parent, uint on_normal, uint on_pressed, uint off_normal, uint off_pressed) : Button (parent, off_normal, off_pressed) { m_name_on_normal = on_normal; m_name_on_pressed = on_pressed; m_name_off_normal = off_normal; m_name_off_pressed = off_pressed; m_toggled_on = true; toggleOn (); connect (this, SIGNAL(clicked()), this, SLOT (toggleOn())); } void ToggleButton::setPixmaps(Skin *skin) { m_pixmap_on_normal = skin->getItem(m_name_on_normal); m_pixmap_on_pressed = skin->getItem(m_name_on_pressed); m_pixmap_off_normal = skin->getItem(m_name_off_normal); m_pixmap_off_pressed = skin->getItem(m_name_off_pressed); setMinimumSize (m_pixmap.size ()); setMaximumSize (m_pixmap.size ()); update(); } void ToggleButton::toggleOn () { if (!m_toggled_on) { m_pixmap_normal = m_pixmap_on_normal; m_pixmap_pressed = m_pixmap_on_pressed; m_toggled_on = true; } else { m_pixmap_normal = m_pixmap_off_normal; m_pixmap_pressed = m_pixmap_off_pressed; m_toggled_on = false; } m_pixmap = m_pixmap_normal; update (); } ToggleButton::~ToggleButton () { }