12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- 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);
- }
|