From 4258db38883e39ef2e79bb3a9a4a0dc3df7c8129 Mon Sep 17 00:00:00 2001 From: Astra <93453568+Astrrra@users.noreply.github.com> Date: Thu, 18 Jul 2024 16:13:53 +0900 Subject: [PATCH] [FL-3752] HID/BLE Keyboard UI refactoring (#3777) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * HID app new keyboard WIP * Shift logic for special cases * Fix apostrophe button * Satisfy PVS * Review changes * Fix shift text * Satisfy PVS Co-authored-by: あく Co-authored-by: hedger Co-authored-by: hedger --- .../system/hid_app/assets/Alt_17x10.png | Bin 550 -> 112 bytes .../system/hid_app/assets/Alt_active_17x9.png | Bin 0 -> 3614 bytes .../hid_app/assets/Alt_pressed_17x10.png | Bin 4227 -> 0 bytes .../system/hid_app/assets/Backspace_9x7.png | Bin 6628 -> 0 bytes .../system/hid_app/assets/Cmd_17x10.png | Bin 556 -> 116 bytes .../system/hid_app/assets/Cmd_active_17x9.png | Bin 0 -> 3618 bytes .../hid_app/assets/Cmd_pressed_17x10.png | Bin 4234 -> 0 bytes .../system/hid_app/assets/Ctrl_17x10.png | Bin 552 -> 116 bytes .../hid_app/assets/Ctrl_active_17x9.png | Bin 0 -> 3619 bytes .../hid_app/assets/Ctrl_pressed_17x10.png | Bin 4227 -> 0 bytes .../system/hid_app/assets/Del_17x10.png | Bin 551 -> 116 bytes .../system/hid_app/assets/Enter_11x7.png | Bin 0 -> 3609 bytes .../system/hid_app/assets/Esc_17x10.png | Bin 550 -> 117 bytes .../hid_app/assets/Shift_active_7x9.png | Bin 0 -> 113 bytes .../hid_app/assets/Shift_inactive_7x9.png | Bin 0 -> 116 bytes .../hid_app/assets/Shift_pressed_7x10.png | Bin 6626 -> 0 bytes .../system/hid_app/assets/Tab_17x10.png | Bin 549 -> 110 bytes .../system/hid_app/assets/Tab_19x12.png | Bin 0 -> 984 bytes .../hid_app/assets/apostrophe_button_9x11.png | Bin 0 -> 94 bytes .../hid_app/assets/backslash_button_9x11.png | Bin 0 -> 3595 bytes .../system/hid_app/assets/backspace_19x11.png | Bin 0 -> 3612 bytes .../hid_app/assets/backspace_hovered_9x11.png | Bin 0 -> 3612 bytes .../hid_app/assets/backtick_button_9x11.png | Bin 0 -> 3593 bytes .../hid_app/assets/brace_left_button_9x11.png | Bin 0 -> 3601 bytes .../assets/brace_right_button_9x11.png | Bin 0 -> 3600 bytes .../hid_app/assets/equals_button_9x11.png | Bin 0 -> 3595 bytes .../hid_app/assets/hash_button_9x11.png | Bin 0 -> 3598 bytes .../hid_app/assets/percent_button_9x11.png | Bin 0 -> 3607 bytes .../hid_app/assets/quote_button_9x11.png | Bin 0 -> 3594 bytes .../hid_app/assets/slash_button_9x11.png | Bin 0 -> 3595 bytes .../assets/sq_bracket_left_button_9x11.png | Bin 0 -> 3598 bytes .../assets/sq_bracket_right_button_9x11.png | Bin 0 -> 3598 bytes .../hid_app/assets/underscore_button_9x11.png | Bin 0 -> 3593 bytes .../system/hid_app/views/hid_keyboard.c | 132 ++++++++++++++---- 34 files changed, 105 insertions(+), 27 deletions(-) create mode 100755 applications/system/hid_app/assets/Alt_active_17x9.png delete mode 100644 applications/system/hid_app/assets/Alt_pressed_17x10.png delete mode 100644 applications/system/hid_app/assets/Backspace_9x7.png create mode 100755 applications/system/hid_app/assets/Cmd_active_17x9.png delete mode 100644 applications/system/hid_app/assets/Cmd_pressed_17x10.png create mode 100755 applications/system/hid_app/assets/Ctrl_active_17x9.png delete mode 100644 applications/system/hid_app/assets/Ctrl_pressed_17x10.png create mode 100755 applications/system/hid_app/assets/Enter_11x7.png create mode 100644 applications/system/hid_app/assets/Shift_active_7x9.png create mode 100644 applications/system/hid_app/assets/Shift_inactive_7x9.png delete mode 100644 applications/system/hid_app/assets/Shift_pressed_7x10.png create mode 100755 applications/system/hid_app/assets/Tab_19x12.png create mode 100644 applications/system/hid_app/assets/apostrophe_button_9x11.png create mode 100755 applications/system/hid_app/assets/backslash_button_9x11.png create mode 100755 applications/system/hid_app/assets/backspace_19x11.png create mode 100755 applications/system/hid_app/assets/backspace_hovered_9x11.png create mode 100755 applications/system/hid_app/assets/backtick_button_9x11.png create mode 100755 applications/system/hid_app/assets/brace_left_button_9x11.png create mode 100755 applications/system/hid_app/assets/brace_right_button_9x11.png create mode 100755 applications/system/hid_app/assets/equals_button_9x11.png create mode 100755 applications/system/hid_app/assets/hash_button_9x11.png create mode 100755 applications/system/hid_app/assets/percent_button_9x11.png create mode 100755 applications/system/hid_app/assets/quote_button_9x11.png create mode 100755 applications/system/hid_app/assets/slash_button_9x11.png create mode 100755 applications/system/hid_app/assets/sq_bracket_left_button_9x11.png create mode 100755 applications/system/hid_app/assets/sq_bracket_right_button_9x11.png create mode 100755 applications/system/hid_app/assets/underscore_button_9x11.png diff --git a/applications/system/hid_app/assets/Alt_17x10.png b/applications/system/hid_app/assets/Alt_17x10.png index 93041d25039a763a50c63398840767da293643fe..78529ca07d7d8b0d3767b7536a91f8f42cc67ece 100644 GIT binary patch delta 75 zcmZ3+QZPY+laT=ks@OaDC$D3aFjw+)aSY*@nf&Ab{>F#JmCT2u1^n_7DmapxKfGgO cn_wfr%rNVw$ir+;aUYOAPgg&ebxsLQ0F6l)uK)l5 delta 515 zcmV+e0{s1OrUZ}}e+U8q007+{BJ}_O0fA{lLr`;4M?xS;MME|*IW{&eGA=Oy04R}l zkC5rP?I!9`L&sO=7*X$^Lp=1nrxM=qQu6p1%Cls zWvvvEk}Ydu!}OfzsgcaNoqIm_d+#~jdoH*mX+<^4dqB;Ye|mT<=$)OL_f|gPp_L~3 z>5M9dHas;IqNKgw;y~q+`r~oiW>^Js)UCWO*e(dg+nW*X7iSCqmqg)37-ge z>2g8g8(WV#{A_d5;ZK|ONO%O?^}^odFOL0UC8evv@^XA?I;Z^H$9_poJTo&bu}!=M zgD_(R@iM_Ee*K((3Wrek0Oy%ves&)Q-bCLhYQ86~6XW1KyO;EdB>UYidQyxc46pw=#0TB39vObw*-8Ka002ovPDHLk FV1h`n^`!s+ diff --git a/applications/system/hid_app/assets/Alt_active_17x9.png b/applications/system/hid_app/assets/Alt_active_17x9.png new file mode 100755 index 0000000000000000000000000000000000000000..46a21a2e85584b6d8cbd4923cbd6787b2d5a0041 GIT binary patch literal 3614 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 XbPZ5WQgh&4Jpiyax5HInJR<)M%F{Bk literal 0 HcmV?d00001 diff --git a/applications/system/hid_app/assets/Alt_pressed_17x10.png b/applications/system/hid_app/assets/Alt_pressed_17x10.png deleted file mode 100644 index e7421c8c0bf7d189200b2b953219f24b287f093d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4227 zcmeHKYitx%6rSawWdYGr&_JS_sX(R7&dl!4?9QZHEZsg<9VoCswK4JT%-wcmU(QUs z+m@h$ii!~mY7_ybJbVI*f%pOy9~GlPFvK6cOf%D;wK(7YC*nbWCrscG>BKq{k_D??BJotWF9o|^bwv3t^{`l<5ldrUW`Od1=(%)N83kO@BZx^Z+ z+!w94e)ViidQ#`ARnPxEyY$GKr^jD7^~A(S_!4eZ`?~Fik8U}(_3)-y7Y=-I;?Bp% z+TVWlp+yCf_u-C*%ZoQe&ODP`yXf;6#QY1L&x{)P zTkDQ96L#IUiF~W_##MOPI_6Y9H(}qg{E_V)c-^l3moD$0Q@H2w$4#$AhECl*|Ge<-!p~oww{P5!KTcV+a&z6q0ecoUjQ+;vc0r1z)ljWb zE8QW=iI@{9i7(Oijz#0TnD&zvt_ZTJrb&loV$AiEwU9F92@N|uPLGqJ zD$;6`i!8M}N;D-R&InXyAz1!k!R{obyjMYEf%DicI4uj)AETtFpb8G%r`q z!=#{IjU_EFAiI~Pp+>sN>J^(gV{NBrAmEx)W4 zRu$0_ImI18OxQZjt>jsL;*n|RbrwTYcQuv4$ z@f4$k70Tm94CP}LFNNH^hvRr3gWcgC5YsdjvJypmMrA@N02TJ|ir`Z?N=B^DgkmYg zARmQUA>#HSA*^^<3rdm2%7hj}aGYuk)nhstueT;l!o{+hpr3R(nQl!@6d4h4@RN6_ z@y2xbL`aR{nFcc1WW5aMcC(zD=Y3wE&(&=-8*4gbqKRphNo&SD77;cB#3D0K0l?D3 zUc_<@BO{@O5{amv%oW(&v;@~lK?VvS0|RKT6%oaXt^vUV*MBB1Q^nxU3#{1g;=Gtsf&t zk#$hF^o}LffX!0?!YGENSnf)~=N|CU7&_8yHe$uf8$fxr5tJ&f?zD{pQotnI&C+@Y>R0&g5F|NZwt4bO0C;te6_uH07QJe*x!(u95%% diff --git a/applications/system/hid_app/assets/Backspace_9x7.png b/applications/system/hid_app/assets/Backspace_9x7.png deleted file mode 100644 index e098cf676167cdd78687b61cc1b61caf6e6b5666..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6628 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 diff --git a/applications/system/hid_app/assets/Cmd_17x10.png b/applications/system/hid_app/assets/Cmd_17x10.png index 26ca3395c699cd19f2ae3c12d46954a45310eab7..b29da07b7166bad378fc1742bb8c14c683adbb0f 100644 GIT binary patch delta 79 zcmZ3(QZhk;laT=ks@OaDC$D3auvYVQaSY*@nf&Ab{>F!Y_OrFUb=Z^c&V2Zu0mnVA hBk9Ug5)Pjnco^mdiMW?fFAM?c^>p=fS?83{1OPs~8<+q9 delta 521 zcmV+k0`~oMtOSr4e+U8q007+{BJ}_O0fA{lLr`;4M?xS;MME|*IW{&eGA=Oy04R}l zkC5rP?I!9`L&sO=7*X$^Lp=1nrxM=qQu6p1%Cls zWvvvEk}Ydu!}OfzsgcaNoqIm_d+#~jdoH*mX+<^4dqB;Ye|mT<=$)OL_f|gPp_L~3 z>5M9dHas;IqNKgw;y~q+`r~oiW>^Js)UCWO*e(dg+nW*X7iSCqmqg)37-ge z>2g8g8(WV#{A_d5;ZK|ONO%O?^}^odFOL0UC8evv@^XA?I;Z^H$9_poJTo&bu}!=M zgD_(R@iM_Ee*K((3Wrek0Oy%ves&)Q-bCLhYQ8`knSn zcLx9`wv}U5L>H2L=B200000 LNkvXXu0mjf*}?ao diff --git a/applications/system/hid_app/assets/Cmd_active_17x9.png b/applications/system/hid_app/assets/Cmd_active_17x9.png new file mode 100755 index 0000000000000000000000000000000000000000..9d31b4eb3ef642f5125c8756c0cf2cf97f622ed4 GIT binary patch literal 3618 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 diff --git a/applications/system/hid_app/assets/Ctrl_17x10.png b/applications/system/hid_app/assets/Ctrl_17x10.png index 0eda72160009907c74a5f44e2dd90cd923f1fdfb..05be3292ebae054206af38637102c9032d291bd6 100644 GIT binary patch delta 79 zcmZ3%QZhk;laT=ks@OaDC$D3auvYVQaSY*@nf&Ab{>F!Q?z6S!I_y#3+L(Ahmg64V hk>`)4Bpg0D@Gxvj7oA|4|Ii<#*VEO{Wt~$(698m19Y6p8 delta 517 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 Z69o8o0PsY2>?1Z2ur#&9Rbt#D{tY0lGRgn| literal 0 HcmV?d00001 diff --git a/applications/system/hid_app/assets/Ctrl_pressed_17x10.png b/applications/system/hid_app/assets/Ctrl_pressed_17x10.png deleted file mode 100644 index 978a1090c2ee9f38e07c66adc5f4a3250885a048..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4227 zcmeHKd2AF_7@y@V3xrq-8ZbCc15{vku06+HuylK@vampbk{aXe%-eS8UhYi0+m=)m z5k#XLLZq~)r2?YdsX;kKlp`ACihpngL5@g7Ih8>0o7wHsDv4<#|8*yC-}k=veZTj; z-}~OTJ8${M7xpy{GGZ9k*Hh%41pQ;sj2T_v`_vHPCUl!oi6`LkjKDHr&3ARtZK+827fKAbf%w28BV56zl+n&BA>&e(Z|<2f5f9c$hO5xgen<@uCJg=29~ zex8+aSgj#@f-hYp*&^)ta_u%lVdrwa@+V zK}}-RrN+kPx2KLi`|*-tcP_s(;!Ug5GN7q>$C;lupKCd@e#)JbyDm(hKiIf+?HhBm zytX;}=H!iB6}Y}Mx^mHcQ?Cy*;+JE&X9t(Q=eQeGj+~va{AN+2+sT`IPM@dVz2_hL z$!B}6#b(anSKmFkug>FjavZtIyS@8tTI}`*`*lusw@b)(0js-nY3YEW*J^iOAAaEZ z^~9EfA&qEJGkrPJGW__t%>GULQ1gKk_wJvVmVNll#o`UU#(ujJ?f4?^mtk4fQNNzs zz1cX|cMH3?%wJdaRFBi{GdVMMy4IA=KKgdkz!Pt7sVv|5Q&Y{2(h>dR!!v)6^=VOl zjCMcXd;FogTaK@0?_WFf_|Pj?#?EcnPJa3e*G z$x&5~gmDd1@JA|D7eT;0-Wp#h>h-4K!%B(;;DbsCQHn9qR47EX^-$FODga3Z^iU6_ zxH^icNl1xQ#zd4~g~DofTL?)^`$sEdL47-tNTDDKfvEzkGVPYsE?3$^qo7O@f)1|0A=BRgXuEe^X#nvo=t z4jV!wYhhT#Fjj^}s13w~m<(Ad1lvZXK}i4w3kIx`B|ruc=OE1vWG4LM zhUKh+4kd|vK_nIu;5g-wP==^zxJ;kW2?S<ul3Uzba!1k}PbUM=;Jgt@4pje_wRU-MC)mT07s(2& zU#+W>H)=9^B{@nCgR*{=a9qC>ydWmGpa@kcdES7PoD$20a2bN?kxJKAz5I|=u-jN0 zEBXDT;P6{XGh+wI57(R(EHvU+(acJAorN^I5(%hrA%=3xfJfj8(o_F2!gKV4dZxW~ zyc}t#0ECe=Lo$|s5=NyqOldWvb;nNXUz|8~gEmD5{E|8-UQi3EbTLeE2Jt@1PwFfl z+>M>ZGef40Oo2GrRsbx{MEAr%)LF1;ycIY1-DO$HA*s z5C02=ZtTAHe6(ZrV$k%87EM<$tapE{8L;|>CqUU#^?37pUNZFS*LUbD>qYHtJlEsS zEzUXA=*u-?bVmKX`-grTI484o#X+BEf%Dk~pZhD0?SE0-Sife}tnE{FZ1NrKai^hh m?~{KXUS8M2gr<FztzO%L6R>-+`py0KYKsU4D hg!-6Wjf^V%M;KNf5cy=-xK041*VEO{Wt~$(698$p9X0>} delta 516 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 S#$uWS2P{qPaAg?xh<^j66EJ`P literal 0 HcmV?d00001 diff --git a/applications/system/hid_app/assets/Esc_17x10.png b/applications/system/hid_app/assets/Esc_17x10.png index 6a011e97a8aa56bdb3444156ecc91943872a3dd1..83a6f225fc6b715d49746579edf2e5b1f98aa193 100644 GIT binary patch delta 80 zcmZ3+QaV9`laT=ks@OaDC$D3auu=DPaSY*@nf&Ab{>Fu}9p9Nh+MQ%;yZ7GVmduI$ j_YPc0x_N+M5_=NEgbLwDN9-EgL7F{X{an^LB{Ts5wAUZ6 delta 515 zcmV+e0{s1TrUZ}}e+U8q007+{BJ}_O0fA{lLr`;4M?xS;MME|*IW{&eGA=Oy04R}l zkC5rP?I!9`L&sO=7*X$^Lp=1nrxM=qQu6p1%Cls zWvvvEk}Ydu!}OfzsgcaNoqIm_d+#~jdoH*mX+<^4dqB;Ye|mT<=$)OL_f|gPp_L~3 z>5M9dHas;IqNKgw;y~q+`r~oiW>^Js)UCWO*e(dg+nW*X7iSCqmqg)37-ge z>2g8g8(WV#{A_d5;ZK|ONO%O?^}^odFOL0UC8evv@^XA?I;Z^H$9_poJTo&bu}!=M zgD_(R@iM_Ee*K((3Wrek0Oy%ves&)Q-bCLhYQ8<&Rh32UCROf{1Dgaa_M_E)P!3HG%MVKuHQWl;rjv*3LOZy!87z{WL9eDFU zK22S0(*kqdP)*N>tWAnH7do;nlho%(*jxF>|JFR;(42oSxo+R$-lHxk{rkSiC!iS& Mp00i_>zopr0E&$x?EnA( literal 0 HcmV?d00001 diff --git a/applications/system/hid_app/assets/Shift_inactive_7x9.png b/applications/system/hid_app/assets/Shift_inactive_7x9.png new file mode 100644 index 0000000000000000000000000000000000000000..1cd97076edc7f3a82d640aaf6f17188ac42c6b1e GIT binary patch literal 116 zcmeAS@N?(olHy`uVBq!ia0vp^>_E)P!3HG%MVKuHQr4a>jv*3Lr}i20F&J<#9sKcM z|MF6)tXm6p-29rRsN_s+S@%le^CJX_}x|@^YE^ QKw}s@UHx3vIVCg!0P+?jVgLXD literal 0 HcmV?d00001 diff --git a/applications/system/hid_app/assets/Shift_pressed_7x10.png b/applications/system/hid_app/assets/Shift_pressed_7x10.png deleted file mode 100644 index 4f6b4b58eac7df55798cfc5747bb1bb47a09ea47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6626 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 W(tV}+OFw`b5Nq>|)W6JpWB(JHjv}J~ diff --git a/applications/system/hid_app/assets/Tab_17x10.png b/applications/system/hid_app/assets/Tab_17x10.png index c62d75c0db531f4ed1d9d7759500ba50dd47ed19..4d8471483e54ac930794fea6828371cb75043d77 100644 GIT binary patch delta 73 zcmZ3=k~cwulaT=ks@OaDC$D3aFjeq$aSY*@nf&Ab{>FtrtCC5rP?I!9`L&sO=7*X$^Lp=1nrxM=qQu6p1%Cls zWvvvEk}Ydu!}OfzsgcaNoqIm_d+#~jdoH*mX+<^4dqB;Ye|mT<=$)OL_f|gPp_L~3 z>5M9dHas;IqNKgw;y~q+`r~oiW>^Js)UCWO*e(dg+nW*X7iSCqmqg)37-ge z>2g8g8(WV#{A_d5;ZK|ONO%O?^}^odFOL0UC8evv@^XA?I;Z^H$9_poJTo&bu}!=M zgD_(R@iM_Ee*K((3Wrek0Oy%ves&)Q-bCLhYQ8a4gfF+lE(jknI4)D)7s6+1*jltmvA!!5KE&9fLL@5 zb&ZWr3Ykk$ahVZFM%$J)X3kmTg_GZ-HH3K2>92lwtAV&G3?#yg@Bjb+07*qoM6N<$ Ef{+sO1ONa4 diff --git a/applications/system/hid_app/assets/Tab_19x12.png b/applications/system/hid_app/assets/Tab_19x12.png new file mode 100755 index 0000000000000000000000000000000000000000..4dbde3babfc9f03a485f51eb8442602d46090bf8 GIT binary patch literal 984 zcmaJ=zi-n(6t+~Ulqy9?FaXoZU5eEBY{&Uwt8PhbheoQaC=DV5LofEVu~PeteQlf$ zmG~h+1p_-1`~irKfdPTUz=l*NHby2k)^JXfv_pd>`@MU5-}m0T_xZTKd3Ry{);z~? z3$=B#!R$5mX69zt_rsNg_sra+R*P@dcFT2#FsuG{>#1B_VRUn1VLm^#Yy$^YIf8JXh!M=WWpr4czh84GeYpY--(HMb`DFTVV7sOhk^Fv;Z`DqyPV3Q=olyyW=0!39o zC08ltbBekQWKqsRF$d*bR?2B&UQ_a5^zf`;xmvYcDu|{b$yT)>NtRW%q+&@i zq(a%WDw3*ZJN zrDm3!$M)Ji2b!PmVvAUb@fUyngn3bwgS{nwb;1 VWz0QT7<_jao~v1#=DW)FFr@$h literal 0 HcmV?d00001 diff --git a/applications/system/hid_app/assets/apostrophe_button_9x11.png b/applications/system/hid_app/assets/apostrophe_button_9x11.png new file mode 100644 index 0000000000000000000000000000000000000000..0f54f0e2b15f28e99272e5f1ac4451676643d213 GIT binary patch literal 94 zcmeAS@N?(olHy`uVBq!ia0vp^oIuRY!3-p4wTEj0DYgKg5ZC|z{{xw!hc4FvDPd0+ p$B>F!NeKrSB|dIC!NS1E#=z*$!17?Kcmq(H!PC{xWt~$(69Bml7bpM# literal 0 HcmV?d00001 diff --git a/applications/system/hid_app/assets/backslash_button_9x11.png b/applications/system/hid_app/assets/backslash_button_9x11.png new file mode 100755 index 0000000000000000000000000000000000000000..6cac74a57a1094853e8b67a936685b77211a9b70 GIT binary patch literal 3595 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 V0CdlhVa7%P7ACg1a*SKVzX6{fE$jdQ literal 0 HcmV?d00001 diff --git a/applications/system/hid_app/assets/backspace_hovered_9x11.png b/applications/system/hid_app/assets/backspace_hovered_9x11.png new file mode 100755 index 0000000000000000000000000000000000000000..17cb1b7403b155769fc0f792b3cb7219fefd8cfb GIT binary patch literal 3612 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 DXpAVr literal 0 HcmV?d00001 diff --git a/applications/system/hid_app/assets/brace_left_button_9x11.png b/applications/system/hid_app/assets/brace_left_button_9x11.png new file mode 100755 index 0000000000000000000000000000000000000000..a61db48f369b3a565c9e2cf025f46e30895534f0 GIT binary patch literal 3601 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 K_%f_p_`d<5jx4SK literal 0 HcmV?d00001 diff --git a/applications/system/hid_app/assets/brace_right_button_9x11.png b/applications/system/hid_app/assets/brace_right_button_9x11.png new file mode 100755 index 0000000000000000000000000000000000000000..bf6b927f192184a6bac5eb2ca1bbfd45d32bde4e GIT binary patch literal 3600 zcmaJ@c{r4N8-7LhEm=Z3W5^aWW~?(A%gorag^`gKV~jCr%otN+DOs|`At`G_WnU_a zgtCQ_5t5y3NgaGy;v{_IoYVQfKhF2P*Y&=?=lxyxeLwf}{GRu^-nirTmLh_3f&c)B zSX*J8II95X7UJjTJTqfl)d4`zoPxm|x5i*VbOz0va-IYLfy3F(WSsN7G-`c(6>Sq6 zcGHIDB*hPMLdSZba%|dXZq6g$ksHgMm>8BI<)|rqO>mHJM)7W9 z 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 E0Z1+=g#Z8m literal 0 HcmV?d00001 diff --git a/applications/system/hid_app/assets/hash_button_9x11.png b/applications/system/hid_app/assets/hash_button_9x11.png new file mode 100755 index 0000000000000000000000000000000000000000..bddc7aaceaec73be99928fcbce82d9e9094c2f35 GIT binary patch literal 3598 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 J3Dzy*{{Rw;E3^Or literal 0 HcmV?d00001 diff --git a/applications/system/hid_app/assets/percent_button_9x11.png b/applications/system/hid_app/assets/percent_button_9x11.png new file mode 100755 index 0000000000000000000000000000000000000000..ce12dcbf1e42d9c5bb2d2c0c8be79c495876cd92 GIT binary patch literal 3607 zcmaJ@XH-*Z*S!eRn@SN8Cj_Jk2?@;vLP_=2C*O= z6*P)~(gYL%0Ribs5s?Ajp$H@G4bC{<_haV0Yu)>t`>eh9+2=gxu5}ZRI#^4H?h^$7 zK*H7r>&#n4c(<4^Kku0pN6-WSQA;WYbJP}t0Wp|#AL>~$00a$iTqt;#X*tx&$P(Hv zKK!~J-C0%`#N-gTR_F!57t}2#4AkPXYjyX>ZApDaXP)2-kLIgor5v^s z4wnJULz2+<0dp(9a88Dr3y>=Sc(i(Xjsr(^01x#`pSyu@&T3{TAK-pnS(Yz11pw_K z$72CsW1ytt*kwzAs0+yW*fk=64?2LZEy2eIc=!~kZI>1+2ZY4|U8ndMO+X+N@Muv{ z2?C-s0U4_Wg30fP%A}{Xc%8~DH>p%bSVp)D>jVf92#^CB?Y8oVWDH3=NLl8P`ru3j zc!a*x$Hlh*keedQt9EfCs9mzGz1=X0D|uSy>r25cu&3wv=43}P!yEuUvBEkxwV@UJ z!i@#PX`6Qr&I$OQ63acelIT+|W&Q-nogN@8GPZkTdHZT*fB)pf#D^n|Xm`>Z!o^KW z{pni5#@Ro@Ox9PHKfV}KjewtwuohVTSpRm(K5u`=HIZn~q0hrchD)|I-!jkcbZ zL@k+dr`-Wb*sLpy@H}t=`kLmegI!zRW24$@{HCJ@z{4}9e4!~i1t-1uzuBov6Ir!m zD*&)iMX!6WAP+Y3p zt6eL&zi#JHo!GjEVKiE`u^ugr7WEF_&-BnNi9~C}wmnqR@_@cKSJJO_@{LVpNJ8pe zpGl$^Qr}6!IdvM<5h4N>Ey8<9$^-Fyo|lO#Ny74(F{{dTHUhg7RY9-gWt_lvDF!w$ z=gWAItBukEin#+3cf#sA=(oiKG+n1_N(ge8W1rO;g5EzR|lsS*gaNzzUz<1 zy`FGb9MMKwrFVDo9;kF^Jf_h|b$0>=u3mX{hwY<#_^#buR$cziD%0A9+4?s7R8n6L zc>9$LA+BqK4zw>-@keu3(S;xhzCml$@wuQwe?>( zuT_2Y+|MoNO@1BP9|IIW4+bXQGKOfULf6Q@&TOQH%_{j>ZQcmf?-m227{9XB#4yg{sIlYvIhre@Qa|@p;Je>R>I9SG| zaW9f6p7NBZugV(cQfpE#KEL?u21-aGu3xfP>9|r@;A5r?@)&X?tNrGj*~M2&Y12>& zu|vA!gWfoIPpf7lmE)4#ZB3DHA`Z|6Zdt((hb<1Lzuu(?00M$b|jkub3{DQ zIbxt?S_C;`GGO#v|G8Nc#K-Mz50OK(J!`ig0nsWm^gsJzbbWR)Zj3V~HXbUU0c|pX}CMW#C^rcR9uysy-FYbXm|%&?v&&p9 zT90G#EFrxttVS&a=NECR?oDLf6F$EgF;~&an2R$*eX}PWiBPxEC#3JO97R*vgv(_z zgYxOJmp*6=1x+f((ciqx9J>Cvu(+|(yThl;XZrJqPL8`|T2cDvbV+}S{(;95qsJc4 zE`PHegr>J?3|2*PF_m{;nmnr}=f7@mGd9ED!!O~#;|=G!hM$o7R{cBY6ho`O>HpR< z=w7|DVfy;Tpevs%uE(c`yk@&rv0_%1P&B=ownjTy>Oc#aZRYRd-w;xft9{fe>roM?=@R3FQYwEysWOpiMq2mhY2IpcJ zV=hCcCU6xykQ^wWC?I#wVu@=e)C-)GZ5wad2Pt(4#zM5>N zb~`p#-K@$gt32UXITup%B-CeRS~16{eR!!R_;WqDL?IE<;j z(cW6s&sLu+t#+(Fy<|RX(T^F9>oIfR9QrUnbm>ejJ9n{j$a+OECaPmIWjR?2vokp} zxiwZIb|&YrDFQKO#@v`*&&PClcc|saZ{FE#Et8jnhOPF@^tE?pbly&1NKbu9yO6i> zwRT3~!C+H;(}5SSgY;mhmX58>*0G1!O7nL|r5qXrb1 z#^U@y~CK<5srhAe>wlorj>`W$k2M4?+n*ad6CKXR)5pniN zFFFlE+QvYFXbc`308Gq+7$h%0G7IEMrcnJ+;Q6YTU=YKy~3zI9!K^&#{63WMlwm-Q2f!~Jh4jrKP> zkmXGNKfnJd9EcBQkfF}xK>9hR7w_Z%s+CsCxXV{WyX@3)bnI- zD<+)=`cXBK`tM#0|J}=Xu#9Me8&}GL6z%q9?E+Qv{J|l fPHq}n767Og5QqX~%r~Nc<$(cPO9yNj+9UG6>eVio literal 0 HcmV?d00001 diff --git a/applications/system/hid_app/assets/quote_button_9x11.png b/applications/system/hid_app/assets/quote_button_9x11.png new file mode 100755 index 0000000000000000000000000000000000000000..e96d29ddcdb5ecd51c261269e782f663c6f72d52 GIT binary patch literal 3594 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 CZ7IkA literal 0 HcmV?d00001 diff --git a/applications/system/hid_app/assets/slash_button_9x11.png b/applications/system/hid_app/assets/slash_button_9x11.png new file mode 100755 index 0000000000000000000000000000000000000000..60871320ffd6627e73f7fdb54085745154411832 GIT binary patch literal 3595 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 D%k(OT literal 0 HcmV?d00001 diff --git a/applications/system/hid_app/assets/sq_bracket_left_button_9x11.png b/applications/system/hid_app/assets/sq_bracket_left_button_9x11.png new file mode 100755 index 0000000000000000000000000000000000000000..0983db129625c9b494df43f660b220f91635721f GIT binary patch literal 3598 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 Hb`AYEX7(&M literal 0 HcmV?d00001 diff --git a/applications/system/hid_app/assets/underscore_button_9x11.png b/applications/system/hid_app/assets/underscore_button_9x11.png new file mode 100755 index 0000000000000000000000000000000000000000..eb000cba552b8c8d3dadec6a69d66525d04f3dfb GIT binary patch literal 3593 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 && key.icon_shift != NULL) { + // Icon and shift + const Icon* key_icon = key.icon_shift; + + if((model->ctrl && key.value == HID_KEYBOARD_L_CTRL) || + (model->alt && key.value == HID_KEYBOARD_L_ALT) || + (key.value == HID_KEYBOARD_L_SHIFT) || + (model->gui && key.value == HID_KEYBOARD_L_GUI)) { + if(key.icon_toggled) { + key_icon = key.icon_toggled; + } + } + // Draw the icon centered on the button + canvas_draw_icon( + canvas, + MARGIN_LEFT + x * (KEY_WIDTH + KEY_PADDING) + keyWidth / 2 - key_icon->width / 2, + MARGIN_TOP + y * (KEY_HEIGHT + KEY_PADDING) + KEY_HEIGHT / 2 - key_icon->height / 2, + key_icon); + + return; + } + if(model->shift && key.shift_key != 0) { + // Text and shift + char key_str[2] = {key.shift_key, '\0'}; + + canvas_draw_str_aligned( + canvas, + MARGIN_LEFT + x * (KEY_WIDTH + KEY_PADDING) + keyWidth / 2 + 1, + MARGIN_TOP + y * (KEY_HEIGHT + KEY_PADDING) + KEY_HEIGHT / 2 + 1, + AlignCenter, + AlignCenter, + key_str); + + return; + } + if(key.icon != NULL) { + // Icon with no shift const Icon* key_icon = key.icon; + if((model->ctrl && key.value == HID_KEYBOARD_L_CTRL) || (model->alt && key.value == HID_KEYBOARD_L_ALT) || (model->shift && key.value == HID_KEYBOARD_L_SHIFT) || @@ -210,17 +276,29 @@ static void hid_keyboard_draw_key( MARGIN_LEFT + x * (KEY_WIDTH + KEY_PADDING) + keyWidth / 2 - key_icon->width / 2, MARGIN_TOP + y * (KEY_HEIGHT + KEY_PADDING) + KEY_HEIGHT / 2 - key_icon->height / 2, key_icon); - } else { - char key_str[2] = "\0\0"; - // If shift is toggled use the shift key when available - key_str[0] = (model->shift && key.shift_key != 0) ? key.shift_key : key.key; + + return; + } + + if(key.key != 0) { + // Text with no shift + char key_str[2] = {key.key, '\0'}; + uint8_t key_offset = 0; + + // Special case for numbers, draw them one pixel lower + if(key.value >= HID_KEYBOARD_1 && key.value <= HID_KEYBOARD_0) { + key_offset = 1; + } + canvas_draw_str_aligned( canvas, MARGIN_LEFT + x * (KEY_WIDTH + KEY_PADDING) + keyWidth / 2 + 1, - MARGIN_TOP + y * (KEY_HEIGHT + KEY_PADDING) + KEY_HEIGHT / 2, + MARGIN_TOP + y * (KEY_HEIGHT + KEY_PADDING) + KEY_HEIGHT / 2 + key_offset, AlignCenter, AlignCenter, key_str); + + return; } }