本文整理汇总了C++中WidgetPtr::isNeedKeyFocus方法的典型用法代码示例。如果您正苦于以下问题:C++ WidgetPtr::isNeedKeyFocus方法的具体用法?C++ WidgetPtr::isNeedKeyFocus怎么用?C++ WidgetPtr::isNeedKeyFocus使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WidgetPtr
的用法示例。
在下文中一共展示了WidgetPtr::isNeedKeyFocus方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: setKeyFocusWidget
void InputManager::setKeyFocusWidget(WidgetPtr _widget)
{
// ищем рутовый фокус
WidgetPtr root = _widget;
if (root != null) { while (root->_getOwner() != null) root = root->_getOwner(); }
// если рутовый фокус поменялся, то оповещаем
if (mWidgetRootKeyFocus != root) {
if (mWidgetRootKeyFocus != null) mWidgetRootKeyFocus->_onKeyChangeRootFocus(false);
if (root != null) root->_onKeyChangeRootFocus(true);
mWidgetRootKeyFocus = root;
}
// а вот тут уже проверяем обыкновенный фокус
if (_widget == mWidgetKeyFocus) return;
if (isFocusKey()) mWidgetKeyFocus->_onKeyLostFocus(_widget);
if (_widget != null) {
if (_widget->isNeedKeyFocus()) {
_widget->_onKeySetFocus(mWidgetKeyFocus);
mWidgetKeyFocus = _widget;
return;
}
}
mWidgetKeyFocus = null;
}
示例2: 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;
}