本文整理汇总了C++中MouseInput::getType方法的典型用法代码示例。如果您正苦于以下问题:C++ MouseInput::getType方法的具体用法?C++ MouseInput::getType怎么用?C++ MouseInput::getType使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MouseInput
的用法示例。
在下文中一共展示了MouseInput::getType方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: handleMouseInput
void Gui::handleMouseInput()
{
while (!mInput->isMouseQueueEmpty())
{
MouseInput mouseInput = mInput->dequeueMouseInput();
// Save the current mouse state. It will be needed if modal focus
// changes or modal mouse input focus changes.
mLastMouseX = mouseInput.getX();
mLastMouseY = mouseInput.getY();
switch (mouseInput.getType())
{
case MouseInput::PRESSED:
handleMousePressed(mouseInput);
break;
case MouseInput::RELEASED:
handleMouseReleased(mouseInput);
break;
case MouseInput::MOVED:
handleMouseMoved(mouseInput);
break;
case MouseInput::WHEEL_MOVED_DOWN:
handleMouseWheelMovedDown(mouseInput);
break;
case MouseInput::WHEEL_MOVED_UP:
handleMouseWheelMovedUp(mouseInput);
break;
default:
throw GCN_EXCEPTION("Unknown mouse input type.");
break;
}
}
}
示例2: _mouseInputMessage
void Widget::_mouseInputMessage(const MouseInput& mouseInput)
{
if (mFocusHandler == NULL)
{
//throw GCN_EXCEPTION("No focushandler set (did you add the widget to the gui?).");
assert(!"No focushandler set (did you add the widget to the gui?).");
}
if (!mEnabled || (mFocusHandler->getModalFocused() != NULL &&
!hasModalFocus()))
{
return;
}
int x = mouseInput.x;
int y = mouseInput.y;
int b = mouseInput.getButton();
int ts = mouseInput.getTimeStamp();
MouseListenerIterator iter;
switch(mouseInput.getType())
{
case MouseInput::MOTION:
for (iter = mMouseListeners.begin(); iter != mMouseListeners.end(); ++iter)
{
(*iter)->mouseMotion(x, y);
}
break;
case MouseInput::PRESS:
if (hasMouse())
{
requestFocus();
mFocusHandler->requestDrag(this);
}
if (b != MouseInput::WHEEL_UP && b != MouseInput::WHEEL_DOWN)
{
for (iter = mMouseListeners.begin(); iter != mMouseListeners.end(); ++iter)
{
(*iter)->mousePress(x, y, b);
}
if (hasMouse())
{
if (ts - mClickTimeStamp < 300 && mClickButton == b)
{
mClickCount++;
}
else
{
mClickCount = 0;
}
mClickButton = b;
mClickTimeStamp = ts;
}
else
{
mClickButton = 0;
}
}
else if (b == MouseInput::WHEEL_UP)
{
for (iter = mMouseListeners.begin(); iter != mMouseListeners.end(); ++iter)
{
(*iter)->mouseWheelUp(x, y);
}
}
else
{
for (iter = mMouseListeners.begin(); iter != mMouseListeners.end(); ++iter)
{
(*iter)->mouseWheelDown(x, y);
}
}
setDirty(true);
break;
case MouseInput::RELEASE:
if (isDragged())
{
mFocusHandler->dragNone();
}
if (b != MouseInput::WHEEL_UP && b != MouseInput::WHEEL_DOWN)
{
for (iter = mMouseListeners.begin(); iter != mMouseListeners.end(); ++iter)
{
(*iter)->mouseRelease(x, y, b);
}
}
if (mHasMouse)
{
if (b == mClickButton)
{
for (iter = mMouseListeners.begin(); iter != mMouseListeners.end(); ++iter)
{
//.........这里部分代码省略.........