flo_draw 0.3.1

Hassle-free windowed 2D graphics rendering
Documentation
use flo_canvas_events::*;

use glutin::event::{VirtualKeyCode};

pub (crate) fn button_from_glutin(mouse_button: &glutin::event::MouseButton) -> Button {
    use glutin::event::MouseButton;

    match mouse_button {
        MouseButton::Left           => Button::Left,
        MouseButton::Middle         => Button::Middle,
        MouseButton::Right          => Button::Right,
        MouseButton::Other(other)   => Button::Other(*other as _)
    }
}

pub (crate) fn key_from_glutin(glutin_key: &VirtualKeyCode) -> Key {
    match glutin_key {
        VirtualKeyCode::LShift              => Key::ModifierShift,
        VirtualKeyCode::LControl            => Key::ModifierCtrl,
        VirtualKeyCode::LAlt                => Key::ModifierAlt,
        VirtualKeyCode::LWin                => Key::ModifierMeta,
        VirtualKeyCode::RShift              => Key::ModifierShift,
        VirtualKeyCode::RControl            => Key::ModifierCtrl,
        VirtualKeyCode::RAlt                => Key::ModifierAlt,
        VirtualKeyCode::RWin                => Key::ModifierMeta,
        VirtualKeyCode::Tab                 => Key::KeyTab,
        VirtualKeyCode::Space               => Key::KeySpace,
        VirtualKeyCode::A                   => Key::KeyA,
        VirtualKeyCode::B                   => Key::KeyB,
        VirtualKeyCode::C                   => Key::KeyC,
        VirtualKeyCode::D                   => Key::KeyD,
        VirtualKeyCode::E                   => Key::KeyE,
        VirtualKeyCode::F                   => Key::KeyF,
        VirtualKeyCode::G                   => Key::KeyG,
        VirtualKeyCode::H                   => Key::KeyH,
        VirtualKeyCode::I                   => Key::KeyI,
        VirtualKeyCode::J                   => Key::KeyJ,
        VirtualKeyCode::K                   => Key::KeyK,
        VirtualKeyCode::L                   => Key::KeyL,
        VirtualKeyCode::M                   => Key::KeyM,
        VirtualKeyCode::N                   => Key::KeyN,
        VirtualKeyCode::O                   => Key::KeyO,
        VirtualKeyCode::P                   => Key::KeyP,
        VirtualKeyCode::Q                   => Key::KeyQ,
        VirtualKeyCode::R                   => Key::KeyR,
        VirtualKeyCode::S                   => Key::KeyS,
        VirtualKeyCode::T                   => Key::KeyT,
        VirtualKeyCode::U                   => Key::KeyU,
        VirtualKeyCode::V                   => Key::KeyV,
        VirtualKeyCode::W                   => Key::KeyW,
        VirtualKeyCode::X                   => Key::KeyX,
        VirtualKeyCode::Y                   => Key::KeyY,
        VirtualKeyCode::Z                   => Key::KeyZ,
        VirtualKeyCode::Key1                => Key::Key1,
        VirtualKeyCode::Key2                => Key::Key2,
        VirtualKeyCode::Key3                => Key::Key3,
        VirtualKeyCode::Key4                => Key::Key4,
        VirtualKeyCode::Key5                => Key::Key5,
        VirtualKeyCode::Key6                => Key::Key6,
        VirtualKeyCode::Key7                => Key::Key7,
        VirtualKeyCode::Key8                => Key::Key8,
        VirtualKeyCode::Key9                => Key::Key9,
        VirtualKeyCode::Key0                => Key::Key0,
        VirtualKeyCode::Up                  => Key::KeyUp,
        VirtualKeyCode::Down                => Key::KeyDown,
        VirtualKeyCode::Left                => Key::KeyLeft,
        VirtualKeyCode::Right               => Key::KeyRight,
        VirtualKeyCode::Backslash           => Key::KeyBackslash,
        VirtualKeyCode::Slash               => Key::KeyForwardslash,
        VirtualKeyCode::Grave               => Key::KeyBacktick,
        VirtualKeyCode::Comma               => Key::KeyComma,
        VirtualKeyCode::Period              => Key::KeyFullstop,
        VirtualKeyCode::Semicolon           => Key::KeySemicolon,
        VirtualKeyCode::Apostrophe          => Key::KeyQuote,
        VirtualKeyCode::Minus               => Key::KeyMinus,
        VirtualKeyCode::Equals              => Key::KeyEquals,
        VirtualKeyCode::Escape              => Key::KeyEscape,
        VirtualKeyCode::Insert              => Key::KeyInsert,
        VirtualKeyCode::Home                => Key::KeyHome,
        VirtualKeyCode::PageUp              => Key::KeyPgUp,
        VirtualKeyCode::Delete              => Key::KeyDelete,
        VirtualKeyCode::End                 => Key::KeyEnd,
        VirtualKeyCode::PageDown            => Key::KeyPgDown,
        VirtualKeyCode::Back                => Key::KeyBackspace,
        VirtualKeyCode::Return              => Key::KeyEnter,
        VirtualKeyCode::F1                  => Key::KeyF1,
        VirtualKeyCode::F2                  => Key::KeyF2,
        VirtualKeyCode::F3                  => Key::KeyF3,
        VirtualKeyCode::F4                  => Key::KeyF4,
        VirtualKeyCode::F5                  => Key::KeyF5,
        VirtualKeyCode::F6                  => Key::KeyF6,
        VirtualKeyCode::F7                  => Key::KeyF7,
        VirtualKeyCode::F8                  => Key::KeyF8,
        VirtualKeyCode::F9                  => Key::KeyF9,
        VirtualKeyCode::F10                 => Key::KeyF10,
        VirtualKeyCode::F11                 => Key::KeyF11,
        VirtualKeyCode::F12                 => Key::KeyF12,
        VirtualKeyCode::F13                 => Key::KeyF13,
        VirtualKeyCode::F14                 => Key::KeyF14,
        VirtualKeyCode::F15                 => Key::KeyF15,
        VirtualKeyCode::F16                 => Key::KeyF16,
        VirtualKeyCode::Numpad0             => Key::KeyNumpad0,
        VirtualKeyCode::Numpad1             => Key::KeyNumpad1,
        VirtualKeyCode::Numpad2             => Key::KeyNumpad2,
        VirtualKeyCode::Numpad3             => Key::KeyNumpad3,
        VirtualKeyCode::Numpad4             => Key::KeyNumpad4,
        VirtualKeyCode::Numpad5             => Key::KeyNumpad5,
        VirtualKeyCode::Numpad6             => Key::KeyNumpad6,
        VirtualKeyCode::Numpad7             => Key::KeyNumpad7,
        VirtualKeyCode::Numpad8             => Key::KeyNumpad8,
        VirtualKeyCode::Numpad9             => Key::KeyNumpad9,
        VirtualKeyCode::NumpadDivide        => Key::KeyNumpadDivide,
        VirtualKeyCode::NumpadMultiply      => Key::KeyNumpadMultiply,
        VirtualKeyCode::NumpadSubtract      => Key::KeyNumpadMinus,
        VirtualKeyCode::NumpadAdd           => Key::KeyNumpadAdd,
        VirtualKeyCode::NumpadEnter         => Key::KeyNumpadEnter,
        VirtualKeyCode::NumpadDecimal       => Key::KeyNumpadDecimal,

        _                                   => Key::Unknown
    }
}