summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2019-09-01 05:28:19 +0200
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2019-09-01 05:28:19 +0200
commitc0083437eb888c2822f74e8d462f03656088113a (patch)
tree392bd69f37905f3cdd1fdfc0a9b588d8bf049ba9
parent6fbba6f4eec1f2e7150f02e4c171f8ee60a46236 (diff)
downloadiced-c0083437eb888c2822f74e8d462f03656088113a.tar.gz
iced-c0083437eb888c2822f74e8d462f03656088113a.tar.bz2
iced-c0083437eb888c2822f74e8d462f03656088113a.zip
Add conversion functions for `winit` feature
-rw-r--r--.github/workflows/integration.yml2
-rw-r--r--Cargo.toml1
-rw-r--r--src/input/button_state.rs14
-rw-r--r--src/input/keyboard/event.rs7
-rw-r--r--src/input/keyboard/key_code.rs177
5 files changed, 195 insertions, 6 deletions
diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml
index a1e98f9d..f574e930 100644
--- a/.github/workflows/integration.yml
+++ b/.github/workflows/integration.yml
@@ -18,4 +18,4 @@ jobs:
sudo apt-get install -y libasound2-dev libudev-dev
- uses: actions/checkout@master
- name: Run tests
- run: cargo test --verbose
+ run: cargo test --verbose --all-features
diff --git a/Cargo.toml b/Cargo.toml
index 17eb0bc3..f526b803 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -14,6 +14,7 @@ categories = ["gui"]
[dependencies]
stretch = "0.2"
twox-hash = "1.5"
+winit = { version = "0.20.0-alpha3", optional = true }
[dev-dependencies]
ggez = { version = "0.5", git = "https://github.com/hecrj/ggez" }
diff --git a/src/input/button_state.rs b/src/input/button_state.rs
index 988043ba..e62c14e3 100644
--- a/src/input/button_state.rs
+++ b/src/input/button_state.rs
@@ -7,3 +7,17 @@ pub enum ButtonState {
/// The button is __not__ pressed.
Released,
}
+
+#[cfg(feature = "winit")]
+mod winit_conversion {
+ use winit::event::ElementState;
+
+ impl From<ElementState> for super::ButtonState {
+ fn from(element_state: ElementState) -> Self {
+ match element_state {
+ ElementState::Pressed => super::ButtonState::Pressed,
+ ElementState::Released => super::ButtonState::Released,
+ }
+ }
+ }
+}
diff --git a/src/input/keyboard/event.rs b/src/input/keyboard/event.rs
index 3804c42d..1c760fd3 100644
--- a/src/input/keyboard/event.rs
+++ b/src/input/keyboard/event.rs
@@ -13,9 +13,6 @@ pub enum Event {
key_code: KeyCode,
},
- /// Text was entered.
- TextEntered {
- /// The character entered
- character: char,
- },
+ /// A unicode character was received.
+ ReceivedCharacter(char),
}
diff --git a/src/input/keyboard/key_code.rs b/src/input/keyboard/key_code.rs
index 940df0db..b094f87b 100644
--- a/src/input/keyboard/key_code.rs
+++ b/src/input/keyboard/key_code.rs
@@ -196,3 +196,180 @@ pub enum KeyCode {
Paste,
Cut,
}
+
+#[cfg(feature = "winit")]
+mod winit_conversion {
+ use winit::event::VirtualKeyCode;
+
+ impl From<VirtualKeyCode> for super::KeyCode {
+ fn from(virtual_keycode: VirtualKeyCode) -> Self {
+ match virtual_keycode {
+ VirtualKeyCode::Key1 => super::KeyCode::Key1,
+ VirtualKeyCode::Key2 => super::KeyCode::Key2,
+ VirtualKeyCode::Key3 => super::KeyCode::Key3,
+ VirtualKeyCode::Key4 => super::KeyCode::Key4,
+ VirtualKeyCode::Key5 => super::KeyCode::Key5,
+ VirtualKeyCode::Key6 => super::KeyCode::Key6,
+ VirtualKeyCode::Key7 => super::KeyCode::Key7,
+ VirtualKeyCode::Key8 => super::KeyCode::Key8,
+ VirtualKeyCode::Key9 => super::KeyCode::Key9,
+ VirtualKeyCode::Key0 => super::KeyCode::Key0,
+ VirtualKeyCode::A => super::KeyCode::A,
+ VirtualKeyCode::B => super::KeyCode::B,
+ VirtualKeyCode::C => super::KeyCode::C,
+ VirtualKeyCode::D => super::KeyCode::D,
+ VirtualKeyCode::E => super::KeyCode::E,
+ VirtualKeyCode::F => super::KeyCode::F,
+ VirtualKeyCode::G => super::KeyCode::G,
+ VirtualKeyCode::H => super::KeyCode::H,
+ VirtualKeyCode::I => super::KeyCode::I,
+ VirtualKeyCode::J => super::KeyCode::J,
+ VirtualKeyCode::K => super::KeyCode::K,
+ VirtualKeyCode::L => super::KeyCode::L,
+ VirtualKeyCode::M => super::KeyCode::M,
+ VirtualKeyCode::N => super::KeyCode::N,
+ VirtualKeyCode::O => super::KeyCode::O,
+ VirtualKeyCode::P => super::KeyCode::P,
+ VirtualKeyCode::Q => super::KeyCode::Q,
+ VirtualKeyCode::R => super::KeyCode::R,
+ VirtualKeyCode::S => super::KeyCode::S,
+ VirtualKeyCode::T => super::KeyCode::T,
+ VirtualKeyCode::U => super::KeyCode::U,
+ VirtualKeyCode::V => super::KeyCode::V,
+ VirtualKeyCode::W => super::KeyCode::W,
+ VirtualKeyCode::X => super::KeyCode::X,
+ VirtualKeyCode::Y => super::KeyCode::Y,
+ VirtualKeyCode::Z => super::KeyCode::Z,
+ VirtualKeyCode::Escape => super::KeyCode::Escape,
+ VirtualKeyCode::F1 => super::KeyCode::F1,
+ VirtualKeyCode::F2 => super::KeyCode::F2,
+ VirtualKeyCode::F3 => super::KeyCode::F3,
+ VirtualKeyCode::F4 => super::KeyCode::F4,
+ VirtualKeyCode::F5 => super::KeyCode::F5,
+ VirtualKeyCode::F6 => super::KeyCode::F6,
+ VirtualKeyCode::F7 => super::KeyCode::F7,
+ VirtualKeyCode::F8 => super::KeyCode::F8,
+ VirtualKeyCode::F9 => super::KeyCode::F9,
+ VirtualKeyCode::F10 => super::KeyCode::F10,
+ VirtualKeyCode::F11 => super::KeyCode::F11,
+ VirtualKeyCode::F12 => super::KeyCode::F12,
+ VirtualKeyCode::F13 => super::KeyCode::F13,
+ VirtualKeyCode::F14 => super::KeyCode::F14,
+ VirtualKeyCode::F15 => super::KeyCode::F15,
+ VirtualKeyCode::F16 => super::KeyCode::F16,
+ VirtualKeyCode::F17 => super::KeyCode::F17,
+ VirtualKeyCode::F18 => super::KeyCode::F18,
+ VirtualKeyCode::F19 => super::KeyCode::F19,
+ VirtualKeyCode::F20 => super::KeyCode::F20,
+ VirtualKeyCode::F21 => super::KeyCode::F21,
+ VirtualKeyCode::F22 => super::KeyCode::F22,
+ VirtualKeyCode::F23 => super::KeyCode::F23,
+ VirtualKeyCode::F24 => super::KeyCode::F24,
+ VirtualKeyCode::Snapshot => super::KeyCode::Snapshot,
+ VirtualKeyCode::Scroll => super::KeyCode::Scroll,
+ VirtualKeyCode::Pause => super::KeyCode::Pause,
+ VirtualKeyCode::Insert => super::KeyCode::Insert,
+ VirtualKeyCode::Home => super::KeyCode::Home,
+ VirtualKeyCode::Delete => super::KeyCode::Delete,
+ VirtualKeyCode::End => super::KeyCode::End,
+ VirtualKeyCode::PageDown => super::KeyCode::PageDown,
+ VirtualKeyCode::PageUp => super::KeyCode::PageUp,
+ VirtualKeyCode::Left => super::KeyCode::Left,
+ VirtualKeyCode::Up => super::KeyCode::Up,
+ VirtualKeyCode::Right => super::KeyCode::Right,
+ VirtualKeyCode::Down => super::KeyCode::Down,
+ VirtualKeyCode::Back => super::KeyCode::Backspace,
+ VirtualKeyCode::Return => super::KeyCode::Enter,
+ VirtualKeyCode::Space => super::KeyCode::Space,
+ VirtualKeyCode::Compose => super::KeyCode::Compose,
+ VirtualKeyCode::Caret => super::KeyCode::Caret,
+ VirtualKeyCode::Numlock => super::KeyCode::Numlock,
+ VirtualKeyCode::Numpad0 => super::KeyCode::Numpad0,
+ VirtualKeyCode::Numpad1 => super::KeyCode::Numpad1,
+ VirtualKeyCode::Numpad2 => super::KeyCode::Numpad2,
+ VirtualKeyCode::Numpad3 => super::KeyCode::Numpad3,
+ VirtualKeyCode::Numpad4 => super::KeyCode::Numpad4,
+ VirtualKeyCode::Numpad5 => super::KeyCode::Numpad5,
+ VirtualKeyCode::Numpad6 => super::KeyCode::Numpad6,
+ VirtualKeyCode::Numpad7 => super::KeyCode::Numpad7,
+ VirtualKeyCode::Numpad8 => super::KeyCode::Numpad8,
+ VirtualKeyCode::Numpad9 => super::KeyCode::Numpad9,
+ VirtualKeyCode::AbntC1 => super::KeyCode::AbntC1,
+ VirtualKeyCode::AbntC2 => super::KeyCode::AbntC2,
+ VirtualKeyCode::Add => super::KeyCode::Add,
+ VirtualKeyCode::Apostrophe => super::KeyCode::Apostrophe,
+ VirtualKeyCode::Apps => super::KeyCode::Apps,
+ VirtualKeyCode::At => super::KeyCode::At,
+ VirtualKeyCode::Ax => super::KeyCode::Ax,
+ VirtualKeyCode::Backslash => super::KeyCode::Backslash,
+ VirtualKeyCode::Calculator => super::KeyCode::Calculator,
+ VirtualKeyCode::Capital => super::KeyCode::Capital,
+ VirtualKeyCode::Colon => super::KeyCode::Colon,
+ VirtualKeyCode::Comma => super::KeyCode::Comma,
+ VirtualKeyCode::Convert => super::KeyCode::Convert,
+ VirtualKeyCode::Decimal => super::KeyCode::Decimal,
+ VirtualKeyCode::Divide => super::KeyCode::Divide,
+ VirtualKeyCode::Equals => super::KeyCode::Equals,
+ VirtualKeyCode::Grave => super::KeyCode::Grave,
+ VirtualKeyCode::Kana => super::KeyCode::Kana,
+ VirtualKeyCode::Kanji => super::KeyCode::Kanji,
+ VirtualKeyCode::LAlt => super::KeyCode::LAlt,
+ VirtualKeyCode::LBracket => super::KeyCode::LBracket,
+ VirtualKeyCode::LControl => super::KeyCode::LControl,
+ VirtualKeyCode::LShift => super::KeyCode::LShift,
+ VirtualKeyCode::LWin => super::KeyCode::LWin,
+ VirtualKeyCode::Mail => super::KeyCode::Mail,
+ VirtualKeyCode::MediaSelect => super::KeyCode::MediaSelect,
+ VirtualKeyCode::MediaStop => super::KeyCode::MediaStop,
+ VirtualKeyCode::Minus => super::KeyCode::Minus,
+ VirtualKeyCode::Multiply => super::KeyCode::Multiply,
+ VirtualKeyCode::Mute => super::KeyCode::Mute,
+ VirtualKeyCode::MyComputer => super::KeyCode::MyComputer,
+ VirtualKeyCode::NavigateForward => {
+ super::KeyCode::NavigateForward
+ }
+ VirtualKeyCode::NavigateBackward => {
+ super::KeyCode::NavigateBackward
+ }
+ VirtualKeyCode::NextTrack => super::KeyCode::NextTrack,
+ VirtualKeyCode::NoConvert => super::KeyCode::NoConvert,
+ VirtualKeyCode::NumpadComma => super::KeyCode::NumpadComma,
+ VirtualKeyCode::NumpadEnter => super::KeyCode::NumpadEnter,
+ VirtualKeyCode::NumpadEquals => super::KeyCode::NumpadEquals,
+ VirtualKeyCode::OEM102 => super::KeyCode::OEM102,
+ VirtualKeyCode::Period => super::KeyCode::Period,
+ VirtualKeyCode::PlayPause => super::KeyCode::PlayPause,
+ VirtualKeyCode::Power => super::KeyCode::Power,
+ VirtualKeyCode::PrevTrack => super::KeyCode::PrevTrack,
+ VirtualKeyCode::RAlt => super::KeyCode::RAlt,
+ VirtualKeyCode::RBracket => super::KeyCode::RBracket,
+ VirtualKeyCode::RControl => super::KeyCode::RControl,
+ VirtualKeyCode::RShift => super::KeyCode::RShift,
+ VirtualKeyCode::RWin => super::KeyCode::RWin,
+ VirtualKeyCode::Semicolon => super::KeyCode::Semicolon,
+ VirtualKeyCode::Slash => super::KeyCode::Slash,
+ VirtualKeyCode::Sleep => super::KeyCode::Sleep,
+ VirtualKeyCode::Stop => super::KeyCode::Stop,
+ VirtualKeyCode::Subtract => super::KeyCode::Subtract,
+ VirtualKeyCode::Sysrq => super::KeyCode::Sysrq,
+ VirtualKeyCode::Tab => super::KeyCode::Tab,
+ VirtualKeyCode::Underline => super::KeyCode::Underline,
+ VirtualKeyCode::Unlabeled => super::KeyCode::Unlabeled,
+ VirtualKeyCode::VolumeDown => super::KeyCode::VolumeDown,
+ VirtualKeyCode::VolumeUp => super::KeyCode::VolumeUp,
+ VirtualKeyCode::Wake => super::KeyCode::Wake,
+ VirtualKeyCode::WebBack => super::KeyCode::WebBack,
+ VirtualKeyCode::WebFavorites => super::KeyCode::WebFavorites,
+ VirtualKeyCode::WebForward => super::KeyCode::WebForward,
+ VirtualKeyCode::WebHome => super::KeyCode::WebHome,
+ VirtualKeyCode::WebRefresh => super::KeyCode::WebRefresh,
+ VirtualKeyCode::WebSearch => super::KeyCode::WebSearch,
+ VirtualKeyCode::WebStop => super::KeyCode::WebStop,
+ VirtualKeyCode::Yen => super::KeyCode::Yen,
+ VirtualKeyCode::Copy => super::KeyCode::Copy,
+ VirtualKeyCode::Paste => super::KeyCode::Paste,
+ VirtualKeyCode::Cut => super::KeyCode::Cut,
+ }
+ }
+ }
+}