Ejemplo n.º 1
0
/*
 * UserGetMouseButtonsState
 *
 * Returns bitfield of MK_* flags used in mouse messages
 */
WORD FASTCALL
UserGetMouseButtonsState(VOID)
{
    WORD wRet = 0;

    wRet = IntGetSysCursorInfo()->ButtonsDown;

    if (IS_KEY_DOWN(gafAsyncKeyState, VK_SHIFT)) wRet |= MK_SHIFT;
    if (IS_KEY_DOWN(gafAsyncKeyState, VK_CONTROL)) wRet |= MK_CONTROL;

    return wRet;
}
Ejemplo n.º 2
0
filter_result
MouseButtonCommandActuator::KeyEvent(const BMessage* keyMessage, BList* outList,
	void** setAsyncData, BMessage* mouseMessage)
{
	if (IS_KEY_DOWN(keyMessage) != fKeyDown) {
		_GenerateMouseButtonEvent(IS_KEY_DOWN(keyMessage), keyMessage, outList,
			mouseMessage);
		fKeyDown = IS_KEY_DOWN(keyMessage);

		return B_DISPATCH_MESSAGE;
	} else {
		// This will handle key-repeats, which we don't want turned into lots
		// of B_MOUSE_DOWN messages.
		return B_SKIP_MESSAGE;
	}
}
Ejemplo n.º 3
0
filter_result
MouseUpCommandActuator::KeyEvent(const BMessage* keyMessage, BList* outList,
	void** setAsyncData, BMessage* mouseMessage)
{
	if (IS_KEY_DOWN(keyMessage))
		_GenerateMouseButtonEvent(false, keyMessage, outList, mouseMessage);

	return B_DISPATCH_MESSAGE;
}
Ejemplo n.º 4
0
filter_result
LaunchCommandActuator::KeyEvent(const BMessage* keyMessage, BList* outList,
	void** setAsyncData, BMessage* mouseMessage)
{
	if (IS_KEY_DOWN(keyMessage)) {
		// cause KeyEventAsync() to be called asynchronously
		*setAsyncData = (void*) true;
	}
	return B_SKIP_MESSAGE;
}
Ejemplo n.º 5
0
/*
 * IntGetModifiers
 *
 * Returns a value that indicates if the key is a modifier key, and
 * which one.
 */
static
UINT FASTCALL
IntGetModifiers(PBYTE pKeyState)
{
    UINT fModifiers = 0;

    if (IS_KEY_DOWN(pKeyState, VK_SHIFT))
        fModifiers |= MOD_SHIFT;

    if (IS_KEY_DOWN(pKeyState, VK_CONTROL))
        fModifiers |= MOD_CONTROL;

    if (IS_KEY_DOWN(pKeyState, VK_MENU))
        fModifiers |= MOD_ALT;

    if (IS_KEY_DOWN(pKeyState, VK_LWIN) || IS_KEY_DOWN(pKeyState, VK_RWIN))
        fModifiers |= MOD_WIN;

    return fModifiers;
}
Ejemplo n.º 6
0
void idle()
{
	calcFPS();
	glCheckError("idle");

	static Timer t;
	double dt = t.elapsed_time();

	if(IS_KEY_DOWN('w') || IS_KEY_DOWN('W'))
		g_CameraPos += g_CameraForward*g_Speed*dt;
	if(IS_KEY_DOWN('s') || IS_KEY_DOWN('S'))
		g_CameraPos -= g_CameraForward*g_Speed*dt;
	if(IS_KEY_DOWN('q') || IS_KEY_DOWN('Q'))
		g_CameraPos +=NxVec3(0.0f,1.0f,0.0f)*g_Speed*dt;
	if(IS_KEY_DOWN('e') || IS_KEY_DOWN('E'))
		g_CameraPos -=NxVec3(0.0f,1.0f,0.0f)*g_Speed*dt;
	if(IS_KEY_DOWN('a') || IS_KEY_DOWN('A'))
		g_CameraPos -= g_CameraRight*g_Speed*dt;
	if(IS_KEY_DOWN('d') || IS_KEY_DOWN('D'))
		g_CameraPos += g_CameraRight*g_Speed*dt;

	t.reset();
	glutPostRedisplay();
}
Ejemplo n.º 7
0
void idle()
{
	calcFPS();
	glCheckError("idle");

	static Timer t;
	double dt = t.elapsed_time();
	NxSphere person;
	person.center = g_CameraPos;
	person.radius = 2.0f;

	if(IS_KEY_DOWN('w') || IS_KEY_DOWN('W'))
	{
		g_CameraPos += g_CameraForward*g_Speed*dt;
		if(gMyPhysX.getScene()->checkOverlapSphere(person,NX_ALL_SHAPES))
			g_CameraPos -= g_CameraForward*g_Speed*dt;
	}
	if(IS_KEY_DOWN('s') || IS_KEY_DOWN('S'))
	{
		g_CameraPos -= g_CameraForward*g_Speed*dt;
	}
	if(IS_KEY_DOWN('q') || IS_KEY_DOWN('Q'))
		g_CameraPos +=NxVec3(0.0f,1.0f,0.0f)*g_Speed*dt;
	if(IS_KEY_DOWN('e') || IS_KEY_DOWN('E'))
		g_CameraPos -=NxVec3(0.0f,1.0f,0.0f)*g_Speed*dt;
	if(IS_KEY_DOWN('a') || IS_KEY_DOWN('A'))
		g_CameraPos -= g_CameraRight*g_Speed*dt;
	if(IS_KEY_DOWN('d') || IS_KEY_DOWN('D'))
		g_CameraPos += g_CameraRight*g_Speed*dt;

	t.reset();
	glutPostRedisplay();
}