From 6c3fb29d53d9e6abc25f0e2495fec411968220e7 Mon Sep 17 00:00:00 2001 From: Vicki Pfau Date: Sun, 2 May 2021 16:37:00 -0700 Subject: [PATCH] mGUI: Add arrow keys to symbol and add unicode codepoints --- include/mgba-util/gui/font.h | 4 ++++ res/font-new.png | Bin 15982 -> 16537 bytes res/icons.png | Bin 541 -> 619 bytes res/icons2x.png | Bin 1198 -> 1421 bytes src/util/gui/font-metrics.c | 4 ++++ src/util/gui/font.c | 35 +++++++++++++++++++++++++++++------ 6 files changed, 37 insertions(+), 6 deletions(-) diff --git a/include/mgba-util/gui/font.h b/include/mgba-util/gui/font.h index 403940954..1751898c3 100644 --- a/include/mgba-util/gui/font.h +++ b/include/mgba-util/gui/font.h @@ -55,6 +55,10 @@ enum GUIIcon { GUI_ICON_BUTTON_HOME, GUI_ICON_STATUS_FAST_FORWARD, GUI_ICON_STATUS_MUTE, + GUI_ICON_LEFT, + GUI_ICON_UP, + GUI_ICON_RIGHT, + GUI_ICON_DOWN, GUI_ICON_MAX, }; diff --git a/res/font-new.png b/res/font-new.png index 66389c44ba175afffcab086cc531a878c51c08d4..ea86ae72b723730e95c0cb7d00e4a6b1e446f203 100644 GIT binary patch literal 16537 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 literal 15982 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 delta 467 zcmV;^0WALO1f2wsRDS`pNkl7Uly2!dy*~Anrs}Q z6kJM#qy&!##k+&81`mpN2V3QTD{sNC$lfCxC6y;tsYDYz6MYny%fgB%`Ry!NIcz*OuMu-FhN3}gY5HUG8% zxL40Wdm5Z?*ehBBb^{aM_=9^rU>yO@XKvb%nSi&pQybS%*H#;sv4?}s={ez*iO(EY zTi3Do2O!TSjDG>uCM!dpU8v_kfelF0fwDcY?N_ZeJtX*~=yZ8|N8gIh1=zwk8m%#J zdxX8-%L$=q_W(#vI1?a?;lQPFD+idQ=nVmzG-J`41@gn|qP=Ps2rr;f2iP(0?FR)H za9s)7%CD*f<$#MLLI?>7ig$f(5%T0#omvHa{`#qFe@wCRtKT#fTk1oW0?<+>M*fxy zRp~-+0nE*3A&_hPd=R^~{|^+vA+UTBTzwi`z7Q(j^*KW3=MRdb3rxv^?8X29002ov JPDHLkV1jF{)UW^m diff --git a/res/icons2x.png b/res/icons2x.png index 31f4945e8196b3c977049fce5dd1aa6fc5f82b07..036d592572ee826273a89255ac1fe72f57425d38 100644 GIT binary patch delta 1354 zcmV-Q1-1IF35^SoRDT5{Nkl0YgGH`x!ZxW+fR?3{x+~*lDi!^yFCB^0KlZ!lN@Ub)!)0Kq{3(J?1!2w-i@pJ~?!Kpuo2h!4P5$T=YZ zp%XQN3AjW6n+DoeB=B@D5`d_Hv^89HvT!{f0sPqR0uZJG$Chg(@K_uINR@CbM+ zUl9P|e=Z&YND2@HK=_}G?^l2j|5^Zq|JnHJ0BQoD6g&gIN}!qmSPYs0XDL`q04xX3 zfNL?RRsa#753c~KS`Px44exUBE&+4z5j+yN0C)h*%@rF$odImNP z+b@T1Tz`Ic@NulTnQsSbAC z1r2XyT?m1f5Fj8Xdw+9x$;XBcb#j(`&Q-80acr85p3h^Ae5ww!CWp9rYS^#;7 z8aL#sQ0_CA0J0R+pGc^epxX}&6juN#&+(~D_*sW;hS)lFb9;GMa&-L&l1|ZBW>D>m zv+3rTxB|$pT#1hsf0qD?_zB~uGYgHn0{Sz>umY%ObwUa_6rjgnoFCc(sN&c8_Eb@{ z=YPqm)0*{C6dY0jc8a#2u?_(=@o(N4X=V{l0i2q{EYFYttXcMck4oCn#~0#Xe2dtw zOg81?n!;rdkGnAxRA6Y#vNW9lNIt| z0hp!WzNOGh%pNIl{PT(U7OS!~_sW(;tM-bb&eJxZ6~JpCEsqL794K=@!1%x2a({%s zO~Bc)RNqA35Wwq70d$TBj{mEiDv53SM}g7yqeuOJeG=9c3<{vz5IO!Y#r2KX%8y?X z!0Rdj^joC)AxwiJ;4=eUct-G5+yWSwXTaJJe*gdg004+U>in;Egmoy3vSa;VA@cH< zQVOF=wkq|)jok~DA}^qKi|MSBtba?szeCbX<4n9u44BlB1Pur%!%%JDW<`G3*6XMo--pfD}@ zcGz}nY$1S60mOeL_7LyMK36~~fJ`B`o--OgP9RNN2oqe!hkS7Bmjlk~q z<~eWf3UkH3;s})OU7u(6X`ed#{5_WK^)brXo9BT5#DRJsfPV+}X`ed#{5_WK^)Xs@ z9)JK400KY&2tXSn1b_e#00JoYGYJAf00;m9AOLNQ5C8($UI3(m*A;->#hB6d=6Nyz z*e}QxJ~g!G>#p|Z89jj3?aiZyzYFY_Wb^=9w+8?K05FO^$>U~>?_?x>SA1h6*hYg!)x$S2_iaRS;BIS&LN zbRtJ!fGz^KG?2C;f!XOK08s(Q)zIr=p+7AG__e(SAWQ{Z$u$y~mIeVFkpL0}+%Edr1fAP4~W&rI7}fZ+dF0Jwi{+VTL!06;3(0&SVVVgO(<$O4V2;8Fl!IoJYC zi$Sph@VGr%1rX(W5P&sWmxFH!sI^BhCCvih0brXR1tIbj5KN%fj28V$1TarU(XhTb z^rHLK!GFim{HFR9_X7X`fCO`ckrd`fYB#6e~+%GNEUDaB5-%KXAO#sKed$`wKK`n0VMK1*39odwB zt|8bK?)?k#8c@IpLKh|O@l{dyoi+);3qdI0ZGR3w#vft8_c~-F#MLPq+rzIV0mP4> zj&}ztp+^e-Dfz!i0D=Eez{|w5Iw1r&1(f|S&JT3~ME*ws?@|+@^=EX0022SBfLEy! zfHq6NH}*){DW6~PKMHu0@d8NwPs!Me^mqi^ju#YA5dpj;q&w<)k5Hh;B(RGB+-oKR zcz>1l*Fa|@zT;^TMoKhwze~u{o(S@O_h|^I7l7OfAEz}HT(;L!!3bb5$}e193_<|b zano;U1{OXP(pNqCJ-*nC04BrDzt5j)+~~)I=pzDH13yHIZRL*wwe7A)dh{+I0c;MBfX!hNxH-HAZVri{%^?-MIV=Wk4$Hxt vLqW*qP!hH|6oqaMW#OB{#t;AifbIAJ+fXfnqvQz500000NkvXXu0mjf$721Y diff --git a/src/util/gui/font-metrics.c b/src/util/gui/font-metrics.c index 1a7b3f539..c3f359b25 100644 --- a/src/util/gui/font-metrics.c +++ b/src/util/gui/font-metrics.c @@ -152,6 +152,10 @@ const struct GUIIconMetric defaultIconMetrics[] = { [GUI_ICON_BUTTON_TRIANGLE] = { 34, 34, 12, 11 }, [GUI_ICON_BUTTON_SQUARE] = { 50, 34, 12, 11 }, [GUI_ICON_BUTTON_HOME] = { 66, 34, 12, 11 }, + [GUI_ICON_LEFT] = { 82, 34, 12, 12 }, + [GUI_ICON_UP] = { 98, 34, 12, 12 }, + [GUI_ICON_RIGHT] = { 114, 34, 12, 12 }, + [GUI_ICON_DOWN] = { 130, 34, 12, 12 }, [GUI_ICON_STATUS_FAST_FORWARD] = { 2, 50, 12, 12 }, [GUI_ICON_STATUS_MUTE] = { 17, 50, 14, 12 }, }; diff --git a/src/util/gui/font.c b/src/util/gui/font.c index ab25419d3..7babc3b5b 100644 --- a/src/util/gui/font.c +++ b/src/util/gui/font.c @@ -40,17 +40,40 @@ void GUIFontPrint(struct GUIFont* font, int x, int y, enum GUIAlignment align, u size_t len = strlen(text); while (len) { uint32_t c = utf8Char(&text, &len); - if (c == '\1') { + bool icon = false; + switch (c) { + case 1: c = utf8Char(&text, &len); if (c < GUI_ICON_MAX) { - GUIFontDrawIcon(font, x, y, (align & GUI_ALIGN_HCENTER) | GUI_ALIGN_BOTTOM, GUI_ORIENT_0, color, c); - unsigned w; - GUIFontIconMetrics(font, c, &w, 0); - x += w; + icon = true; } - } else { + break; + case 0x2190: + case 0x2191: + case 0x2192: + case 0x2193: + c = GUI_ICON_LEFT + c - 0x2190; + icon = true; + break; + case 0x23E9: + c = GUI_ICON_STATUS_FAST_FORWARD; + icon = true; + break; + case 0x1F507: + c = GUI_ICON_STATUS_MUTE; + icon = true; + break; + default: GUIFontDrawGlyph(font, x, y, color, c); x += GUIFontGlyphWidth(font, c); + break; + } + + if (icon) { + GUIFontDrawIcon(font, x, y, GUI_ALIGN_BOTTOM, GUI_ORIENT_0, color, c); + unsigned w; + GUIFontIconMetrics(font, c, &w, 0); + x += w; } } }