onclick event moved to UINode

This commit is contained in:
MihailRis 2024-03-20 18:56:49 +03:00
parent 9611252d84
commit 6f351e2b79

View File

@ -99,6 +99,17 @@ static void _readUINode(UiXmlReader& reader, xml::xmlelement element, UINode& no
element->attr("gravity").getText()
));
}
if (element->has("onclick")) {
auto callback = scripting::create_runnable(
reader.getEnvironment().getId(),
element->attr("onclick").getText(),
reader.getFilename()
);
node.listenAction([callback](GUI*) {
callback();
});
}
}
@ -224,17 +235,6 @@ static std::shared_ptr<UINode> readButton(UiXmlReader& reader, xml::xmlelement e
button = std::make_shared<Button>(text, glm::vec4(0.0f), nullptr);
_readPanel(reader, element, *button, true);
}
if (element->has("onclick")) {
auto callback = scripting::create_runnable(
reader.getEnvironment().getId(),
element->attr("onclick").getText(),
reader.getFilename()
);
button->listenAction([callback](GUI*) {
callback();
});
}
if (element->has("text-align")) {
button->setTextAlign(align_from_string(element->attr("text-align").getText(), button->getTextAlign()));
}