From d79db4acb33f14c93c4f4b1e18c09ffb702212e1 Mon Sep 17 00:00:00 2001 From: Brooks J Rady Date: Sun, 10 Jan 2021 22:58:48 +0000 Subject: [PATCH] Add a global key callback --- Cargo.toml | 2 +- src/lib.rs | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 6ecbe6c9..24ca614e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "mosaic-tile" -version = "0.2.1" +version = "0.2.2" authors = ["Brooks J Rady "] edition = "2018" description = "A small client-side library for writing mosaic plugins (tiles)" diff --git a/src/lib.rs b/src/lib.rs index a1e4f1fd..9d373a02 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,11 +1,12 @@ mod shim; pub use shim::*; - +#[allow(unused_variables)] pub trait MosaicTile { - fn init(&mut self); - fn draw(&mut self, rows: usize, cols: usize); - fn handle_key(&mut self, key: Key); + fn init(&mut self) {} + fn draw(&mut self, rows: usize, cols: usize) {} + fn handle_key(&mut self, key: Key) {} + fn handle_global_key(&mut self, key: Key) {} } #[macro_export] @@ -37,5 +38,12 @@ macro_rules! register_tile { state.borrow_mut().handle_key(get_key()); }); } + + #[no_mangle] + pub fn handle_global_key() { + STATE.with(|state| { + state.borrow_mut().handle_global_key(get_key()); + }); + } }; }