gui fixes
This commit is contained in:
parent
e059b9395f
commit
fbc2cc5ce9
@ -229,7 +229,7 @@ void UINode::setGravity(Gravity gravity) {
|
||||
switch (gravity) {
|
||||
case Gravity::top_left:
|
||||
case Gravity::center_left:
|
||||
case Gravity::bottom_left: x = parentSize.x+margin.x; break;
|
||||
case Gravity::bottom_left: x = margin.x; break;
|
||||
case Gravity::top_center:
|
||||
case Gravity::center_center:
|
||||
case Gravity::bottom_center: x = (parentSize.x-size.x)/2.0f; break;
|
||||
@ -241,7 +241,7 @@ void UINode::setGravity(Gravity gravity) {
|
||||
switch (gravity) {
|
||||
case Gravity::top_left:
|
||||
case Gravity::top_center:
|
||||
case Gravity::top_right: y = parentSize.y+margin.y; break;
|
||||
case Gravity::top_right: y = margin.y; break;
|
||||
case Gravity::center_left:
|
||||
case Gravity::center_center:
|
||||
case Gravity::center_right: y = (parentSize.y-size.y)/2.0f; break;
|
||||
|
||||
@ -199,6 +199,7 @@ void Panel::fullRefresh() {
|
||||
}
|
||||
|
||||
void Panel::add(std::shared_ptr<UINode> node) {
|
||||
node->setResizing(true);
|
||||
Container::add(node);
|
||||
fullRefresh();
|
||||
}
|
||||
|
||||
@ -35,7 +35,7 @@ static Gravity gravity_from_string(const std::string& str) {
|
||||
{"bottom-right", Gravity::bottom_right},
|
||||
};
|
||||
auto found = gravity_names.find(str);
|
||||
if (found == gravity_names.end()) {
|
||||
if (found != gravity_names.end()) {
|
||||
return found->second;
|
||||
}
|
||||
return Gravity::none;
|
||||
@ -229,7 +229,12 @@ static std::shared_ptr<UINode> readButton(UiXmlReader& reader, xml::xmlelement e
|
||||
auto& elements = element->getElements();
|
||||
if (!elements.empty() && elements.at(0)->getTag() != "#") {
|
||||
glm::vec4 padding = element->attr("padding", "0,0,0,0").asVec4();
|
||||
button = std::make_shared<Button>(reader.readUINode(element->getElements().at(0)), padding);
|
||||
auto inner = reader.readUINode(element->getElements().at(0));
|
||||
if (inner != nullptr) {
|
||||
button = std::make_shared<Button>(inner, padding);
|
||||
} else {
|
||||
button = std::make_shared<Button>(L"", glm::vec4(0.0f), nullptr);
|
||||
}
|
||||
_readPanel(reader, element, *button, false);
|
||||
} else {
|
||||
std::wstring text = readAndProcessInnerText(element, reader.getContext());
|
||||
@ -379,6 +384,13 @@ void UiXmlReader::addIgnore(const std::string& tag) {
|
||||
}
|
||||
|
||||
std::shared_ptr<UINode> UiXmlReader::readUINode(xml::xmlelement element) {
|
||||
if (element->has("if")) {
|
||||
const auto& cond = element->attr("if").getText();
|
||||
if (cond.empty() || cond == "false") {
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
const std::string& tag = element->getTag();
|
||||
auto found = readers.find(tag);
|
||||
if (found == readers.end()) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user