use crate::iced::{
touch::{self, Finger},
Point,
};
use bevy_input::keyboard::Key as BevyKey;
use bevy_input::prelude::MouseButton;
use bevy_input::touch::{TouchInput, TouchPhase};
use bevy_math::Vec2;
use iced_core::keyboard::Key as IcedKey;
pub fn key_code(virtual_keycode: &BevyKey) -> IcedKey {
use iced_core::keyboard::key::Named;
match virtual_keycode {
BevyKey::Character(s) => IcedKey::Character(s.clone()),
BevyKey::Alt => IcedKey::Named(Named::Alt),
BevyKey::AltGraph => IcedKey::Named(Named::AltGraph),
BevyKey::CapsLock => IcedKey::Named(Named::CapsLock),
BevyKey::Control => IcedKey::Named(Named::Control),
BevyKey::Fn => IcedKey::Named(Named::Fn),
BevyKey::FnLock => IcedKey::Named(Named::FnLock),
BevyKey::NumLock => IcedKey::Named(Named::NumLock),
BevyKey::ScrollLock => IcedKey::Named(Named::ScrollLock),
BevyKey::Shift => IcedKey::Named(Named::Shift),
BevyKey::Symbol => IcedKey::Named(Named::Symbol),
BevyKey::SymbolLock => IcedKey::Named(Named::SymbolLock),
BevyKey::Meta => IcedKey::Named(Named::Meta),
BevyKey::Hyper => IcedKey::Named(Named::Hyper),
BevyKey::Super => IcedKey::Named(Named::Super),
BevyKey::Enter => IcedKey::Named(Named::Enter),
BevyKey::Tab => IcedKey::Named(Named::Tab),
BevyKey::Space => IcedKey::Named(Named::Space),
BevyKey::ArrowDown => IcedKey::Named(Named::ArrowDown),
BevyKey::ArrowLeft => IcedKey::Named(Named::ArrowLeft),
BevyKey::ArrowRight => IcedKey::Named(Named::ArrowRight),
BevyKey::ArrowUp => IcedKey::Named(Named::ArrowUp),
BevyKey::End => IcedKey::Named(Named::End),
BevyKey::Home => IcedKey::Named(Named::Home),
BevyKey::PageDown => IcedKey::Named(Named::PageDown),
BevyKey::PageUp => IcedKey::Named(Named::PageUp),
BevyKey::Backspace => IcedKey::Named(Named::Backspace),
BevyKey::Clear => IcedKey::Named(Named::Clear),
BevyKey::Copy => IcedKey::Named(Named::Copy),
BevyKey::CrSel => IcedKey::Named(Named::CrSel),
BevyKey::Cut => IcedKey::Named(Named::Cut),
BevyKey::Delete => IcedKey::Named(Named::Delete),
BevyKey::EraseEof => IcedKey::Named(Named::EraseEof),
BevyKey::ExSel => IcedKey::Named(Named::ExSel),
BevyKey::Insert => IcedKey::Named(Named::Insert),
BevyKey::Paste => IcedKey::Named(Named::Paste),
BevyKey::Redo => IcedKey::Named(Named::Redo),
BevyKey::Undo => IcedKey::Named(Named::Undo),
BevyKey::Accept => IcedKey::Named(Named::Accept),
BevyKey::Again => IcedKey::Named(Named::Again),
BevyKey::Attn => IcedKey::Named(Named::Attn),
BevyKey::Cancel => IcedKey::Named(Named::Cancel),
BevyKey::ContextMenu => IcedKey::Named(Named::ContextMenu),
BevyKey::Escape => IcedKey::Named(Named::Escape),
BevyKey::Execute => IcedKey::Named(Named::Execute),
BevyKey::Find => IcedKey::Named(Named::Find),
BevyKey::Help => IcedKey::Named(Named::Help),
BevyKey::Pause => IcedKey::Named(Named::Pause),
BevyKey::Play => IcedKey::Named(Named::Play),
BevyKey::Props => IcedKey::Named(Named::Props),
BevyKey::Select => IcedKey::Named(Named::Select),
BevyKey::ZoomIn => IcedKey::Named(Named::ZoomIn),
BevyKey::ZoomOut => IcedKey::Named(Named::ZoomOut),
BevyKey::BrightnessDown => IcedKey::Named(Named::BrightnessDown),
BevyKey::BrightnessUp => IcedKey::Named(Named::BrightnessUp),
BevyKey::Eject => IcedKey::Named(Named::Eject),
BevyKey::LogOff => IcedKey::Named(Named::LogOff),
BevyKey::Power => IcedKey::Named(Named::Power),
BevyKey::PowerOff => IcedKey::Named(Named::PowerOff),
BevyKey::PrintScreen => IcedKey::Named(Named::PrintScreen),
BevyKey::Hibernate => IcedKey::Named(Named::Hibernate),
BevyKey::Standby => IcedKey::Named(Named::Standby),
BevyKey::WakeUp => IcedKey::Named(Named::WakeUp),
BevyKey::AllCandidates => IcedKey::Named(Named::AllCandidates),
BevyKey::Alphanumeric => IcedKey::Named(Named::Alphanumeric),
BevyKey::CodeInput => IcedKey::Named(Named::CodeInput),
BevyKey::Compose => IcedKey::Named(Named::Compose),
BevyKey::Convert => IcedKey::Named(Named::Convert),
BevyKey::FinalMode => IcedKey::Named(Named::FinalMode),
BevyKey::GroupFirst => IcedKey::Named(Named::GroupFirst),
BevyKey::GroupLast => IcedKey::Named(Named::GroupLast),
BevyKey::GroupNext => IcedKey::Named(Named::GroupNext),
BevyKey::GroupPrevious => IcedKey::Named(Named::GroupPrevious),
BevyKey::ModeChange => IcedKey::Named(Named::ModeChange),
BevyKey::NextCandidate => IcedKey::Named(Named::NextCandidate),
BevyKey::NonConvert => IcedKey::Named(Named::NonConvert),
BevyKey::PreviousCandidate => IcedKey::Named(Named::PreviousCandidate),
BevyKey::Process => IcedKey::Named(Named::Process),
BevyKey::SingleCandidate => IcedKey::Named(Named::SingleCandidate),
BevyKey::HangulMode => IcedKey::Named(Named::HangulMode),
BevyKey::HanjaMode => IcedKey::Named(Named::HanjaMode),
BevyKey::JunjaMode => IcedKey::Named(Named::JunjaMode),
BevyKey::Eisu => IcedKey::Named(Named::Eisu),
BevyKey::Hankaku => IcedKey::Named(Named::Hankaku),
BevyKey::Hiragana => IcedKey::Named(Named::Hiragana),
BevyKey::HiraganaKatakana => IcedKey::Named(Named::HiraganaKatakana),
BevyKey::KanaMode => IcedKey::Named(Named::KanaMode),
BevyKey::KanjiMode => IcedKey::Named(Named::KanjiMode),
BevyKey::Katakana => IcedKey::Named(Named::Katakana),
BevyKey::Romaji => IcedKey::Named(Named::Romaji),
BevyKey::Zenkaku => IcedKey::Named(Named::Zenkaku),
BevyKey::ZenkakuHankaku => IcedKey::Named(Named::ZenkakuHankaku),
BevyKey::Soft1 => IcedKey::Named(Named::Soft1),
BevyKey::Soft2 => IcedKey::Named(Named::Soft2),
BevyKey::Soft3 => IcedKey::Named(Named::Soft3),
BevyKey::Soft4 => IcedKey::Named(Named::Soft4),
BevyKey::ChannelDown => IcedKey::Named(Named::ChannelDown),
BevyKey::ChannelUp => IcedKey::Named(Named::ChannelUp),
BevyKey::Close => IcedKey::Named(Named::Close),
BevyKey::MailForward => IcedKey::Named(Named::MailForward),
BevyKey::MailReply => IcedKey::Named(Named::MailReply),
BevyKey::MailSend => IcedKey::Named(Named::MailSend),
BevyKey::MediaClose => IcedKey::Named(Named::MediaClose),
BevyKey::MediaFastForward => IcedKey::Named(Named::MediaFastForward),
BevyKey::MediaPause => IcedKey::Named(Named::MediaPause),
BevyKey::MediaPlay => IcedKey::Named(Named::MediaPlay),
BevyKey::MediaPlayPause => IcedKey::Named(Named::MediaPlayPause),
BevyKey::MediaRecord => IcedKey::Named(Named::MediaRecord),
BevyKey::MediaRewind => IcedKey::Named(Named::MediaRewind),
BevyKey::MediaStop => IcedKey::Named(Named::MediaStop),
BevyKey::MediaTrackNext => IcedKey::Named(Named::MediaTrackNext),
BevyKey::MediaTrackPrevious => IcedKey::Named(Named::MediaTrackPrevious),
BevyKey::New => IcedKey::Named(Named::New),
BevyKey::Open => IcedKey::Named(Named::Open),
BevyKey::Print => IcedKey::Named(Named::Print),
BevyKey::Save => IcedKey::Named(Named::Save),
BevyKey::SpellCheck => IcedKey::Named(Named::SpellCheck),
BevyKey::Key11 => IcedKey::Named(Named::Key11),
BevyKey::Key12 => IcedKey::Named(Named::Key12),
BevyKey::AudioBalanceLeft => IcedKey::Named(Named::AudioBalanceLeft),
BevyKey::AudioBalanceRight => IcedKey::Named(Named::AudioBalanceRight),
BevyKey::AudioBassBoostDown => IcedKey::Named(Named::AudioBassBoostDown),
BevyKey::AudioBassBoostToggle => IcedKey::Named(Named::AudioBassBoostToggle),
BevyKey::AudioBassBoostUp => IcedKey::Named(Named::AudioBassBoostUp),
BevyKey::AudioFaderFront => IcedKey::Named(Named::AudioFaderFront),
BevyKey::AudioFaderRear => IcedKey::Named(Named::AudioFaderRear),
BevyKey::AudioSurroundModeNext => IcedKey::Named(Named::AudioSurroundModeNext),
BevyKey::AudioTrebleDown => IcedKey::Named(Named::AudioTrebleDown),
BevyKey::AudioTrebleUp => IcedKey::Named(Named::AudioTrebleUp),
BevyKey::AudioVolumeDown => IcedKey::Named(Named::AudioVolumeDown),
BevyKey::AudioVolumeUp => IcedKey::Named(Named::AudioVolumeUp),
BevyKey::AudioVolumeMute => IcedKey::Named(Named::AudioVolumeMute),
BevyKey::MicrophoneToggle => IcedKey::Named(Named::MicrophoneToggle),
BevyKey::MicrophoneVolumeDown => IcedKey::Named(Named::MicrophoneVolumeDown),
BevyKey::MicrophoneVolumeUp => IcedKey::Named(Named::MicrophoneVolumeUp),
BevyKey::MicrophoneVolumeMute => IcedKey::Named(Named::MicrophoneVolumeMute),
BevyKey::SpeechCorrectionList => IcedKey::Named(Named::SpeechCorrectionList),
BevyKey::SpeechInputToggle => IcedKey::Named(Named::SpeechInputToggle),
BevyKey::LaunchApplication1 => IcedKey::Named(Named::LaunchApplication1),
BevyKey::LaunchApplication2 => IcedKey::Named(Named::LaunchApplication2),
BevyKey::LaunchCalendar => IcedKey::Named(Named::LaunchCalendar),
BevyKey::LaunchContacts => IcedKey::Named(Named::LaunchContacts),
BevyKey::LaunchMail => IcedKey::Named(Named::LaunchMail),
BevyKey::LaunchMediaPlayer => IcedKey::Named(Named::LaunchMediaPlayer),
BevyKey::LaunchMusicPlayer => IcedKey::Named(Named::LaunchMusicPlayer),
BevyKey::LaunchPhone => IcedKey::Named(Named::LaunchPhone),
BevyKey::LaunchScreenSaver => IcedKey::Named(Named::LaunchScreenSaver),
BevyKey::LaunchSpreadsheet => IcedKey::Named(Named::LaunchSpreadsheet),
BevyKey::LaunchWebBrowser => IcedKey::Named(Named::LaunchWebBrowser),
BevyKey::LaunchWebCam => IcedKey::Named(Named::LaunchWebCam),
BevyKey::LaunchWordProcessor => IcedKey::Named(Named::LaunchWordProcessor),
BevyKey::BrowserBack => IcedKey::Named(Named::BrowserBack),
BevyKey::BrowserFavorites => IcedKey::Named(Named::BrowserFavorites),
BevyKey::BrowserForward => IcedKey::Named(Named::BrowserForward),
BevyKey::BrowserHome => IcedKey::Named(Named::BrowserHome),
BevyKey::BrowserRefresh => IcedKey::Named(Named::BrowserRefresh),
BevyKey::BrowserSearch => IcedKey::Named(Named::BrowserSearch),
BevyKey::BrowserStop => IcedKey::Named(Named::BrowserStop),
BevyKey::AppSwitch => IcedKey::Named(Named::AppSwitch),
BevyKey::Call => IcedKey::Named(Named::Call),
BevyKey::Camera => IcedKey::Named(Named::Camera),
BevyKey::CameraFocus => IcedKey::Named(Named::CameraFocus),
BevyKey::EndCall => IcedKey::Named(Named::EndCall),
BevyKey::GoBack => IcedKey::Named(Named::GoBack),
BevyKey::GoHome => IcedKey::Named(Named::GoHome),
BevyKey::HeadsetHook => IcedKey::Named(Named::HeadsetHook),
BevyKey::LastNumberRedial => IcedKey::Named(Named::LastNumberRedial),
BevyKey::Notification => IcedKey::Named(Named::Notification),
BevyKey::MannerMode => IcedKey::Named(Named::MannerMode),
BevyKey::VoiceDial => IcedKey::Named(Named::VoiceDial),
BevyKey::TV => IcedKey::Named(Named::TV),
BevyKey::TV3DMode => IcedKey::Named(Named::TV3DMode),
BevyKey::TVAntennaCable => IcedKey::Named(Named::TVAntennaCable),
BevyKey::TVAudioDescription => IcedKey::Named(Named::TVAudioDescription),
BevyKey::TVAudioDescriptionMixDown => IcedKey::Named(Named::TVAudioDescriptionMixDown),
BevyKey::TVAudioDescriptionMixUp => IcedKey::Named(Named::TVAudioDescriptionMixUp),
BevyKey::TVContentsMenu => IcedKey::Named(Named::TVContentsMenu),
BevyKey::TVDataService => IcedKey::Named(Named::TVDataService),
BevyKey::TVInput => IcedKey::Named(Named::TVInput),
BevyKey::TVInputComponent1 => IcedKey::Named(Named::TVInputComponent1),
BevyKey::TVInputComponent2 => IcedKey::Named(Named::TVInputComponent2),
BevyKey::TVInputComposite1 => IcedKey::Named(Named::TVInputComposite1),
BevyKey::TVInputComposite2 => IcedKey::Named(Named::TVInputComposite2),
BevyKey::TVInputHDMI1 => IcedKey::Named(Named::TVInputHDMI1),
BevyKey::TVInputHDMI2 => IcedKey::Named(Named::TVInputHDMI2),
BevyKey::TVInputHDMI3 => IcedKey::Named(Named::TVInputHDMI3),
BevyKey::TVInputHDMI4 => IcedKey::Named(Named::TVInputHDMI4),
BevyKey::TVInputVGA1 => IcedKey::Named(Named::TVInputVGA1),
BevyKey::TVMediaContext => IcedKey::Named(Named::TVMediaContext),
BevyKey::TVNetwork => IcedKey::Named(Named::TVNetwork),
BevyKey::TVNumberEntry => IcedKey::Named(Named::TVNumberEntry),
BevyKey::TVPower => IcedKey::Named(Named::TVPower),
BevyKey::TVRadioService => IcedKey::Named(Named::TVRadioService),
BevyKey::TVSatellite => IcedKey::Named(Named::TVSatellite),
BevyKey::TVSatelliteBS => IcedKey::Named(Named::TVSatelliteBS),
BevyKey::TVSatelliteCS => IcedKey::Named(Named::TVSatelliteCS),
BevyKey::TVSatelliteToggle => IcedKey::Named(Named::TVSatelliteToggle),
BevyKey::TVTerrestrialAnalog => IcedKey::Named(Named::TVTerrestrialAnalog),
BevyKey::TVTerrestrialDigital => IcedKey::Named(Named::TVTerrestrialDigital),
BevyKey::TVTimer => IcedKey::Named(Named::TVTimer),
BevyKey::AVRInput => IcedKey::Named(Named::AVRInput),
BevyKey::AVRPower => IcedKey::Named(Named::AVRPower),
BevyKey::ColorF0Red => IcedKey::Named(Named::ColorF0Red),
BevyKey::ColorF1Green => IcedKey::Named(Named::ColorF1Green),
BevyKey::ColorF2Yellow => IcedKey::Named(Named::ColorF2Yellow),
BevyKey::ColorF3Blue => IcedKey::Named(Named::ColorF3Blue),
BevyKey::ColorF4Grey => IcedKey::Named(Named::ColorF4Grey),
BevyKey::ColorF5Brown => IcedKey::Named(Named::ColorF5Brown),
BevyKey::ClosedCaptionToggle => IcedKey::Named(Named::ClosedCaptionToggle),
BevyKey::Dimmer => IcedKey::Named(Named::Dimmer),
BevyKey::DisplaySwap => IcedKey::Named(Named::DisplaySwap),
BevyKey::DVR => IcedKey::Named(Named::DVR),
BevyKey::Exit => IcedKey::Named(Named::Exit),
BevyKey::FavoriteClear0 => IcedKey::Named(Named::FavoriteClear0),
BevyKey::FavoriteClear1 => IcedKey::Named(Named::FavoriteClear1),
BevyKey::FavoriteClear2 => IcedKey::Named(Named::FavoriteClear2),
BevyKey::FavoriteClear3 => IcedKey::Named(Named::FavoriteClear3),
BevyKey::FavoriteRecall0 => IcedKey::Named(Named::FavoriteRecall0),
BevyKey::FavoriteRecall1 => IcedKey::Named(Named::FavoriteRecall1),
BevyKey::FavoriteRecall2 => IcedKey::Named(Named::FavoriteRecall2),
BevyKey::FavoriteRecall3 => IcedKey::Named(Named::FavoriteRecall3),
BevyKey::FavoriteStore0 => IcedKey::Named(Named::FavoriteStore0),
BevyKey::FavoriteStore1 => IcedKey::Named(Named::FavoriteStore1),
BevyKey::FavoriteStore2 => IcedKey::Named(Named::FavoriteStore2),
BevyKey::FavoriteStore3 => IcedKey::Named(Named::FavoriteStore3),
BevyKey::Guide => IcedKey::Named(Named::Guide),
BevyKey::GuideNextDay => IcedKey::Named(Named::GuideNextDay),
BevyKey::GuidePreviousDay => IcedKey::Named(Named::GuidePreviousDay),
BevyKey::Info => IcedKey::Named(Named::Info),
BevyKey::InstantReplay => IcedKey::Named(Named::InstantReplay),
BevyKey::Link => IcedKey::Named(Named::Link),
BevyKey::ListProgram => IcedKey::Named(Named::ListProgram),
BevyKey::LiveContent => IcedKey::Named(Named::LiveContent),
BevyKey::Lock => IcedKey::Named(Named::Lock),
BevyKey::MediaApps => IcedKey::Named(Named::MediaApps),
BevyKey::MediaAudioTrack => IcedKey::Named(Named::MediaAudioTrack),
BevyKey::MediaLast => IcedKey::Named(Named::MediaLast),
BevyKey::MediaSkipBackward => IcedKey::Named(Named::MediaSkipBackward),
BevyKey::MediaSkipForward => IcedKey::Named(Named::MediaSkipForward),
BevyKey::MediaStepBackward => IcedKey::Named(Named::MediaStepBackward),
BevyKey::MediaStepForward => IcedKey::Named(Named::MediaStepForward),
BevyKey::MediaTopMenu => IcedKey::Named(Named::MediaTopMenu),
BevyKey::NavigateIn => IcedKey::Named(Named::NavigateIn),
BevyKey::NavigateNext => IcedKey::Named(Named::NavigateNext),
BevyKey::NavigateOut => IcedKey::Named(Named::NavigateOut),
BevyKey::NavigatePrevious => IcedKey::Named(Named::NavigatePrevious),
BevyKey::NextFavoriteChannel => IcedKey::Named(Named::NextFavoriteChannel),
BevyKey::NextUserProfile => IcedKey::Named(Named::NextUserProfile),
BevyKey::OnDemand => IcedKey::Named(Named::OnDemand),
BevyKey::Pairing => IcedKey::Named(Named::Pairing),
BevyKey::PinPDown => IcedKey::Named(Named::PinPDown),
BevyKey::PinPMove => IcedKey::Named(Named::PinPMove),
BevyKey::PinPToggle => IcedKey::Named(Named::PinPToggle),
BevyKey::PinPUp => IcedKey::Named(Named::PinPUp),
BevyKey::PlaySpeedDown => IcedKey::Named(Named::PlaySpeedDown),
BevyKey::PlaySpeedReset => IcedKey::Named(Named::PlaySpeedReset),
BevyKey::PlaySpeedUp => IcedKey::Named(Named::PlaySpeedUp),
BevyKey::RandomToggle => IcedKey::Named(Named::RandomToggle),
BevyKey::RcLowBattery => IcedKey::Named(Named::RcLowBattery),
BevyKey::RecordSpeedNext => IcedKey::Named(Named::RecordSpeedNext),
BevyKey::RfBypass => IcedKey::Named(Named::RfBypass),
BevyKey::ScanChannelsToggle => IcedKey::Named(Named::ScanChannelsToggle),
BevyKey::ScreenModeNext => IcedKey::Named(Named::ScreenModeNext),
BevyKey::Settings => IcedKey::Named(Named::Settings),
BevyKey::SplitScreenToggle => IcedKey::Named(Named::SplitScreenToggle),
BevyKey::STBInput => IcedKey::Named(Named::STBInput),
BevyKey::STBPower => IcedKey::Named(Named::STBPower),
BevyKey::Subtitle => IcedKey::Named(Named::Subtitle),
BevyKey::Teletext => IcedKey::Named(Named::Teletext),
BevyKey::VideoModeNext => IcedKey::Named(Named::VideoModeNext),
BevyKey::Wink => IcedKey::Named(Named::Wink),
BevyKey::ZoomToggle => IcedKey::Named(Named::ZoomToggle),
BevyKey::F1 => IcedKey::Named(Named::F1),
BevyKey::F2 => IcedKey::Named(Named::F2),
BevyKey::F3 => IcedKey::Named(Named::F3),
BevyKey::F4 => IcedKey::Named(Named::F4),
BevyKey::F5 => IcedKey::Named(Named::F5),
BevyKey::F6 => IcedKey::Named(Named::F6),
BevyKey::F7 => IcedKey::Named(Named::F7),
BevyKey::F8 => IcedKey::Named(Named::F8),
BevyKey::F9 => IcedKey::Named(Named::F9),
BevyKey::F10 => IcedKey::Named(Named::F10),
BevyKey::F11 => IcedKey::Named(Named::F11),
BevyKey::F12 => IcedKey::Named(Named::F12),
BevyKey::F13 => IcedKey::Named(Named::F13),
BevyKey::F14 => IcedKey::Named(Named::F14),
BevyKey::F15 => IcedKey::Named(Named::F15),
BevyKey::F16 => IcedKey::Named(Named::F16),
BevyKey::F17 => IcedKey::Named(Named::F17),
BevyKey::F18 => IcedKey::Named(Named::F18),
BevyKey::F19 => IcedKey::Named(Named::F19),
BevyKey::F20 => IcedKey::Named(Named::F20),
BevyKey::F21 => IcedKey::Named(Named::F21),
BevyKey::F22 => IcedKey::Named(Named::F22),
BevyKey::F23 => IcedKey::Named(Named::F23),
BevyKey::F24 => IcedKey::Named(Named::F24),
BevyKey::F25 => IcedKey::Named(Named::F25),
BevyKey::F26 => IcedKey::Named(Named::F26),
BevyKey::F27 => IcedKey::Named(Named::F27),
BevyKey::F28 => IcedKey::Named(Named::F28),
BevyKey::F29 => IcedKey::Named(Named::F29),
BevyKey::F30 => IcedKey::Named(Named::F30),
BevyKey::F31 => IcedKey::Named(Named::F31),
BevyKey::F32 => IcedKey::Named(Named::F32),
BevyKey::F33 => IcedKey::Named(Named::F33),
BevyKey::F34 => IcedKey::Named(Named::F34),
BevyKey::F35 => IcedKey::Named(Named::F35),
BevyKey::Unidentified(_) | BevyKey::Dead(_) => IcedKey::Unidentified,
_ => IcedKey::Unidentified,
}
}
pub const fn mouse_button(button: MouseButton) -> iced_core::mouse::Button {
use iced_core::mouse::Button;
match button {
MouseButton::Left => Button::Left,
MouseButton::Right => Button::Right,
MouseButton::Middle => Button::Middle,
MouseButton::Other(val) => Button::Other(val),
MouseButton::Back => Button::Back,
MouseButton::Forward => Button::Forward,
}
}
pub const fn touch_event(bevy_touch_input: &TouchInput) -> touch::Event {
match *bevy_touch_input {
TouchInput {
phase: TouchPhase::Started,
position: Vec2 { x, y },
id: finger,
..
} => touch::Event::FingerPressed {
id: Finger(finger),
position: Point { x, y },
},
TouchInput {
phase: TouchPhase::Canceled,
position: Vec2 { x, y },
id: finger,
..
} => touch::Event::FingerLost {
id: Finger(finger),
position: Point { x, y },
},
TouchInput {
phase: TouchPhase::Ended,
position: Vec2 { x, y },
id: finger,
..
} => touch::Event::FingerLifted {
id: Finger(finger),
position: Point { x, y },
},
TouchInput {
phase: TouchPhase::Moved,
position: Vec2 { x, y },
id: finger,
..
} => touch::Event::FingerMoved {
id: Finger(finger),
position: Point { x, y },
},
}
}