update: tooltip conditions

This commit is contained in:
MihailRis
2024-06-06 11:29:30 +03:00
parent 7db76a0e6a
commit a57f8f41bb
+17 -22
View File
@@ -68,30 +68,25 @@ void GUI::updateTooltip(float delta) {
if (hover == nullptr || !hover->isInside(Events::cursor)) { if (hover == nullptr || !hover->isInside(Events::cursor)) {
return resetTooltip(); return resetTooltip();
} }
float mouseDelta = glm::length(Events::delta); if (tooltipTimer + delta >= hover->getTooltipDelay()) {
if (mouseDelta < 1.0f || tooltipTimer >= hover->getTooltipDelay()) { auto label = std::dynamic_pointer_cast<gui::Label>(get("tooltip.label"));
if (tooltipTimer + delta >= hover->getTooltipDelay()) { const auto& text = hover->getTooltip();
auto label = std::dynamic_pointer_cast<gui::Label>(get("tooltip.label")); if (text.empty() && tooltip->isVisible()) {
const auto& text = hover->getTooltip(); return resetTooltip();
if (text.empty() && tooltip->isVisible()) { }
return resetTooltip(); if (label && !text.empty()) {
} tooltip->setVisible(true);
if (label && !text.empty()) { label->setText(langs::get(text));
tooltip->setVisible(true); auto size = label->getSize()+glm::vec2(4.0f);
label->setText(langs::get(text)); auto pos = Events::cursor+glm::vec2(10.0f);
auto size = label->getSize()+glm::vec2(4.0f); auto rootSize = container->getSize();
auto pos = Events::cursor+glm::vec2(10.0f); pos.x = glm::min(pos.x, rootSize.x-size.x);
auto rootSize = container->getSize(); pos.y = glm::min(pos.y, rootSize.y-size.y);
pos.x = glm::min(pos.x, rootSize.x-size.x); tooltip->setSize(size);
pos.y = glm::min(pos.y, rootSize.y-size.y); tooltip->setPos(pos);
tooltip->setSize(size);
tooltip->setPos(pos);
}
} }
tooltipTimer += delta;
} else {
resetTooltip();
} }
tooltipTimer += delta;
} }
/// @brief Mouse related input and logic handling /// @brief Mouse related input and logic handling