summaryrefslogtreecommitdiff
path: root/engine/src/windowing
diff options
context:
space:
mode:
authorHampusM <hampus@hampusmat.com>2026-06-05 21:34:12 +0200
committerHampusM <hampus@hampusmat.com>2026-06-05 21:34:12 +0200
commitd9df85eb2a645f328a5ae9dcaa1ca75b787ef67e (patch)
treee0deaa9bd37105471f9d32203be3152e40560a30 /engine/src/windowing
parentf587ceeda7b05f7eca4d5c06c6509cd529262cf0 (diff)
feat(engine): add support for text keyboard input
Diffstat (limited to 'engine/src/windowing')
-rw-r--r--engine/src/windowing/keyboard.rs12
1 files changed, 12 insertions, 0 deletions
diff --git a/engine/src/windowing/keyboard.rs b/engine/src/windowing/keyboard.rs
index 5a31e7c..4515d8a 100644
--- a/engine/src/windowing/keyboard.rs
+++ b/engine/src/windowing/keyboard.rs
@@ -6,6 +6,7 @@ use crate::ecs::Sole;
pub struct Keyboard
{
map: HashMap<Key, KeyData>,
+ text_keys: String,
}
impl Keyboard
@@ -71,6 +72,11 @@ impl Keyboard
key_data.previous_state
}
+ pub fn text_keys(&self) -> &str
+ {
+ &self.text_keys
+ }
+
pub fn set_key_state(&mut self, key: Key, key_state: KeyState)
{
let key_data = self.map.entry(key).or_default();
@@ -84,6 +90,12 @@ impl Keyboard
key_data.previous_state = key_data.curr_state;
}
}
+
+ pub fn set_text_keys(&mut self, text_keys: impl IntoIterator<Item = char>)
+ {
+ self.text_keys.clear();
+ self.text_keys.extend(text_keys);
+ }
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)]