added 'tooltip-delay' property

This commit is contained in:
MihailRis
2024-05-24 13:18:20 +03:00
parent 4400efae33
commit e3989cb178
7 changed files with 28 additions and 3 deletions
+2 -2
View File
@@ -62,8 +62,8 @@ void GUI::onAssetsLoad(Assets* assets) {
void GUI::updateTooltip(float delta) {
float mouseDelta = glm::length(Events::delta);
if ((hover && mouseDelta < 1.0f) ||
(hover && hover->isInside(Events::cursor) && tooltipTimer >= tooltipDelay)) {
if (tooltipTimer + delta >= tooltipDelay) {
(hover && hover->isInside(Events::cursor) && tooltipTimer >= hover->getTooltipDelay())) {
if (tooltipTimer + delta >= hover->getTooltipDelay()) {
auto label = std::dynamic_pointer_cast<gui::Label>(get("tooltip.label"));
const auto& text = hover->getTooltip();
if (label && !text.empty()) {
-1
View File
@@ -65,7 +65,6 @@ namespace gui {
std::queue<runnable> postRunnables;
float tooltipTimer = 0.0f;
float tooltipDelay = 0.5f;
float doubleClickTimer = 0.0f;
float doubleClickDelay = 0.5f;
bool doubleClicked = false;
@@ -109,6 +109,7 @@ SlotView::SlotView(
layout(layout)
{
setColor(glm::vec4(0, 0, 0, 0.2f));
setTooltipDelay(0.05f);
}
void SlotView::draw(const DrawContext* pctx, Assets* assets) {
+9
View File
@@ -137,6 +137,15 @@ const std::wstring UINode::getTooltip() const {
return tooltip;
}
void UINode::setTooltipDelay(float delay) {
tooltipDelay = delay;
}
float UINode::getTooltipDelay() const {
return tooltipDelay;
}
glm::vec2 UINode::calcPos() const {
if (parent) {
return pos + parent->calcPos() + parent->contentOffset();
+5
View File
@@ -111,6 +111,8 @@ namespace gui {
ActionsSet doubleClickCallbacks;
/// @brief element tooltip text
std::wstring tooltip;
/// @brief element tooltip delay
float tooltipDelay = 0.5f;
UINode(glm::vec2 size);
public:
@@ -202,6 +204,9 @@ namespace gui {
virtual void setTooltip(const std::wstring& text);
virtual const std::wstring getTooltip() const;
virtual void setTooltipDelay(float delay);
virtual float getTooltipDelay() const;
virtual glm::vec4 calcColor() const;
/// @brief Get inner content offset. Used for scroll
+3
View File
@@ -146,6 +146,9 @@ static void _readUINode(UiXmlReader& reader, xml::xmlelement element, UINode& no
if (element->has("tooltip")) {
node.setTooltip(util::str2wstr_utf8(element->attr("tooltip").getText()));
}
if (element->has("tooltip-delay")) {
node.setTooltipDelay(element->attr("tooltip-delay").asFloat());
}
if (auto onclick = create_action(reader, element, "onclick")) {
node.listenAction(onclick);