wedgeKeyEventsFor function
The key events a wedge scanner sends for code: one key down/up pair per
character, interval apart, then Enter. Feed them to
KeyboardWedgeSource.handleKeyEvent to simulate a scanner in demos and tests.
Implementation
List<KeyEvent> wedgeKeyEventsFor(
String code, {
Duration start = Duration.zero,
Duration interval = const Duration(milliseconds: 5),
}) {
final events = <KeyEvent>[];
var time = start + const Duration(microseconds: 1);
for (final unit in code.runes) {
final character = String.fromCharCode(unit);
final logical = LogicalKeyboardKey(unit);
events
..add(
KeyDownEvent(physicalKey: PhysicalKeyboardKey.keyA, logicalKey: logical, character: character, timeStamp: time),
)
..add(KeyUpEvent(physicalKey: PhysicalKeyboardKey.keyA, logicalKey: logical, timeStamp: time));
time += interval;
}
events
..add(
KeyDownEvent(
physicalKey: PhysicalKeyboardKey.enter,
logicalKey: LogicalKeyboardKey.enter,
character: '\n',
timeStamp: time,
),
)
..add(KeyUpEvent(physicalKey: PhysicalKeyboardKey.enter, logicalKey: LogicalKeyboardKey.enter, timeStamp: time));
return events;
}