mirror of
https://github.com/edubart/otclient.git
synced 2025-10-21 23:05:54 +02:00
a bunch of stuff
This commit is contained in:
@@ -106,17 +106,6 @@ UIElementPtr UIContainer::getChildById(const std::string& id)
|
||||
return UIElementPtr();
|
||||
}
|
||||
|
||||
UIElementPtr UIContainer::getChildByPos(const Point& pos)
|
||||
{
|
||||
for(auto it = m_children.rbegin(); it != m_children.rend(); ++it) {
|
||||
const UIElementPtr& element = (*it);
|
||||
if(element->getRect().contains(pos))
|
||||
return element;
|
||||
}
|
||||
|
||||
return UIElementPtr();
|
||||
}
|
||||
|
||||
UIElementPtr UIContainer::recursiveGetChildById(const std::string& id)
|
||||
{
|
||||
if(getId() == id || id == "self")
|
||||
@@ -144,6 +133,35 @@ UIElementPtr UIContainer::recursiveGetChildById(const std::string& id)
|
||||
return UIElementPtr();
|
||||
}
|
||||
|
||||
UIElementPtr UIContainer::getChildByPos(const Point& pos)
|
||||
{
|
||||
for(auto it = m_children.rbegin(); it != m_children.rend(); ++it) {
|
||||
const UIElementPtr& element = (*it);
|
||||
if(element->getRect().contains(pos))
|
||||
return element;
|
||||
}
|
||||
|
||||
return UIElementPtr();
|
||||
}
|
||||
|
||||
UIElementPtr UIContainer::recursiveGetChildByPos(const Point& pos)
|
||||
{
|
||||
for(auto it = m_children.rbegin(); it != m_children.rend(); ++it) {
|
||||
const UIElementPtr& element = (*it);
|
||||
if(element->getRect().contains(pos)) {
|
||||
if(UIContainerPtr container = element->asUIContainer()) {
|
||||
if(UIElementPtr containerChild = container->recursiveGetChildByPos(pos))
|
||||
return containerChild;
|
||||
else
|
||||
return container;
|
||||
}
|
||||
return element;
|
||||
}
|
||||
}
|
||||
|
||||
return UIElementPtr();
|
||||
}
|
||||
|
||||
void UIContainer::pushChildToTop(const UIElementPtr& child)
|
||||
{
|
||||
auto it = std::find(m_children.begin(), m_children.end(), child);
|
||||
@@ -227,12 +245,13 @@ void UIContainer::focusNextElement()
|
||||
void UIContainer::setFocusedElement(const UIElementPtr& focusedElement)
|
||||
{
|
||||
if(focusedElement != m_focusedElement) {
|
||||
if(m_focusedElement)
|
||||
m_focusedElement->onFocusChange();
|
||||
|
||||
UIElementPtr oldFocused = m_focusedElement;
|
||||
m_focusedElement = focusedElement;
|
||||
if(m_focusedElement)
|
||||
m_focusedElement->onFocusChange();
|
||||
|
||||
if(oldFocused)
|
||||
oldFocused->onFocusChange();
|
||||
if(focusedElement)
|
||||
focusedElement->onFocusChange();
|
||||
}
|
||||
|
||||
// when containers are focused they go to the top
|
||||
|
Reference in New Issue
Block a user