本文整理汇总了C++中WidgetPtr::isModalMouseInputFocused方法的典型用法代码示例。如果您正苦于以下问题:C++ WidgetPtr::isModalMouseInputFocused方法的具体用法?C++ WidgetPtr::isModalMouseInputFocused怎么用?C++ WidgetPtr::isModalMouseInputFocused使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WidgetPtr
的用法示例。
在下文中一共展示了WidgetPtr::isModalMouseInputFocused方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetMouseEventSource
WidgetPtr Gui::GetMouseEventSource(int x, int y)
{
WidgetPtr widget = GetWidgetAt(x, y);
if (mFocusHandler->GetModalMouseInputFocused()
&& !widget->isModalMouseInputFocused())
{
return mFocusHandler->GetModalMouseInputFocused();
}
return widget;
}
示例2: distributeKeyEvent
void Gui::distributeKeyEvent(KeyEvent& keyEvent)
{
WidgetPtr parent = keyEvent.GetSource();
WidgetPtr widget = keyEvent.GetSource();
if (mFocusHandler->GetModalFocused() != NULL
&& !widget->isModalFocused())
{
return;
}
if (mFocusHandler->GetModalMouseInputFocused() != NULL
&& !widget->isModalMouseInputFocused())
{
return;
}
while (parent != NULL)
{
// If the widget has been removed due to input
// cancel the distribution.
if (!Widget::widgetExists(widget))
{
break;
}
parent = widget->GetParent();
if (widget->IsEnabled())
{
std::list<KeyListener*> keyListeners = widget->_getKeyListeners();
// Send the event to all key listeners of the source widget.
for (std::list<KeyListener*>::iterator it = keyListeners.begin();
it != keyListeners.end();
++it)
{
switch (keyEvent.getType())
{
case KeyEvent::PRESSED:
(*it)->keyPressed(keyEvent);
break;
case KeyEvent::RELEASED:
(*it)->keyReleased(keyEvent);
break;
default:
throw GCN_EXCEPTION("Unknown key event type.");
}
}
}
WidgetPtr swap = widget;
widget = parent;
parent = (WidgetPtr)swap->GetParent();
// If a non modal focused widget has been reach
// and we have modal focus cancel the distribution.
if (mFocusHandler->GetModalFocused() != NULL
&& !widget->isModalFocused())
{
break;
}
}
}
示例3: distributeMouseEvent
void Gui::distributeMouseEvent(WidgetPtr source,
int type,
int button,
int x,
int y,
bool force,
bool toSourceOnly)
{
WidgetPtr parent = source;
WidgetPtr widget = source;
if (mFocusHandler->GetModalFocused()
&& !widget->isModalFocused()
&& !force)
{
return;
}
if (mFocusHandler->GetModalMouseInputFocused()
&& !widget->isModalMouseInputFocused()
&& !force)
{
return;
}
MouseEvent mouseEvent(source,
mShiftPressed,
mControlPressed,
mAltPressed,
mMetaPressed,
type,
button,
x,
y,
mClickCount);
while (parent != NULL)
{
// If the widget has been removed due to input
// cancel the distribution.
if (!Widget::widgetExists(widget))
{
break;
}
parent = (WidgetPtr)widget->GetParent();
if (widget->IsEnabled() || force)
{
int widgetX, widgetY;
widget->getAbsolutePosition(widgetX, widgetY);
mouseEvent.mX = x - widgetX;
mouseEvent.mY = y - widgetY;
std::list<MouseListener*> mouseListeners = widget->_getMouseListeners();
// Send the event to all mouse listeners of the widget.
for (std::list<MouseListener*>::iterator it = mouseListeners.begin();
it != mouseListeners.end();
++it)
{
switch (mouseEvent.getType())
{
case MouseEvent::ENTERED:
(*it)->MouseEntered(mouseEvent);
break;
case MouseEvent::EXITED:
(*it)->MouseExited(mouseEvent);
break;
case MouseEvent::MOVED:
(*it)->mouseMoved(mouseEvent);
break;
case MouseEvent::PRESSED:
(*it)->mousePressed(mouseEvent);
break;
case MouseEvent::RELEASED:
(*it)->mouseReleased(mouseEvent);
break;
case MouseEvent::WHEEL_MOVED_UP:
(*it)->mouseWheelMovedUp(mouseEvent);
break;
case MouseEvent::WHEEL_MOVED_DOWN:
(*it)->mouseWheelMovedDown(mouseEvent);
break;
case MouseEvent::DRAGGED:
(*it)->mouseDragged(mouseEvent);
break;
case MouseEvent::CLICKED:
(*it)->mouseClicked(mouseEvent);
break;
default:
throw GCN_EXCEPTION("Unknown mouse event type.");
}
}
if (toSourceOnly)
{
break;
}
//.........这里部分代码省略.........