From e6c3296f9e8ca2389c35fa901ca507a93fb43e4a Mon Sep 17 00:00:00 2001 From: kurokeita Date: Wed, 16 Apr 2025 23:01:29 +0700 Subject: [PATCH 1/2] [Win] Implement Simple Telex 2 --- .../win32/OpenKey/OpenKey/OpenKeyManager.cpp | 3 ++- .../win32/OpenKey/OpenKey/SystemTrayHelper.cpp | 17 ++++++++++++----- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/Sources/OpenKey/win32/OpenKey/OpenKey/OpenKeyManager.cpp b/Sources/OpenKey/win32/OpenKey/OpenKey/OpenKeyManager.cpp index ea1181b..c178b9c 100644 --- a/Sources/OpenKey/win32/OpenKey/OpenKey/OpenKeyManager.cpp +++ b/Sources/OpenKey/win32/OpenKey/OpenKey/OpenKeyManager.cpp @@ -17,7 +17,8 @@ redistribute your new version, it MUST be open source. static vector _inputType = { _T("Telex"), _T("VNI"), - _T("Simple Telex"), + _T("Simple Telex 1"), + _T("Simple Telex 2"), }; static vector _tableCode = { diff --git a/Sources/OpenKey/win32/OpenKey/OpenKey/SystemTrayHelper.cpp b/Sources/OpenKey/win32/OpenKey/OpenKey/SystemTrayHelper.cpp index 55d786e..d600c14 100644 --- a/Sources/OpenKey/win32/OpenKey/OpenKey/SystemTrayHelper.cpp +++ b/Sources/OpenKey/win32/OpenKey/OpenKey/SystemTrayHelper.cpp @@ -24,7 +24,8 @@ redistribute your new version, it MUST be open source. #define POPUP_TELEX 910 #define POPUP_VNI 911 -#define POPUP_SIMPLE_TELEX 912 +#define POPUP_SIMPLE_TELEX_1 912 +#define POPUP_SIMPLE_TELEX_2 913 #define POPUP_UNICODE 930 #define POPUP_TCVN3 931 @@ -59,7 +60,8 @@ map menuData = { {POPUP_USE_MACRO, _T("Bật gõ tắt")}, {POPUP_TELEX, _T("Kiểu gõ Telex")}, {POPUP_VNI, _T("Kiểu gõ VNI")}, - {POPUP_SIMPLE_TELEX, _T("Kiểu gõ Simple Telex")}, + {POPUP_SIMPLE_TELEX_1, _T("Kiểu gõ Simple Telex 1")}, + {POPUP_SIMPLE_TELEX_2, _T("Kiểu gõ Simple Telex 2")}, {POPUP_UNICODE, _T("Unicode dựng sẵn")}, {POPUP_TCVN3, _T("TCVN3 (ABC)")}, {POPUP_VNI_WINDOWS, _T("VNI Windows")}, @@ -131,9 +133,12 @@ LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) case POPUP_VNI: AppDelegate::getInstance()->onInputType(1); break; - case POPUP_SIMPLE_TELEX: + case POPUP_SIMPLE_TELEX_1: AppDelegate::getInstance()->onInputType(2); break; + case POPUP_SIMPLE_TELEX_2: + AppDelegate::getInstance()->onInputType(3); + break; case POPUP_UNICODE: AppDelegate::getInstance()->onTableCode(0); break; @@ -215,7 +220,8 @@ void SystemTrayHelper::createPopupMenu() { //menuInputType = CreatePopupMenu(); AppendMenu(popupMenu, MF_CHECKED, POPUP_TELEX, menuData[POPUP_TELEX]); AppendMenu(popupMenu, MF_CHECKED, POPUP_VNI, menuData[POPUP_VNI]); - AppendMenu(popupMenu, MF_CHECKED, POPUP_SIMPLE_TELEX, menuData[POPUP_SIMPLE_TELEX]); + AppendMenu(popupMenu, MF_CHECKED, POPUP_SIMPLE_TELEX_1, menuData[POPUP_SIMPLE_TELEX_1]); + AppendMenu(popupMenu, MF_CHECKED, POPUP_SIMPLE_TELEX_2, menuData[POPUP_SIMPLE_TELEX_2]); //AppendMenu(popupMenu, MF_POPUP, (UINT_PTR)menuInputType, _T("Kiểu gõ")); AppendMenu(popupMenu, MF_SEPARATOR, 0, 0); @@ -262,7 +268,8 @@ void SystemTrayHelper::updateData() { MODIFY_MENU(popupMenu, POPUP_USE_MACRO, vUseMacro); MODIFY_MENU(popupMenu, POPUP_TELEX, vInputType == 0); MODIFY_MENU(popupMenu, POPUP_VNI, vInputType == 1); - MODIFY_MENU(popupMenu, POPUP_SIMPLE_TELEX, vInputType == 2); + MODIFY_MENU(popupMenu, POPUP_SIMPLE_TELEX_1, vInputType == 2); + MODIFY_MENU(popupMenu, POPUP_SIMPLE_TELEX_2, vInputType == 3); MODIFY_MENU(popupMenu, POPUP_UNICODE, vCodeTable == 0); MODIFY_MENU(popupMenu, POPUP_TCVN3, vCodeTable == 1); MODIFY_MENU(popupMenu, POPUP_VNI_WINDOWS, vCodeTable == 2); From 4564741117fdbb966951275d7add5d46c866ddfd Mon Sep 17 00:00:00 2001 From: kurokeita Date: Wed, 3 Sep 2025 09:39:32 +0700 Subject: [PATCH 2/2] update modern icon for Windows --- .../win32/OpenKey/OpenKey/StatusEng10.ico | Bin 110646 -> 67646 bytes .../win32/OpenKey/OpenKey/StatusViet10.ico | Bin 110646 -> 67646 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/Sources/OpenKey/win32/OpenKey/OpenKey/StatusEng10.ico b/Sources/OpenKey/win32/OpenKey/OpenKey/StatusEng10.ico index f4e8edcd1a1292ff453bcee58d1c4139284597a7..8faf05b5ba119fc67c84eebf6367f3bee78b61ee 100644 GIT binary patch literal 67646 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%0AeyxAr2XxPMwFUe$I&>a3 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 F{y(a6_;>&S diff --git a/Sources/OpenKey/win32/OpenKey/OpenKey/StatusViet10.ico b/Sources/OpenKey/win32/OpenKey/OpenKey/StatusViet10.ico index b651c0aee954d1d5e6f6b0c1ddc5da5868d8b190..bf9ebc03c43520ffa572a0fffd153a0015513c7d 100644 GIT binary patch literal 67646 zcmeI2&6T4#6ou(CiK1^E8JR4~h5lT_L&qOp^S-e`T5A&n)@%&yVEaBuReZ!XtTDKbPCuXm0FJBVYuK zfDtePM!*Od0V7}pjDQg^0!F|H7y%<-1dM=c} zU2|MVTti!hiMAFl1m}4p8sc(8MgL@;tb=r()h|11=qCF)qsjVNEt}@Ns)t_k-7?z= z&TI|LU>QKCoGHBLOV)s$1re_S=#$|RokF!k#N{tOHHdx)CA{Z%vv|-E0)ReiPot2x zF2eE`pArNgjKh_e|gP~drPLJW%y4Na%`JO8bvv|g+b6BG^+(py4I^t_q? z!(u~1<9s5WZ-tfLA?acT8M$z+3Rg<>=|;q{xKOQLM7hozfe43t zqSMvlgc+$|Xv93LPntITGS7fY{aVi>K-Ne;_lr)rXPyCar`SpOUWh{F6nMdJ_OD4uO(fYkQSRcdd2MgW==Bwf@^btBG6ClLDdvl#a5 zaRSidNYKM~@#+4I3CuH~c)U`3qfY>utbE}J_osdgwc&e1@UJe8>eu?`2>|9!fs*>_ zUN(qvBE=Cmt9!9*>}vvG=!klVtIfTr7-yaVyL+*0>^=d}N(3V|cRynNZ-LC1U&i|? zpCyk&cjmV!%V^N|h62WPR_|4h>QfjNDfDV(J)TGS^+Deytx)02<_E?cLDm zh|4?!q>OZEY@62*0JDRDBep?%zw$?1<{6NyU+cdn0QMPCcXc&r@7L_`67vi=s$c8B zCII$@ibm?)*HODO5SM)hWZej6-68t-nox%v_ex)7pv0zYxegh z`aiYzYj${_c?QVZPSv;dT>@aU$Hi=}8{u&a$*|XC{&*Iz{{}dxOyOH!-`e|?I(*4@ z%W8Y|YyFh~;1(>vo}X{+{hA&8G0y-=FH_&vHw3`sC}4=qvDhM~4KXiqRj_h<1wY`C zk@<={%HFSh;g5L+IQ46N{dc}y0R1U@zv_eh*k=GWKh1NFJ=i+3{*KK7`LWM{ik;&e z{ekP6ti8A^L$H8f<{5Abk>lKaf+>4n75%di90KIJ36bYqe1d0+i}_8#-T4@*e)wkZ zRr^r6&cQEu<{}um6(MU!u8y2<8ZzIQeS_nk%u?KCA!~;J9XaQq>op{c@Awv-$Q;Gp z@jE#Uc^5HOc`PhkXX@#>hLC z7~sd=Lq+@1_R#?OyI8atBMOm4`Xy@snX z^PegfxNXR~i@VYGe&vRks{nPR>i<=HFslM^8+GqjZBPgM49L~@EB4@(2GCwyW>fG& zT=p3-`aU)$H}J|uEOMKS8R`ge228S+$5;p8btG#q?k3s$l^5c(&wx^WzfuoQnTQpj zWm9rOJ?t~UO<7N<*x*zK(0;PLUpb+s5NE(z{l7{NPV9YBmeZtrziJbpwn}}!LJvM` z5i3B;V&H?i*k`~AKGPU#W8{EZssP&W8M!fhptcZaK+ec51|Q%f>zUo6;)CMY=i4C$ z?Y^4>xa4f%TYpjQkI0FA21uFNcll5KK5E!YA>Gp>;ci&`6yR#DZZ({te@=BxKqqWp5NK;q|S7T zyhF!CU3*;5wmfuxO#dkInKdBVubFwoxQ@6UX~HCrsg9w!Anz5fp}z-&%WA0a zInP6#J6uDWu$w&-)Ud`SHA_7Xmo(8^YDzz#<7JZc?M{Nwu5Ty)`xy6al=IQvUSFuk zJsahA0Mz#Tbw0}P0IBV_-neH2PX}0Sd%*g(llk5_?9vD3k{=!W@X*rnJW;MTqXuBX;7H5n!Hs=Er%+6ow{ zBegoIdVXWqMSN-tUi{xt7vPO8keYCP8zXP$^L4zjuYmiu;60xkFXFMWuYi#$#yj@5 zwp+j$hkXSMoP8U^7;k}MTF9dckK({q#0=4TpX*7MC(AVUD2Msm2j}@ z#4%pmD7>~6uxG!^dMqah;<=MBlnEs&- z6+r9$(r&*1cjer2Xt^JnFYI*Ht*yJ&(KU7cY4FL4Zu4wE%-;>)b6Gz|ftL?P(w|BD EAGM=F+yDRo literal 110646 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 x99HQb?d7vlJ$!zuJ4qe`L+nbA0P#U)zOZF|l5C