diff --git a/Cargo.lock b/Cargo.lock index 99b1d4b0..4aa66d21 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2070,6 +2070,14 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "keyboard_events" +version = "0.1.0" +dependencies = [ + "eframe", + "tracing-subscriber", +] + [[package]] name = "khronos-egl" version = "4.1.0" diff --git a/examples/keyboard_events/src/main.rs b/examples/keyboard_events/src/main.rs index 8c1c4229..ab1e8ec8 100644 --- a/examples/keyboard_events/src/main.rs +++ b/examples/keyboard_events/src/main.rs @@ -14,42 +14,34 @@ fn main() { ); } +#[derive(Default)] struct Content { text: String, } -impl Default for Content { - fn default() -> Self { - Self { - text: "".to_owned(), - } - } -} - impl eframe::App for Content { fn update(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) { egui::CentralPanel::default().show(ctx, |ui| { - ui.heading("Press/Hold/Release example"); - let text_style = TextStyle::Body; - let row_height = ui.text_style_height(&text_style); + ui.heading("Press/Hold/Release example. Press A to test."); + if ui.button("Clear").clicked() { + self.text.clear(); + } ScrollArea::vertical() .auto_shrink([false; 2]) .stick_to_bottom(true) - .show_rows(ui, row_height, self.text.len(), |ui, _row_range| { - //for row in row_range { - for line in self.text.lines() { - ui.label(line); - } + .show(ui, |ui| { + ui.label(&self.text); }); - if ctx.input().key_released(Key::A) { - self.text.push_str("\nReleased"); - } if ctx.input().key_pressed(Key::A) { - self.text.push_str("\npressed"); + self.text.push_str("\nPressed"); } if ctx.input().key_down(Key::A) { - self.text.push_str("\nheld"); + self.text.push_str("\nHeld"); + ui.ctx().request_repaint(); // make sure we note the holding. + } + if ctx.input().key_released(Key::A) { + self.text.push_str("\nReleased"); } }); }