164 lines
4 KiB
Dart
164 lines
4 KiB
Dart
import 'package:flutter/services.dart';
|
|
|
|
class TestRawKeyEvent extends RawKeyDownEvent {
|
|
const TestRawKeyEvent({
|
|
required super.data,
|
|
required super.character,
|
|
this.isControlPressed = false,
|
|
this.isShiftPressed = false,
|
|
this.isAltPressed = false,
|
|
this.isMetaPressed = false,
|
|
});
|
|
|
|
@override
|
|
final bool isControlPressed;
|
|
|
|
@override
|
|
final bool isShiftPressed;
|
|
|
|
@override
|
|
final bool isAltPressed;
|
|
|
|
@override
|
|
final bool isMetaPressed;
|
|
}
|
|
|
|
class TestRawKeyEventData extends RawKeyEventData {
|
|
const TestRawKeyEventData({
|
|
this.logicalKey =
|
|
LogicalKeyboardKey.nonConvert, // use nonConvert as placeholder.
|
|
this.character,
|
|
this.isControlPressed = false,
|
|
this.isShiftPressed = false,
|
|
this.isAltPressed = false,
|
|
this.isMetaPressed = false,
|
|
});
|
|
|
|
@override
|
|
final bool isControlPressed;
|
|
|
|
@override
|
|
final bool isShiftPressed;
|
|
|
|
@override
|
|
final bool isAltPressed;
|
|
|
|
@override
|
|
final bool isMetaPressed;
|
|
|
|
@override
|
|
final LogicalKeyboardKey logicalKey;
|
|
|
|
final String? character;
|
|
|
|
@override
|
|
PhysicalKeyboardKey get physicalKey => logicalKey.toPhysicalKey;
|
|
|
|
@override
|
|
KeyboardSide? getModifierSide(ModifierKey key) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
@override
|
|
bool isModifierPressed(
|
|
ModifierKey key, {
|
|
KeyboardSide side = KeyboardSide.any,
|
|
}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
@override
|
|
String get keyLabel => throw UnimplementedError();
|
|
|
|
RawKeyEvent get toKeyEvent {
|
|
return TestRawKeyEvent(
|
|
data: this,
|
|
character: character,
|
|
isAltPressed: isAltPressed,
|
|
isControlPressed: isControlPressed,
|
|
isMetaPressed: isMetaPressed,
|
|
isShiftPressed: isShiftPressed,
|
|
);
|
|
}
|
|
}
|
|
|
|
extension on LogicalKeyboardKey {
|
|
PhysicalKeyboardKey get toPhysicalKey {
|
|
if (this == LogicalKeyboardKey.enter) {
|
|
return PhysicalKeyboardKey.enter;
|
|
}
|
|
if (this == LogicalKeyboardKey.space) {
|
|
return PhysicalKeyboardKey.space;
|
|
}
|
|
if (this == LogicalKeyboardKey.backspace) {
|
|
return PhysicalKeyboardKey.backspace;
|
|
}
|
|
if (this == LogicalKeyboardKey.delete) {
|
|
return PhysicalKeyboardKey.delete;
|
|
}
|
|
if (this == LogicalKeyboardKey.arrowRight) {
|
|
return PhysicalKeyboardKey.arrowRight;
|
|
}
|
|
if (this == LogicalKeyboardKey.arrowLeft) {
|
|
return PhysicalKeyboardKey.arrowLeft;
|
|
}
|
|
if (this == LogicalKeyboardKey.pageDown) {
|
|
return PhysicalKeyboardKey.pageDown;
|
|
}
|
|
if (this == LogicalKeyboardKey.pageUp) {
|
|
return PhysicalKeyboardKey.pageUp;
|
|
}
|
|
if (this == LogicalKeyboardKey.slash) {
|
|
return PhysicalKeyboardKey.slash;
|
|
}
|
|
if (this == LogicalKeyboardKey.arrowUp) {
|
|
return PhysicalKeyboardKey.arrowUp;
|
|
}
|
|
if (this == LogicalKeyboardKey.arrowDown) {
|
|
return PhysicalKeyboardKey.arrowDown;
|
|
}
|
|
if (this == LogicalKeyboardKey.keyA) {
|
|
return PhysicalKeyboardKey.keyA;
|
|
}
|
|
if (this == LogicalKeyboardKey.keyB) {
|
|
return PhysicalKeyboardKey.keyB;
|
|
}
|
|
if (this == LogicalKeyboardKey.keyC) {
|
|
return PhysicalKeyboardKey.keyC;
|
|
}
|
|
if (this == LogicalKeyboardKey.keyE) {
|
|
return PhysicalKeyboardKey.keyE;
|
|
}
|
|
if (this == LogicalKeyboardKey.keyI) {
|
|
return PhysicalKeyboardKey.keyI;
|
|
}
|
|
if (this == LogicalKeyboardKey.keyK) {
|
|
return PhysicalKeyboardKey.keyK;
|
|
}
|
|
if (this == LogicalKeyboardKey.keyS) {
|
|
return PhysicalKeyboardKey.keyS;
|
|
}
|
|
if (this == LogicalKeyboardKey.keyU) {
|
|
return PhysicalKeyboardKey.keyU;
|
|
}
|
|
if (this == LogicalKeyboardKey.keyH) {
|
|
return PhysicalKeyboardKey.keyH;
|
|
}
|
|
if (this == LogicalKeyboardKey.keyQ) {
|
|
return PhysicalKeyboardKey.keyQ;
|
|
}
|
|
if (this == LogicalKeyboardKey.keyZ) {
|
|
return PhysicalKeyboardKey.keyZ;
|
|
}
|
|
if (this == LogicalKeyboardKey.tilde) {
|
|
return PhysicalKeyboardKey.backquote;
|
|
}
|
|
if (this == LogicalKeyboardKey.digit8) {
|
|
return PhysicalKeyboardKey.digit8;
|
|
}
|
|
if (this == LogicalKeyboardKey.underscore) {
|
|
return PhysicalKeyboardKey.minus;
|
|
}
|
|
throw UnimplementedError();
|
|
}
|
|
}
|