Add support for dispatching key events through the public platform API

This change adds `KeyPress` and `KeyRelease` variants to the
`WindowEvent` enum, along with the new `slint::Key` enum, that allows
encoding keys.
This commit is contained in:
Florian Blasius 2022-10-19 14:53:38 +02:00 committed by Simon Hausmann
parent e3838543fe
commit 61c39b5fa1
36 changed files with 681 additions and 315 deletions

View file

@ -478,7 +478,9 @@ SCENARIO("Send key events")
property <string> result;
scope := FocusScope {
key-pressed(event) => {
result += event.text;
if (event.text != Key.Shift && event.text != Key.Control) {
result += event.text;
}
return accept;
}
}
@ -487,7 +489,7 @@ SCENARIO("Send key events")
"");
REQUIRE(comp_def.has_value());
auto instance = comp_def->create();
slint::testing::send_keyboard_string_sequence(&*instance, "Hello keys!", {});
slint::testing::send_keyboard_string_sequence(&*instance, "Hello keys!");
REQUIRE(*instance->get_property("result")->to_string() == "Hello keys!");
}