From 9ca86caf46caf983f4c122da165a2d4d4c6dfad6 Mon Sep 17 00:00:00 2001 From: Pihkaal Date: Tue, 25 Nov 2025 00:58:29 +0100 Subject: [PATCH] feat(settings): menu navigation (unanimated) --- .../settings/top-screen/clock/alarm.webp | Bin 0 -> 438 bytes .../settings/top-screen/clock/clock.webp | Bin 0 -> 336 bytes .../settings/top-screen/clock/date.webp | Bin 0 -> 318 bytes .../settings/top-screen/clock/time.webp | Bin 0 -> 362 bytes .../top-screen/notification-title.webp | Bin 0 -> 780 bytes .../settings/top-screen/options/gba-mode.webp | Bin 0 -> 334 bytes .../settings/top-screen/options/language.webp | Bin 0 -> 374 bytes .../settings/top-screen/options/options.webp | Bin 0 -> 322 bytes .../settings/top-screen/options/start-up.webp | Bin 0 -> 266 bytes .../top-screen/touch_screen/touch_screen.webp | Bin 0 -> 254 bytes .../settings/top-screen/user/birthday.webp | Bin 0 -> 342 bytes .../settings/top-screen/user/color.webp | Bin 0 -> 302 bytes .../settings/top-screen/user/message.webp | Bin 0 -> 388 bytes .../images/settings/top-screen/user/user.webp | Bin 0 -> 306 bytes .../settings/top-screen/user/user_name.webp | Bin 0 -> 344 bytes .../Settings/BottomScreen/BottomScreen.vue | 2 + .../Settings/BottomScreen/Menus/ClockMenu.vue | 35 ++++++ .../Settings/BottomScreen/Menus/Menus.vue | 110 ++++++++++++++++++ .../BottomScreen/Menus/OptionsMenu.vue | 35 ++++++ .../BottomScreen/Menus/TouchScreenMenu.vue | 18 +++ .../Settings/BottomScreen/Menus/UserMenu.vue | 39 +++++++ .../Settings/TopScreen/Calendar.vue | 2 + app/components/Settings/TopScreen/Clock.vue | 2 + .../Settings/TopScreen/Notifications.vue | 13 +++ .../Settings/TopScreen/TopScreen.vue | 2 + app/stores/settings.ts | 2 - 26 files changed, 258 insertions(+), 2 deletions(-) create mode 100644 app/assets/images/settings/top-screen/clock/alarm.webp create mode 100644 app/assets/images/settings/top-screen/clock/clock.webp create mode 100644 app/assets/images/settings/top-screen/clock/date.webp create mode 100644 app/assets/images/settings/top-screen/clock/time.webp create mode 100644 app/assets/images/settings/top-screen/notification-title.webp create mode 100644 app/assets/images/settings/top-screen/options/gba-mode.webp create mode 100644 app/assets/images/settings/top-screen/options/language.webp create mode 100644 app/assets/images/settings/top-screen/options/options.webp create mode 100644 app/assets/images/settings/top-screen/options/start-up.webp create mode 100644 app/assets/images/settings/top-screen/touch_screen/touch_screen.webp create mode 100644 app/assets/images/settings/top-screen/user/birthday.webp create mode 100644 app/assets/images/settings/top-screen/user/color.webp create mode 100644 app/assets/images/settings/top-screen/user/message.webp create mode 100644 app/assets/images/settings/top-screen/user/user.webp create mode 100644 app/assets/images/settings/top-screen/user/user_name.webp create mode 100644 app/components/Settings/BottomScreen/Menus/ClockMenu.vue create mode 100644 app/components/Settings/BottomScreen/Menus/Menus.vue create mode 100644 app/components/Settings/BottomScreen/Menus/OptionsMenu.vue create mode 100644 app/components/Settings/BottomScreen/Menus/TouchScreenMenu.vue create mode 100644 app/components/Settings/BottomScreen/Menus/UserMenu.vue create mode 100644 app/components/Settings/TopScreen/Notifications.vue diff --git a/app/assets/images/settings/top-screen/clock/alarm.webp b/app/assets/images/settings/top-screen/clock/alarm.webp new file mode 100644 index 0000000000000000000000000000000000000000..bb610fbb33d2c01e96a67a57f24d96b5b44d2e90 GIT binary patch literal 438 zcmV;n0ZIN+Nk&Gl0RRA3MM6+kP&iDX0RR9mEC34t7ojMUq-ItED$sx_eDmX(Gk8$c zNQ%_$0vG)7FAMfm3`vrd2*W*OW3k^wxOeCO2M%@bd?w@>9?=Mp#PA<9@bT3|yZH&0 z`9DWO1U3U=0tB#R+ilw@fjj92$EFn{YWrU$`2f&0zY+a+;I?ff$$&6dFz(DAf4Dt1 zzs)1_>U{O`5G%f=eTe^IbxlKaa}`}fP2*~Yoky97Xl|}zpd1;o1tD|QpK?4A1Y014 zD%&-(Hi>|_(SA|3y9HTmBU-3UWU++yi;@*KFgo;D0UH1-P^p#Y+_Zvoz14!H%iYhy^M=R(Ufvurf6+ITCE1$cyS5^%wv_F`ioV^>IF5d5vUbH74 z>9sY^cEzUDYN$g-TYSRKf6V*?C?nH*g?huirH4Ojw>fM gmpt8RUw8WnIwO}y>0CHp9wp>ac{mUM|9xz30BY36TmS$7 literal 0 HcmV?d00001 diff --git a/app/assets/images/settings/top-screen/clock/clock.webp b/app/assets/images/settings/top-screen/clock/clock.webp new file mode 100644 index 0000000000000000000000000000000000000000..9359ac0c429052db4d6548e8f34cf4497c6d65b9 GIT binary patch literal 336 zcmV-W0k8g2Nk&FU0RRA3MM6+kP&iCG0RR9mEC34tbwG_INs^?-iLol22rJI0aOy2Q zII!WtL)(+}>`yao%4&?XjWqve4jw!UFXJT)8fGJ@dZ)6#RalIp?Y{%JZ5&Akw0+mP z`iHN-JLezw%+s@U=lor4;puW0e`ftbQcp{bTj<$Hh}_=F1{xuOQddZh6p5X%D@7V` zZCZekDz|+lBWQ%guT52E|2bb}6}c+jpHP`Vhad_4tQ=yoiUq4f01;P1+-4XeNw|~k z5$&HdAae!+a3|X%+TVyXNL0X0sG${`{Q|%W#MO$v_U$b}foT6!H?njz;M)rY;{AOk zq0Km&n}mMh+sr6~D~YFz!lb_Y60&rRX(o(d|7iV2MXSvlbit0Dca!w*m3CzI{a%}v iX43m^bruHaIf5*yZ`^*HwOUB4WE(# literal 0 HcmV?d00001 diff --git a/app/assets/images/settings/top-screen/clock/date.webp b/app/assets/images/settings/top-screen/clock/date.webp new file mode 100644 index 0000000000000000000000000000000000000000..7fce3c492abe2ff285831db26196c827305a4877 GIT binary patch literal 318 zcmV-E0m1%KNk&FC0RRA3MM6+kP&iB~0RR9mEC34tHNdT{H*d3s$M6as!Q*5Fug8+5 zN|Y?q2_Hb{zx_TWZ6vAw%{+X#7GB0n7-*P{r0Si@{YK$1j<)}d9Jh@l0|V6EbZY^dL%5!k*a&VZ&kuL3##tpeOge;bn*)dgmhxOO^4p+w>~SSLvP$+ zZSVJe7SbWc8+TaSd#7NBDbqpViVE|@3&h{bX%IWF?YG%!V0QXmH5l2&#$C{YY1s+M Q)1sXS*=u&s?*HF?M{uo}-~a#s literal 0 HcmV?d00001 diff --git a/app/assets/images/settings/top-screen/clock/time.webp b/app/assets/images/settings/top-screen/clock/time.webp new file mode 100644 index 0000000000000000000000000000000000000000..f745ebb5eec89b9634bcbf8b48326495cf410166 GIT binary patch literal 362 zcmV-w0hRtzNk&Fu0RRA3MM6+kP&iCg0RR9mEC34tg`3)T!-hs-ltLi{PH}4Vm{Frg zPm%xsveW`V(ngZ%-^{^>Z{cK|gn@?HNUGkd?C%r~V`=-(z-`+`HlW*gy8VaOrMZjF z{(ZjhuUQK@*X+G*;Xhy@+5+5mr;5+NMHIK?6-rnfw1CNC5>u23Fs4#W$ax}~I0!2Y zj>~2icpWEz2|_2cU_f#>4p=y3LBKc;7(23=1;U|(v6J+`1Iz@n9C(1)58?4R!~pEc z;q3sP9gin`Ju#)qPYX$Sz=0CJAuYpC3rTpuL88_Jcy20`xVeev;-=X57R)f=Tg?Us zu6Su2yad2_fQ$@w2Fw^&7!1I8P$*(Bz<_Zj2o60b=i@o_sIlkk@dSqWCK7>ngW3k?gT3l>aQ+tdF4 I?d|IV0PzQ={r~^~ literal 0 HcmV?d00001 diff --git a/app/assets/images/settings/top-screen/notification-title.webp b/app/assets/images/settings/top-screen/notification-title.webp new file mode 100644 index 0000000000000000000000000000000000000000..a01e4807ec1de27842a95f522321771a5ae5755c GIT binary patch literal 780 zcmV+n1M~b+Nk&El0{{S5MM6+kP&iEZ0ssIn|G*0Xg{0bc!$@j4qBF~aQgj+ZQ7{BU zFoa(I)pVpU>AMqeBl-`)k>t3|EYh$DQE2M0$RscLI)35&_4B2zA3QDXzSwejza(_H$`&j0BF|kRFOx8hnYsPU?-!2bRh-pR zW=5b_5p!KMo6DAKx4D8t-tQ?WP>VpfBBrNJGYg0FyBhE3FU>QsFE%5ZhX5i%*|Z=K z_cPwl8$D!=faW0x#&mQU7tL9C6K`N<7K|Q&0yQ<9sXMW5bIcJO#xKdqw&9$ffqk)2 z0a#TaD0ev?v|LsK{tcXA{pL93u|!xNI7)2+-bX3;$Z!R3J4(IbBf_CV@y|0sa5*AM z8%!mIyCk?_(AGi}gFG|Ai!s6U3ByuHWs0~TwgeqPbTgM|-nr(DVmHg0{dGqHp%d>% zRl+#q)9GD;RrDlwnN4`6Ya^j9*I2?3d7@ObqeE$8UaN{;Im{f)0C~UcDT=1t0|h&7 zTIg3WLg5i5eT@mIHm2zJ4%GliLoPF@4t$(d5{vg?Jx+^-nG;>#m`FK0Wkk)jbncSq zhNwyJRG$3)(A>j`4M|~)rh}@vpThe%o@sFkBe_RJ^UfIltYr?_xuT~mngmZC{{3ok zzhorQx^#8pt**wz%aEE#49P!oy3IL+in8%uT4+5Y7fMDD- zcY?pyINWF8j3CG3aG!x1{>t}3@)l7I2RCc}t~KL|X8EKK@}QJEH;W_d-UaT0=Df22 z@^qS+a`}|a9OA|EQWQ+AxR670y|)eBd1nVO6mA+6r_U`Jq#Nv#WMZQA-mb_{3jpEr zDL6Dk?xTJHqyexmqIG96m07STkl~P+N9XKeCoUz{?h7fOLTRtdH1)jjul~@>hG@7 KI?&(U&tC)3_jY*z literal 0 HcmV?d00001 diff --git a/app/assets/images/settings/top-screen/options/gba-mode.webp b/app/assets/images/settings/top-screen/options/gba-mode.webp new file mode 100644 index 0000000000000000000000000000000000000000..f71125ad74ffd0f31f1f4e06e6cd7c35911b7911 GIT binary patch literal 334 zcmV-U0kQs4Nk&FS0RRA3MM6+kP&iCF0RR9mEC34tmB4Lm+g8&8CAb7yp#PB2At525 zBR}u6&(-@#4v#MT=<+*yhS^A}-tnEmA*{v;?bA%#Hm29JXNP`J`tQJP8%L4>UBA=y zKYY#4ydUP=>N#AGn^|npDVxRr4c$O)km`HGcoRaZn{Y*{r=n~ytwPB0P=iSoa^;cA z$24W5ACJckC_@zb1IizEw8WGd(Q8ng8m7ks%3FmsuHfNxt#~k-Yfwcf;*?zrrr!tP zgKJ=oB9M#_l5)`TF9NOrZA7Nr7Z&-#YNg@=GhD;dg;EuHy^GDMQ5BL^q@Ci_WYscK zep9`ajjrmIGU{ESJ}uPf-c1=|+My;L_fD&b!d#*C8sUm`pD~^`co8y&f_RJxSRcbJ gLQ=EXqG=l}o! literal 0 HcmV?d00001 diff --git a/app/assets/images/settings/top-screen/options/language.webp b/app/assets/images/settings/top-screen/options/language.webp new file mode 100644 index 0000000000000000000000000000000000000000..1af16b52c8bf2f316d7a4aea59d5ace4af26c154 GIT binary patch literal 374 zcmV-+0g3)nNk&F)0RRA3MM6+kP&iCs0RR9mEC34tmB6jFw{EjSM#u~dn73T8A@Sf{RExlE( zx(svLgp3?jIg)-L4J}oQSUqd7h<5+M75q680o@VootsJ`5GW2Ykf|hs3K60u2Fd0e zp$uCTT@V-C@2&eDagRGJpoLU5?)Q Uv`y!^mQG-;t6-<6ESNr0~2r9Ob3?`*!HSJ zU2p@Nz_+j)8L`YUB4|894fa7sgn`Cfun#h#Z{b8HIWh4u!(fNi0u1pn40c#8puzJt z@SGzNK_aF@A`C$yrbD6%Wg;HRL?i)AfC~cE9#6-Sm|Nr)m0CQt<0ssI2 literal 0 HcmV?d00001 diff --git a/app/assets/images/settings/top-screen/touch_screen/touch_screen.webp b/app/assets/images/settings/top-screen/touch_screen/touch_screen.webp new file mode 100644 index 0000000000000000000000000000000000000000..75d93c200ae043613bcd5579633c7352ddec9d39 GIT binary patch literal 254 zcmVNLi`t1R53w8WtAC zNB;UzbArDmBW)uUzJ#YQJ5^WgarIk(Tg zd4EHkliMxC3yemgR6Q|Y#3KeVT_l?zWKb-Ux8DIu5Svco<{darqs|meC%rvjCpplb zNB*B4h+rd`NM~PNpOuoy=pB%OW{{G%H;F+?aPI&Q z4-8UnH(#oYWV3J5m+B(joyKCIx-^yz1Jz}%XQ73ng{Orf7ekFy%OJ!So2Us-`2RO{ E7Sn)hGXMYp literal 0 HcmV?d00001 diff --git a/app/assets/images/settings/top-screen/user/birthday.webp b/app/assets/images/settings/top-screen/user/birthday.webp new file mode 100644 index 0000000000000000000000000000000000000000..003eb0eeab1e9df408cdbd53d2773cd74863e669 GIT binary patch literal 342 zcmV-c0jd5{Nk&Fa0RRA3MM6+kP&iCM0RR9mEC34tRltqFHf%KCujlf|$SNvRe(5sh zcL@MdybJ&dX4@QE3~1_cjTgAaRS_Q5V{uxSJ0^EB23 oIR=}y5gM$QRs%v~&LeAafH6^T5GE*QNPsR8UDZze|F^dc0EPCO;Q#;t literal 0 HcmV?d00001 diff --git a/app/assets/images/settings/top-screen/user/color.webp b/app/assets/images/settings/top-screen/user/color.webp new file mode 100644 index 0000000000000000000000000000000000000000..75840d0396279d76de30c323ae1a5c3c09252bb8 GIT binary patch literal 302 zcmV+}0nz?aNk&E{0RRA3MM6+kP&iB(0RR9mEC34tRY0w+J!~^y))Vv?Sw%1~(9kfb z$NwjN{p|ss^_ywi#$;D0r8H_i4YG|?+F?Ax>AYV5A*hk$NQ#D78<6Yn{_y%wK0h+g z?df;#lw##+-8*e*Zez%@!0A*|} zwVs~7p#WpeSV}ZD)3%MtwopoG)OH$V8>zI1@d(p-z5X*$BPmi36f!E5d;a0=esKLT zvi^Kp?xPz*Ok6A8JI?Mxd??CV6yR)*4ONjwR#{MG+R&$~II6&&_vMh`n-VARirqcj zW0%MFiY*PIT*NcdJ@N&*FcWZpu82Fmw>rH8qQaf`H8@}cu65&&ztVrMohy*Ze0+D@ zqz=q=vES`B3h0{uE>l{V822)_ft)7X3w1R`mlX-%D!SV zAvVlOeddekW8?s2nD9lh{Us_kWt9wbm&u^S=-&|BUo`}1QDwv@OE*W0wJ6q-(aq6f zEecF*oHpTFzllbWr)D?S(+|V_Z9tfNBV?bl5faM$ZUpWZ2G`ON96g$W5onEPV;&6c i;TR2!9tVQn=V(9=g)&F+J`{)Gh>WV?8UFtrTmJy+3%4Ku literal 0 HcmV?d00001 diff --git a/app/assets/images/settings/top-screen/user/user.webp b/app/assets/images/settings/top-screen/user/user.webp new file mode 100644 index 0000000000000000000000000000000000000000..ca96276787faf1c175cc23b2eb38eba9f75d3eb2 GIT binary patch literal 306 zcmV-20nPqWNk&F00RRA3MM6+kP&iB-0RR9mEC34tRXB|#*>2)qEd{EHr z`F`(80qnaq)3%Mtu24#8)Os3Z8>zIzc!bk=z5Y9J+s2U;K-j+8tAF_X7tfE%c|CG> zr4n2AnM(W$(M*vnCGslB0(li=fga!pIX(F0fL9O*hO7`t^H3%z@)`uvbo=FAMby&+ zL-ZNxw&w-zwu%<*a-@#cJu8mRHmIVbThOF!!)8sS-eA`#q&ffVWH7 zy7_+tVF&U{gssud{~OqbREe-d9bF`0Ny$koODvhbQi(M(ywaIUY^V~csG4%h|9@)- E0114Ji2wiq literal 0 HcmV?d00001 diff --git a/app/assets/images/settings/top-screen/user/user_name.webp b/app/assets/images/settings/top-screen/user/user_name.webp new file mode 100644 index 0000000000000000000000000000000000000000..5adcda352ef3a9fff7f8251d9d80186e75194cd7 GIT binary patch literal 344 zcmV-e0jK^_Nk&Fc0RRA3MM6+kP&iCO0RR9mEC34tRlu!nH*7PX*JJ51xC+aZDOIXW z74d%vf<3?ofT(R7nd}0kl#bdx4YG|?+F?Ax>AYV59jI+2NiHx&F-2!)_V~l=eQ^B| zSzph(n-yXv$2RL-_jY9Yki1uXiF%iFVQd}&!Q(!G{9|)V$O&ea9*V)-(!;lmoP
fFAV~#Qae!G!6=psl9atsnfOU63psWLOmS>(-wyXnk-QCYGG2D|}W$5?>_i^p9 zbfJw($R!c@^d;$kZ_k~UELCnQrAnt6>vOXEAXQ@jP`@;P`nqxMbT`7OyK(L`WA(5% zwh(n!2IvRb$tCw#LhR&{TMVyBcfvewNda0Ur5@Xr;9U# import Background from "./Background.vue"; +import Menus from "./Menus/Menus.vue"; const store = useSettingsStore(); @@ -10,4 +11,5 @@ onMounted(() => { diff --git a/app/components/Settings/BottomScreen/Menus/ClockMenu.vue b/app/components/Settings/BottomScreen/Menus/ClockMenu.vue new file mode 100644 index 0000000..c019949 --- /dev/null +++ b/app/components/Settings/BottomScreen/Menus/ClockMenu.vue @@ -0,0 +1,35 @@ + diff --git a/app/components/Settings/BottomScreen/Menus/Menus.vue b/app/components/Settings/BottomScreen/Menus/Menus.vue new file mode 100644 index 0000000..e0a2140 --- /dev/null +++ b/app/components/Settings/BottomScreen/Menus/Menus.vue @@ -0,0 +1,110 @@ + + + diff --git a/app/components/Settings/BottomScreen/Menus/OptionsMenu.vue b/app/components/Settings/BottomScreen/Menus/OptionsMenu.vue new file mode 100644 index 0000000..f336ac6 --- /dev/null +++ b/app/components/Settings/BottomScreen/Menus/OptionsMenu.vue @@ -0,0 +1,35 @@ + diff --git a/app/components/Settings/BottomScreen/Menus/TouchScreenMenu.vue b/app/components/Settings/BottomScreen/Menus/TouchScreenMenu.vue new file mode 100644 index 0000000..c57ce6c --- /dev/null +++ b/app/components/Settings/BottomScreen/Menus/TouchScreenMenu.vue @@ -0,0 +1,18 @@ + diff --git a/app/components/Settings/BottomScreen/Menus/UserMenu.vue b/app/components/Settings/BottomScreen/Menus/UserMenu.vue new file mode 100644 index 0000000..dc84431 --- /dev/null +++ b/app/components/Settings/BottomScreen/Menus/UserMenu.vue @@ -0,0 +1,39 @@ + diff --git a/app/components/Settings/TopScreen/Calendar.vue b/app/components/Settings/TopScreen/Calendar.vue index 9cc65bc..f77bdca 100644 --- a/app/components/Settings/TopScreen/Calendar.vue +++ b/app/components/Settings/TopScreen/Calendar.vue @@ -13,6 +13,8 @@ useRender((ctx) => { ctx.fillStyle = "black"; ctx.font = "7px NDS7"; + ctx.translate(0, -16); + const CALENDAR_COLS = 7; const CALENDAR_ROWS = 5; const CALENDAR_LEFT = 128; diff --git a/app/components/Settings/TopScreen/Clock.vue b/app/components/Settings/TopScreen/Clock.vue index 244443b..e6542e9 100644 --- a/app/components/Settings/TopScreen/Clock.vue +++ b/app/components/Settings/TopScreen/Clock.vue @@ -52,6 +52,8 @@ function drawLine( } useRender((ctx) => { + ctx.translate(0, -16); + ctx.drawImage(clockImage!, 13, 45); const now = new Date(); diff --git a/app/components/Settings/TopScreen/Notifications.vue b/app/components/Settings/TopScreen/Notifications.vue new file mode 100644 index 0000000..392305a --- /dev/null +++ b/app/components/Settings/TopScreen/Notifications.vue @@ -0,0 +1,13 @@ + diff --git a/app/components/Settings/TopScreen/TopScreen.vue b/app/components/Settings/TopScreen/TopScreen.vue index 111d4a9..85f4874 100644 --- a/app/components/Settings/TopScreen/TopScreen.vue +++ b/app/components/Settings/TopScreen/TopScreen.vue @@ -3,6 +3,7 @@ import Background from "./Background.vue"; import Calendar from "./Calendar.vue"; import Clock from "./Clock.vue"; import StatusBar from "./StatusBar.vue"; +import Notifications from "./Notifications.vue"; diff --git a/app/stores/settings.ts b/app/stores/settings.ts index f3f9564..ba53a9e 100644 --- a/app/stores/settings.ts +++ b/app/stores/settings.ts @@ -1,5 +1,3 @@ export const useSettingsStore = defineStore("settings", { state: () => ({}), - - actions: {}, });