mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-01-20 04:34:48 +00:00
83 lines
2.1 KiB
C#
83 lines
2.1 KiB
C#
|
|
function InputMonitorDlg::onWake(%this)
|
|
{
|
|
if ((%this.maxLines $= "") || (%this.maxLines < 10))
|
|
%this.maxLines = 500;
|
|
if (%this.axisDeadzone $= "")
|
|
%this.axisDeadzone = 0.1;
|
|
|
|
if (!isObject(InputEventVector))
|
|
new MessageVector(InputEventVector);
|
|
|
|
InputEventVector.clear();
|
|
EventVectorCtrl.attach(InputEventVector);
|
|
|
|
%this.updateDevicesLine();
|
|
}
|
|
|
|
function InputMonitorDlg::updateDevicesLine(%this)
|
|
{
|
|
%sdlDevices = 0;
|
|
if (isMethod("SDLInputManager", "numJoysticks"))
|
|
%sdlDevices = SDLInputManager::numJoysticks();
|
|
%openDevices = 0;
|
|
for (%i = 0; %i < %sdlDevices; %i++)
|
|
{
|
|
%openState = SDLInputManager::getDeviceOpenState(%i);
|
|
if (%openState > 0)
|
|
%openDevices++;
|
|
}
|
|
%this.setDevicesLine(%openDevices, %sdlDevices);
|
|
}
|
|
|
|
function InputMonitorDlg::setDevicesLine(%this, %openDevices, %sdlDevices)
|
|
{
|
|
%text = %openDevices @ " of " @ %sdlDevices @ " Joystick devices opened";
|
|
%this-->devicesLine.setText(%text);
|
|
}
|
|
|
|
function InputMonitorCtrl::onInputEvent(%this, %device, %action, %state)
|
|
{
|
|
%text = %device @ ", " @ %action @ (%state ? " Make" : " Break");
|
|
|
|
if (InputEventVector.getNumLines() > InputMonitorDlg.maxLines)
|
|
InputEventVector.popFrontLine();
|
|
InputEventVector.pushBackLine(%text, 0);
|
|
|
|
// Test for the reserved keystrokes:
|
|
if (%device $= "keyboard")
|
|
{
|
|
// Cancel...
|
|
if (%action $= "escape")
|
|
{
|
|
Canvas.popDialog(InputMonitorDlg);
|
|
return;
|
|
}
|
|
// Settings...
|
|
if ((%action $= "f2") && %state)
|
|
{
|
|
Canvas.popDialog(InputMonitorDlg);
|
|
Canvas.pushDialog(JoystickSettingsDlg);
|
|
}
|
|
}
|
|
}
|
|
|
|
function InputMonitorCtrl::onAxisEvent(%this, %device, %action, %axisValue)
|
|
{
|
|
if (mAbs(%axisValue) < InputMonitorDlg.axisDeadzone)
|
|
{
|
|
if (%this.lastZero[%device@%action])
|
|
return;
|
|
%this.lastZero[%device@%action] = true;
|
|
%axisValue = 0;
|
|
}
|
|
else
|
|
%this.lastZero[%device@%action] = false;
|
|
|
|
%text = %device @ ", " @ %action SPC %axisValue;
|
|
|
|
if (InputEventVector.getNumLines() > InputMonitorDlg.maxLines)
|
|
InputEventVector.popFrontLine();
|
|
InputEventVector.pushBackLine(%text, 0);
|
|
}
|