KeyEvent class Null safety
A custom KeyboardEvent that attempts to eliminate cross-browser inconsistencies, and also provide both keyCode and charCode information for all key events (when such information can be determined).
KeyEvent tries to provide a higher level, more polished keyboard event information on top of the "raw" KeyboardEvent.
The mechanics of using KeyEvents is a little different from the underlying KeyboardEvent. To use KeyEvents, you need to create a stream and then add KeyEvents to the stream, rather than using the EventTarget.dispatchEvent. Here's an example usage:
// Initialize a stream for the KeyEvents:
var stream = KeyEvent.keyPressEvent.forTarget(document.body);
// Start listening to the stream of KeyEvents.
stream.listen((keyEvent) =>
window.console.log('KeyPress event detected ${keyEvent.charCode}'));
...
// Add a new KeyEvent of someone pressing the 'A' key to the stream so
// listeners can know a KeyEvent happened.
stream.add(new KeyEvent('keypress', keyCode: 65, charCode: 97));
This class is very much a work in progress, and we'd love to get information on how we can make this class work with as many international keyboards as possible. Bugs welcome!
- Implemented types
Constructors
- KeyEvent(String type, {Window? view, bool canBubble: true, bool cancelable: true, int keyCode: 0, int charCode: 0, int location: 1, bool ctrlKey: false, bool altKey: false, bool shiftKey: false, bool metaKey: false, EventTarget? currentTarget})
-
Programmatically create a new KeyEvent (and KeyboardEvent).
factory
- KeyEvent.wrap(KeyboardEvent parent)
-
Construct a KeyEvent with
parent
as the event we're emulating.
Properties
- altKey → bool
-
Calculated value of whether the alt key is pressed is for this event.
read-only, override
- bubbles → bool
-
read-only, inherited
- cancelable → bool
-
read-only, inherited
- charCode → int
-
Calculated value of what the estimated charCode is for this event.
read-only, override
- code → String
-
read-only, override
- composed → bool
-
read-only, inherited
- ctrlKey → bool
-
True if the ctrl key is pressed during this event.
read-only, override
- currentTarget → EventTarget?
-
The currently registered target for this event.
read-only
- defaultPrevented → bool
-
read-only, inherited
- detail → int
-
read-only, override
- eventPhase → int
-
read-only, inherited
- hashCode → int
-
The hash code for this object. [...]
read-only, inherited
- isComposed → bool
-
read-only
- isComposing → bool
-
read-only, override
- isTrusted → bool
-
read-only, inherited
- key → String
-
read-only, override
- keyCode → int
-
Calculated value of what the estimated keyCode is for this event.
read-only, override
- location → int
-
Accessor to the part of the keyboard that the key was pressed from (one of
KeyLocation.STANDARD, KeyLocation.RIGHT, KeyLocation.LEFT,
KeyLocation.NUMPAD, KeyLocation.MOBILE, KeyLocation.JOYSTICK).
read-only, override
- matchingTarget → Element
-
A pointer to the element whose CSS selector matched within which an event
was fired. If this Event was not associated with any Event delegation,
accessing this value will throw an UnsupportedError.
read-only, inherited
- metaKey → bool
-
True if the Meta (or Mac command) key is pressed during this event.
read-only, override
-
path
→ List<
Node> -
This event's path, taking into account shadow DOM. [...]
read-only, inherited
- repeat → bool
-
read-only, override
- runtimeType → Type
-
A representation of the runtime type of the object.
read-only, inherited
- shiftKey → bool
-
True if the shift key was pressed during this event.
read-only, override
- sourceCapabilities → InputDeviceCapabilities?
-
read-only, override
- target → EventTarget?
-
read-only, inherited
- timeStamp → double
-
read-only, inherited
- type → String
-
read-only, inherited
- view → WindowBase?
-
read-only, override
- which → int
-
Calculated value of what the estimated keyCode is for this event.
read-only, override
- wrapped → Event
-
final, inherited
Methods
-
composedPath(
) → List< EventTarget> -
inherited
-
getModifierState(
String keyArgument) → bool -
override
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a non-existent method or property is accessed. [...]
inherited
-
preventDefault(
) → void -
inherited
-
stopImmediatePropagation(
) → void -
inherited
-
stopPropagation(
) → void -
inherited
-
toString(
) → String -
Returns a string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator. [...]
inherited
Static Properties
- canUseDispatchEvent → bool
-
read-only
-
keyDownEvent
↔ EventStreamProvider<
KeyEvent> -
Accessor to provide a stream of KeyEvents on the desired target.
read / write
-
keyPressEvent
↔ EventStreamProvider<
KeyEvent> -
Accessor to provide a stream of KeyEvents on the desired target.
read / write
-
keyUpEvent
↔ EventStreamProvider<
KeyEvent> -
Accessor to provide a stream of KeyEvents on the desired target.
read / write