Switch to KeyMapper trait and implement NOOP for base keymap
This commit is contained in:
parent
0236df6914
commit
8f198ea0bc
17
src/main.rs
17
src/main.rs
@ -225,7 +225,7 @@ impl LayoutSwitchKey {
|
|||||||
}
|
}
|
||||||
|
|
||||||
struct KeyMaps {
|
struct KeyMaps {
|
||||||
keymaps: Vec<KeyMap>,
|
keymaps: Vec<Box<KeyMapper>>,
|
||||||
keymap_index_keys: HashMap<u16, usize>,
|
keymap_index_keys: HashMap<u16, usize>,
|
||||||
switch_layout_keys: Vec<LayoutSwitchKey>,
|
switch_layout_keys: Vec<LayoutSwitchKey>,
|
||||||
revert_default_key: u16,
|
revert_default_key: u16,
|
||||||
@ -257,7 +257,7 @@ impl KeyMaps {
|
|||||||
}
|
}
|
||||||
let base_keymap = parse_keymap(key_map, &config.keymaps[0]);
|
let base_keymap = parse_keymap(key_map, &config.keymaps[0]);
|
||||||
println!("base_keymap : {:?}", base_keymap);
|
println!("base_keymap : {:?}", base_keymap);
|
||||||
let mut keymaps = vec!(KeyMap::new());
|
let mut keymaps : Vec<Box<KeyMapper>>= vec!(Box::new(NOOP)); // todo: can we share the box?
|
||||||
let mut keymap_index_keys: HashMap<u16, usize> = HashMap::new();
|
let mut keymap_index_keys: HashMap<u16, usize> = HashMap::new();
|
||||||
for (x, v) in config.keymaps.iter().enumerate() {
|
for (x, v) in config.keymaps.iter().enumerate() {
|
||||||
keymap_index_keys.insert(*key_map.get(&*x.to_string()).unwrap() as u16, x);
|
keymap_index_keys.insert(*key_map.get(&*x.to_string()).unwrap() as u16, x);
|
||||||
@ -274,7 +274,7 @@ impl KeyMaps {
|
|||||||
keymap.map(base_keymap[i], *key_code);
|
keymap.map(base_keymap[i], *key_code);
|
||||||
}
|
}
|
||||||
println!("keymap[{}]: {:?}", x, &keymap.keymap[..]);
|
println!("keymap[{}]: {:?}", x, &keymap.keymap[..]);
|
||||||
keymaps.push(keymap);
|
keymaps.push(Box::new(keymap));
|
||||||
}
|
}
|
||||||
//println!("keymaps: {:?}", keymaps);
|
//println!("keymaps: {:?}", keymaps);
|
||||||
//println!("keymap_index_keys: {:?}", keymap_index_keys);
|
//println!("keymap_index_keys: {:?}", keymap_index_keys);
|
||||||
@ -615,7 +615,7 @@ impl KeyMap {
|
|||||||
("LSFT", KEY_LEFTSHIFT),
|
("LSFT", KEY_LEFTSHIFT),
|
||||||
("RSFT", KEY_RIGHTSHIFT),
|
("RSFT", KEY_RIGHTSHIFT),
|
||||||
("SPC", KEY_SPACE),
|
("SPC", KEY_SPACE),
|
||||||
("APP", KEY_COMPOSE), // todo: is this right?
|
("APP", KEY_COMPOSE),
|
||||||
|
|
||||||
("LCTL", KEY_LEFTCTRL),
|
("LCTL", KEY_LEFTCTRL),
|
||||||
("RCTL", KEY_RIGHTCTRL),
|
("RCTL", KEY_RIGHTCTRL),
|
||||||
@ -681,6 +681,15 @@ impl KeyMapper for KeyMap {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const NOOP : Noop = Noop{};
|
||||||
|
// nightly I hear... const BOX_NOOP : Box<KeyMapper> = Box::new(NOOP);
|
||||||
|
struct Noop {}
|
||||||
|
impl KeyMapper for Noop {
|
||||||
|
fn send_event(&mut self, mut event: input_event, device: &Device) {
|
||||||
|
device.write_event(event).expect("could not write event?");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate serde_derive;
|
extern crate serde_derive;
|
||||||
extern crate toml;
|
extern crate toml;
|
||||||
|
Loading…
Reference in New Issue
Block a user