Change to the Termion Key enum
This commit is contained in:
parent
b39ec4c0b7
commit
25356a592c
3 changed files with 25 additions and 42 deletions
37
src/keys.rs
37
src/keys.rs
|
|
@ -1,37 +0,0 @@
|
||||||
use serde::{Deserialize, Serialize};
|
|
||||||
|
|
||||||
#[derive(Debug, PartialOrd, PartialEq, Eq, Clone, Copy, Hash, Serialize, Deserialize)]
|
|
||||||
pub struct KeyEvent {
|
|
||||||
pub code: KeyCode,
|
|
||||||
pub modifiers: KeyModifiers,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, PartialOrd, PartialEq, Eq, Clone, Copy, Hash, Serialize, Deserialize)]
|
|
||||||
pub struct KeyModifiers {
|
|
||||||
pub bits: u8,
|
|
||||||
//pub shift: bool,
|
|
||||||
//pub ctrl: bool,
|
|
||||||
//pub alt: bool,
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, PartialOrd, PartialEq, Eq, Clone, Copy, Hash, Serialize, Deserialize)]
|
|
||||||
pub enum KeyCode {
|
|
||||||
Backspace,
|
|
||||||
Enter,
|
|
||||||
Left,
|
|
||||||
Right,
|
|
||||||
Up,
|
|
||||||
Down,
|
|
||||||
Home,
|
|
||||||
End,
|
|
||||||
PageUp,
|
|
||||||
PageDown,
|
|
||||||
Tab,
|
|
||||||
BackTab,
|
|
||||||
Delete,
|
|
||||||
Insert,
|
|
||||||
F(u8),
|
|
||||||
Char(char),
|
|
||||||
Null,
|
|
||||||
Esc,
|
|
||||||
}
|
|
||||||
|
|
@ -1,13 +1,11 @@
|
||||||
mod keys;
|
|
||||||
mod shim;
|
mod shim;
|
||||||
|
|
||||||
pub use keys::*;
|
|
||||||
pub use shim::*;
|
pub use shim::*;
|
||||||
|
|
||||||
pub trait MosaicTile {
|
pub trait MosaicTile {
|
||||||
fn init(&mut self);
|
fn init(&mut self);
|
||||||
fn draw(&mut self, rows: usize, cols: usize);
|
fn draw(&mut self, rows: usize, cols: usize);
|
||||||
fn handle_key(&mut self, key: KeyEvent);
|
fn handle_key(&mut self, key: Key);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[macro_export]
|
#[macro_export]
|
||||||
|
|
|
||||||
26
src/shim.rs
26
src/shim.rs
|
|
@ -1,7 +1,29 @@
|
||||||
use crate::keys::KeyEvent;
|
use serde::{Deserialize, Serialize};
|
||||||
use std::{io, path::Path};
|
use std::{io, path::Path};
|
||||||
|
|
||||||
pub fn get_key() -> KeyEvent {
|
#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)]
|
||||||
|
pub enum Key {
|
||||||
|
Backspace,
|
||||||
|
Left,
|
||||||
|
Right,
|
||||||
|
Up,
|
||||||
|
Down,
|
||||||
|
Home,
|
||||||
|
End,
|
||||||
|
PageUp,
|
||||||
|
PageDown,
|
||||||
|
BackTab,
|
||||||
|
Delete,
|
||||||
|
Insert,
|
||||||
|
F(u8),
|
||||||
|
Char(char),
|
||||||
|
Alt(char),
|
||||||
|
Ctrl(char),
|
||||||
|
Null,
|
||||||
|
Esc,
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn get_key() -> Key {
|
||||||
let mut json = String::new();
|
let mut json = String::new();
|
||||||
io::stdin().read_line(&mut json).unwrap();
|
io::stdin().read_line(&mut json).unwrap();
|
||||||
serde_json::from_str(&json).unwrap()
|
serde_json::from_str(&json).unwrap()
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue