bool Clickable::updateAndGetClicked(sf::Vector2f mousePosition, bool isLeftDown) { if(rect.contains(mousePosition.x, mousePosition.y)) // Mouse is over the clicking area { if(wasClicked) { if(!isLeftDown) // Clicked and released inside the clicking area { wasHovered = true; wasClicked = false; hovered(); return true; } } else { if(isLeftDown) // Clicked in the clicking area { wasClicked = true; clicked(); } else if(!wasHovered) { wasHovered = true; hovered(); } } } else // Mouse is not over the clicking area { if(wasHovered || wasClicked) { wasClicked = false; wasHovered = false; unhovered(); } if(isLeftDown) { clickedOutside(); } } return false; }
void FinanceButton::focusOutEvent(QFocusEvent *event) { this->QPushButton::focusOutEvent(event); emit unhovered(); }
void FinanceButton::leaveEvent(QEvent *event) { this->QPushButton::leaveEvent(event); emit unhovered(); }
void Clickable::resetStates() { wasClicked = false; wasHovered = false; unhovered(); }