本文整理汇总了C++中WidgetPtr::getParent方法的典型用法代码示例。如果您正苦于以下问题:C++ WidgetPtr::getParent方法的具体用法?C++ WidgetPtr::getParent怎么用?C++ WidgetPtr::getParent使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WidgetPtr
的用法示例。
在下文中一共展示了WidgetPtr::getParent方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: upLayerItem
void LayerManager::upLayerItem(WidgetPtr _item)
{
if (null == _item) return;
// добираемся до рута
while (_item->getParent() != null) _item = _item->getParent();
// если приаттачены, то поднимаем
if (null != _item->mLayerKeeper) _item->mLayerKeeper->upItem(_item->mLayerItemKeeper);
}
示例2: addChild
void ContainerWidget::addChild(const WidgetPtr& child)
{
auto oldParent = child->getParent();
if(oldParent)
oldParent->removeChild(child);
children.push_back(child);
child->setParent(sharedFromThis());
}
示例3: convertToGlobal
// преобразует точку на виджете в глобальную позицию
IntPoint WidgetManager::convertToGlobal(const IntPoint& _point, WidgetPtr _widget)
{
IntPoint ret = _point;
WidgetPtr wid = _widget;
while (wid != null) {
ret += wid->getPosition();
wid = wid->getParent();
}
return ret;
}
示例4: isAncestorOf
bool Widget::isAncestorOf(const WidgetPtr &o) const
{
auto currentParent = o->getParent();
for (; currentParent; currentParent = currentParent->getParent())
{
if (currentParent.get() == this)
return true;
}
return false;
}
示例5: addWidgetModal
void InputManager::addWidgetModal(WidgetPtr _widget)
{
if (null == _widget) return;
MYGUI_ASSERT(null == _widget->getParent(), "Modal widget must be root");
resetMouseFocusWidget();
removeWidgetModal(_widget);
mVectorModalRootWidget.push_back(_widget);
setKeyFocusWidget(_widget);
LayerManager::getInstance().upLayerItem(_widget);
}
示例6: destroyWidget
void WidgetManager::destroyWidget(WidgetPtr _widget)
{
// иначе возможен бесконечный цикл
MYGUI_ASSERT(_widget != null, "widget is deleted");
// отписываем от всех
VectorWidgetPtr childs = _widget->getChilds();
for (VectorWidgetPtr::iterator iter = childs.begin(); iter != childs.end(); ++iter)
unlinkFromUnlinkers(*iter);
unlinkFromUnlinkers(_widget);
// делегирует удаление отцу виджета
WidgetPtr parent = _widget->getParent();
if (parent == null) Gui::getInstance()._destroyChildWidget(_widget);
else parent->_destroyChildWidget(_widget);
}
示例7: injectMousePress
bool InputManager::injectMousePress(int _absx, int _absy, MouseButton _id)
{
// если мы щелкнули не на гуй
if (false == isFocusMouse()) {
resetKeyFocusWidget();
return false;
}
// если активный элемент заблокирован
if (false == mWidgetMouseFocus->isEnabled()) return true;
// захватываем только по левой клавише и только если виджету надо
if (MB_Left == _id) {
// захват окна
mIsWidgetMouseCapture = true;
// запоминаем место нажатия
mLastLeftPressed.set(_absx, _absy);
}
// ищем вверх тот виджет который может принимать фокус
WidgetPtr focus = mWidgetMouseFocus;
while ((focus != null) && (false == focus->isNeedKeyFocus())) focus = focus->getParent();
// устанавливаем перед вызовом т.к. возможно внутри ктонить поменяет фокус под себя
setKeyFocusWidget(focus);
if (mWidgetMouseFocus != null) {
mWidgetMouseFocus->_onMouseButtonPressed(_absx, _absy, _id);
//mWidgetMouseFocus->_onMouseButtonPressed(_id);
// поднимаем виджет
LayerManager::getInstance().upLayerItem(mWidgetMouseFocus);
}
return true;
}