using System;
namespace WindowsInput
{
///
/// Implements the interface to simulate Keyboard and Mouse input and provide the state of those input devices.
///
public class InputSimulator : IInputSimulator
{
///
/// The instance to use for simulating keyboard input.
///
private readonly IKeyboardSimulator _keyboardSimulator;
///
/// The instance to use for simulating mouse input.
///
private readonly IMouseSimulator _mouseSimulator;
///
/// The instance to use for interpreting the state of the input devices.
///
private readonly IInputDeviceStateAdaptor _inputDeviceState;
///
/// Initializes a new instance of the class using the specified , and instances.
///
/// The instance to use for simulating keyboard input.
/// The instance to use for simulating mouse input.
/// The instance to use for interpreting the state of input devices.
public InputSimulator(IKeyboardSimulator keyboardSimulator, IMouseSimulator mouseSimulator, IInputDeviceStateAdaptor inputDeviceStateAdaptor)
{
_keyboardSimulator = keyboardSimulator;
_mouseSimulator = mouseSimulator;
_inputDeviceState = inputDeviceStateAdaptor;
}
///
/// Initializes a new instance of the class using the default , and instances.
///
public InputSimulator()
{
_keyboardSimulator = new KeyboardSimulator(this);
_mouseSimulator = new MouseSimulator(this);
_inputDeviceState = new WindowsInputDeviceStateAdaptor();
}
///
/// Gets the instance for simulating Keyboard input.
///
/// The instance.
public IKeyboardSimulator Keyboard
{
get { return _keyboardSimulator; }
}
///
/// Gets the instance for simulating Mouse input.
///
/// The instance.
public IMouseSimulator Mouse
{
get { return _mouseSimulator; }
}
///
/// Gets the instance for determining the state of the various input devices.
///
/// The instance.
public IInputDeviceStateAdaptor InputDeviceState
{
get { return _inputDeviceState; }
}
}
}