From 1b687c445aa8bf80876567496ff66ecd3226d903 Mon Sep 17 00:00:00 2001 From: bel Date: Wed, 22 Mar 2023 19:00:22 -0600 Subject: [PATCH] gotta map keycodes to strings since single chars dont cover stuff like arrows nicely --- src/.gui.rs.swp | Bin 20480 -> 0 bytes src/gui.rs | 62 ++++++++++++++++++++++++++++++++++++++++-------- 2 files changed, 52 insertions(+), 10 deletions(-) delete mode 100644 src/.gui.rs.swp diff --git a/src/.gui.rs.swp b/src/.gui.rs.swp deleted file mode 100644 index 756ca0515e5821bff7cbd8efa731cb78fca294cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20480 zcmeI3TWl3Y7{?b;yn;p_G~mNf4D6B9(^56TEf)(ELM)=KH6Y^2p4~a;tnAI*S=s_s z69kHhMqfl941vVxgE1NtpCBYg^ufev;wAAGF+QP0dDf`^nZ0z+_LN4cn3!quJG=YM z>^D3A`DS)@cUtRyX!91bveKjA?*>Kr{pcdId*b~$dp0XdEuhrq_8IW3Ph~lxpKa8N6(6Go@YtNVsg`s!_#J$2~q*6fK)&#AQg}bNCl(u{amEch6_1CD|TPy;&X1h;_m*DA{A-~>1Z4g(Ji0}U(( zH-ow0munQ|Yw#g>2fPNJ1ry*9Xo7n{FVMgrS1ZcT;5e87YrzsQ51hYBQN994fDIl7 z>%g5r1wW!~J_Ebc2Q9B-;5A@EcyzyaZN* zAMoPl5GaFB@e*h^=m#3O4U_>%|0=$2nwHy8d%8=L)}52PaYjZ*nHo~NUU6A{tYX-n zOVv`T5?XtxdRKR;Ts)x`G3L3dIM4807I?NzgKBK9GOrr4fET-khN0e|nl@O1JI}59 z0W5j*#k(G8?|NVsu6lcW*V|{o^|tn|x6Oj?OpfHg6l!6(PZu2$4Rpg zDYQOK2?IRk;tSZ|jkxWrAW|;AfMLJAd)QOw0cBC(62r42$6dUG_uRTmc3X5rUCO(7 ziFB?Z{Wf)|%T^`*a}C)m295EgpO2S%CwqLAtX@Oz!-$ZU0FRbIO-<|H4Ii3zFCD9S zdSI%fC7yK%>%%5{xX82BFrpx!rb_u4rQ)@QQ7tqA%V(D7YMRIsR!1z>RQHL4GO6w( zj?RoG5y!Y%Tmx#AKQULkp`5?zs+h>M-g6w?MO|DmwV5b*#^n+T^^5+QrA&_}R~eE67N!I$7MN1hi)UqVxOknyXsA%t9`n zu}#I>lqNzW)h+fI|7Q0S)Vb~jsPSU8W5kPW6J8kEtF0aHD3e`utZH~B%|~2({+rA$eS16f4X)Of~OBCzu*_wySVHCr!hn%11L^@`C^ zvBGM|yH88iWA9Gb$l^ZoO`TD7sS`2LB4vV9jU?rX9-ajD4Bzz-*AxAEaXIzjoSfI^r zw_Y5tmg`3>)W~MB%>`3#sL+aoE}xrmUwj-%n@k(gcT=sSIHIaU80oWcaWVE+>$cuN ziI~>$8-U1=HCq-XrKDxqm`_RnC^aJH1?ayt+10cSw5~@s6CGaUda#LG39^XoqVfbdhhuga$6$8I11~-ZSr8d4 zi?&3+G?mA7ZXcnPxj@It_G`I)bfnCl59P9w6cxvB)>f@yEv~&Kptp)!{Hmqg=^Bxo zkLk>7OZ)Q!O$#CyA=kP1izqyka_ zsen{KDj*e*3P=T{0+(Ka_~m=<6+Hf*o_WbTviQ|tMdxoRsurV8sAg|0G;KZJThO2+ zp8wC_8?=LO)cpBBUEj~2_um4qgJ-}2@HE&8`1k+Q_+I}ucnur}$G{jcz&!9OzP)b% zXYgJ9AXpAQ!FTfrECi=e-g96-5M^I_^<;@s0jYpgKq?>=kP1izqyqo80`Zg-zj7gA zCIxo>_VP!$kg%{GR4ydE;Br~9T(IqmS&onKTy%7uh{K^@iyKt(Jc$bZGpuXf6< w0?5|L@I?hUD}9Lnrwa+i+AqHR0n1^s#VvjmHi^y`#S!L_n&p~&+p^^4FNk|zX8-^I diff --git a/src/gui.rs b/src/gui.rs index 3e5fd8c..f17f0eb 100644 --- a/src/gui.rs +++ b/src/gui.rs @@ -11,7 +11,7 @@ pub fn main() -> iced::Result { struct Main { ntfy: String, - configuring: Option<&char>, + configuring: Option, inputs: Inputs, } @@ -83,26 +83,68 @@ impl Application for Main { } fn update(&mut self, msg: Message) -> Command { - match msg { + match msg.clone() { Message::EventOccurred(event) if self.configuring.is_some() => { match event { iced::event::Event::Keyboard(keyboard::Event::KeyPressed{ key_code, - modifiers, + modifiers: _, .. }) => { - self.ntfy = format!("would set {:?}", key_code); + let key_char = match key_code { + iced::keyboard::KeyCode::Key1 => '1', + iced::keyboard::KeyCode::Key2 => '2', + iced::keyboard::KeyCode::Key3 => '3', + iced::keyboard::KeyCode::Key4 => '4', + iced::keyboard::KeyCode::Key5 => '5', + iced::keyboard::KeyCode::Key6 => '6', + iced::keyboard::KeyCode::Key7 => '7', + iced::keyboard::KeyCode::Key8 => '8', + iced::keyboard::KeyCode::Key9 => '9', + iced::keyboard::KeyCode::Key0 => '0', + iced::keyboard::KeyCode::A => 'a', + iced::keyboard::KeyCode::B => 'b', + iced::keyboard::KeyCode::C => 'c', + iced::keyboard::KeyCode::D => 'd', + iced::keyboard::KeyCode::E => 'e', + iced::keyboard::KeyCode::F => 'f', + iced::keyboard::KeyCode::G => 'g', + iced::keyboard::KeyCode::H => 'h', + iced::keyboard::KeyCode::I => 'i', + iced::keyboard::KeyCode::J => 'j', + iced::keyboard::KeyCode::K => 'k', + iced::keyboard::KeyCode::L => 'l', + iced::keyboard::KeyCode::M => 'm', + iced::keyboard::KeyCode::N => 'n', + iced::keyboard::KeyCode::O => 'o', + iced::keyboard::KeyCode::P => 'p', + iced::keyboard::KeyCode::Q => 'q', + iced::keyboard::KeyCode::R => 'r', + iced::keyboard::KeyCode::S => 's', + iced::keyboard::KeyCode::T => 't', + iced::keyboard::KeyCode::U => 'u', + iced::keyboard::KeyCode::V => 'v', + iced::keyboard::KeyCode::W => 'w', + iced::keyboard::KeyCode::X => 'x', + iced::keyboard::KeyCode::Y => 'y', + iced::keyboard::KeyCode::Z => 'z', + iced::keyboard::KeyCode::Up => 'a', + _ => '`', + }; + self.ntfy = format!("set {:?}", key_char.clone()); + match self.configuring.as_ref().unwrap() { + Message::Up => { self.inputs.stick.up = key_char }, + _ => {}, + }; self.configuring = None; }, _ => {}, } }, - Message::EventOccurred(event) if ! self.configuring => {}, + Message::EventOccurred(_) => {}, _ => { - self.configuring = Some(match event { - _ => None, - }); - self.ntfy = format!("push a key to bind to {:?}", msg); + self.configuring = Some(msg.clone()); + self.ntfy = format!("push a key to bind to {:?}", msg.clone()); }, } return Command::none(); @@ -110,7 +152,7 @@ impl Application for Main { fn subscription(&self) -> Subscription { return subscription::events_with(|event, _| match event { - iced::Event::Keyboard(x) => Some(Message::EventOccurred(event)), + iced::Event::Keyboard(_) => Some(Message::EventOccurred(event)), _ => None, }); }