From 3ede1a0b53e8e52167f247536edaf2dc24f95399 Mon Sep 17 00:00:00 2001 From: Arjun Balgovind <32061677+arjunbalgovind@users.noreply.github.com> Date: Mon, 24 Aug 2020 17:51:48 -0700 Subject: [PATCH] [Localization] Migrate resources to resx for PowerRename (#6112) * Added localization code to pipeline and created one LocProject json for Settings * Fixed typo * Reordered nuget source * Moved nuget install to restore step * Added FZ.rc file to LocProj * Added FZ resx file and modified rc file * Fixed file names * Changed to check folder for LocProject files * Updated folder * Changed directory * Changed to src directory * Changed language set and name format, removed rc file localization * Added all projects with resx/resw files * Added newline to end of file * Removed nuget source as it is not used * Updated comments * Updated keyboard manager to use resx file * Tweaked resources.resx and added it to project files * Added comments and added in string table to resx script * Remove change from bad merge * Fix syntax error in convert stringtable * Changed file type to None * Migrated color picker's resources * Migrated resources for Microsoft.Launcher * Migrated resources for fancy zones * Revert fancyzones changes * Migrated resources for ImageResizer and modified script to add language specific code * Added try catch and checks for modification to avoid unnecessary file creation * Changed tab insertion to 4 spaces to avoid mixed file types in rc file * Migrated resources for power preview project * Added LocProject.json file for 5 projects * added resgen exception check * Moved non-localizable strings out of resx for powerpreview * Move out hardcoded strings from dialog box and set them at runtime from string table * Migrated resources for powerrename * Added locproj * Added missing ImageBase extern declaration * Added build script in UWP UI project since PowerRenameExt is not referenced * Resolved merge conflicts --- .../powerrename/UWPui/PowerRenameUWPUI.rc | 4 +- .../UWPui/PowerRenameUWPUI.vcxproj | 3 + src/modules/powerrename/dll/LocProject.json | 14 ++ .../powerrename/dll/PowerRenameExt.base.rc | Bin 0 -> 3340 bytes .../powerrename/dll/PowerRenameExt.cpp | 2 +- src/modules/powerrename/dll/PowerRenameExt.rc | Bin 6716 -> 0 bytes .../powerrename/dll/PowerRenameExt.vcxproj | 12 +- .../dll/PowerRenameExt.vcxproj.filters | 30 ++- src/modules/powerrename/dll/Resources.resx | 144 +++++++++++++ src/modules/powerrename/dll/dllmain.cpp | 2 +- src/modules/powerrename/dll/resource.base.h | 15 ++ src/modules/powerrename/dll/resource.h | 36 ---- src/modules/powerrename/ui/LocProject.json | 14 ++ .../powerrename/ui/PowerRenameUI.base.rc | Bin 0 -> 6886 bytes src/modules/powerrename/ui/PowerRenameUI.cpp | 46 +++- src/modules/powerrename/ui/PowerRenameUI.h | 1 + src/modules/powerrename/ui/PowerRenameUI.rc | Bin 10874 -> 0 bytes .../powerrename/ui/PowerRenameUI.vcxproj | 12 +- .../ui/PowerRenameUI.vcxproj.filters | 51 ++++- src/modules/powerrename/ui/Resources.resx | 202 ++++++++++++++++++ src/modules/powerrename/ui/resource.base.h | 33 +++ src/modules/powerrename/ui/resource.h | 51 ----- tools/build/convert-resx-to-rc.ps1 | 12 +- 23 files changed, 562 insertions(+), 122 deletions(-) create mode 100644 src/modules/powerrename/dll/LocProject.json create mode 100644 src/modules/powerrename/dll/PowerRenameExt.base.rc delete mode 100644 src/modules/powerrename/dll/PowerRenameExt.rc create mode 100644 src/modules/powerrename/dll/Resources.resx create mode 100644 src/modules/powerrename/dll/resource.base.h delete mode 100644 src/modules/powerrename/dll/resource.h create mode 100644 src/modules/powerrename/ui/LocProject.json create mode 100644 src/modules/powerrename/ui/PowerRenameUI.base.rc delete mode 100644 src/modules/powerrename/ui/PowerRenameUI.rc create mode 100644 src/modules/powerrename/ui/Resources.resx create mode 100644 src/modules/powerrename/ui/resource.base.h delete mode 100644 src/modules/powerrename/ui/resource.h diff --git a/src/modules/powerrename/UWPui/PowerRenameUWPUI.rc b/src/modules/powerrename/UWPui/PowerRenameUWPUI.rc index 58c53031ad0a..46b3bf12321a 100644 --- a/src/modules/powerrename/UWPui/PowerRenameUWPUI.rc +++ b/src/modules/powerrename/UWPui/PowerRenameUWPUI.rc @@ -3,9 +3,9 @@ #include "../../../common/version.h" // We need both DLL and UI resource files for UWP UI. -#include "../dll/PowerRenameExt.rc" +#include "../dll/Generated Files/PowerRenameExt.rc" #undef IDC_STATIC -#include "../ui/PowerRenameUI.rc" +#include "../ui/Generated Files/PowerRenameUI.rc" 2 VERSIONINFO FILEVERSION FILE_VERSION diff --git a/src/modules/powerrename/UWPui/PowerRenameUWPUI.vcxproj b/src/modules/powerrename/UWPui/PowerRenameUWPUI.vcxproj index 9d763c9604f5..879ef77530d0 100644 --- a/src/modules/powerrename/UWPui/PowerRenameUWPUI.vcxproj +++ b/src/modules/powerrename/UWPui/PowerRenameUWPUI.vcxproj @@ -11,6 +11,9 @@ x64 + + + 16.0 {0485F45C-EA7A-4BB5-804B-3E8D14699387} diff --git a/src/modules/powerrename/dll/LocProject.json b/src/modules/powerrename/dll/LocProject.json new file mode 100644 index 000000000000..210939384979 --- /dev/null +++ b/src/modules/powerrename/dll/LocProject.json @@ -0,0 +1,14 @@ +{ + "Projects": [ + { + "LanguageSet": "Azure_Languages", + "LocItems": [ + { + "SourceFile": "src\\modules\\powerrename\\dll\\Resources.resx", + "CopyOption": "LangIDOnName", + "OutputPath": "src\\modules\\powerrename\\dll" + } + ] + } + ] +} diff --git a/src/modules/powerrename/dll/PowerRenameExt.base.rc b/src/modules/powerrename/dll/PowerRenameExt.base.rc new file mode 100644 index 0000000000000000000000000000000000000000..9d9a78e5ded3ddfc4bc0d128b4f81bbca43f52d9 GIT binary patch literal 3340 zcmdUx+fEu$6o%JzlfJ_QZfephT5sAkO+XGcB0~VNUJ(SeqzZ;XZTs+TzkhGWVMer- z^rB`mvrlWU!@mx*e*Mhb*d{ix3%jEBvOVi$&V$V9s{66bDw2yCz75Pu2d9D2-&d}ZW07>}`h#El7PP8V5~+*`#h zIbG&juw4*($GdB%d~?WB9tG$rTq;i91@a=YH?UXG2vdJ+!(Kbe3FpdFUnLTn5|kTI z47l5Oc{{?2Wg8Q%9@9Cd>JoExG!ynYkWpp0g7d__gJqx9h<)j_2XcpasmT6`^J|fH zWu@%Z++&Q(@QkoP*k7T&uRLB#>}?;JZKSsFNfW>OtX*a4V~AuA=F@jX1$aS|Jg z{E2yI$24w=nmJa@82iLg8aY*(4oI~ag|>3yso2%we(re7M^|`9=$#V<^CkZ@@r>}Q z*(W4QPUs~6J!;{Cud+gx#6Ht1iG^?>MV5JsV!u7zvL+H0=hsBU9Dd7k(lvG++|t}v z#X?rbQzN2+&gE1V+}}ypoh~-c?vP!l;-sUm12<)CgunWkd{S-kl|?zcP2DZ<{ELbd z^Lo4*C0HagMPq*P$5NcB4=R%5%Dp47RHpZcunN2SV>HMaRh%~8Ln?d7y6q5uPW?#@ zJ7ueUrCKq>>N6Mnm(1p5vT#tH_{>+CwdX3c{^tRH3!u$*e?n3ictnNea&MVi^p^hK zbL#B!R0DMuBM@3QHezhnjgk0%fG5-`zahJ(;H#=QwjYeA%zURL+T}k-hsagV`@iGr zUSyxxR(}*OddDt4uh7BtxF_$cN2ycWRpIAU{K(!rU-#`RvNx&55$h&8-J->en3?id kh~Vct`Wv(yan@U+X|a=3a^ESX^U`-Jf3|pCRO4v<4LZ-HOaK4? literal 0 HcmV?d00001 diff --git a/src/modules/powerrename/dll/PowerRenameExt.cpp b/src/modules/powerrename/dll/PowerRenameExt.cpp index 718532b73818..fae0f38f86c2 100644 --- a/src/modules/powerrename/dll/PowerRenameExt.cpp +++ b/src/modules/powerrename/dll/PowerRenameExt.cpp @@ -8,7 +8,7 @@ #include #include #include -#include "resource.h" +#include "Generated Files/resource.h" extern HINSTANCE g_hInst; diff --git a/src/modules/powerrename/dll/PowerRenameExt.rc b/src/modules/powerrename/dll/PowerRenameExt.rc deleted file mode 100644 index 2ed4706a7a99c7445871dcdbaf72e19bec332c8e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6716 zcmdU!Yik=v6o${|LjS{7hEmfucH(?#DFt6-#rPtli=99~$d;^{%963<)Per?w$D39 zGkC8``7wtZ#|^W`Bjgo{f2$*em;+!q@zWua>zq&f*;*5vx7uc+e4~aPP25baER3B zM{j`P5MSt*&fT^r+eTvN+{c4@fqxdoI`qXwZ3mQF+%E&(2lQRiyJK&199s4P#HwM| zVHke^59boKZ=%y4-|{2hK)Vf(V}7E21`Wxw2en$@skdZy?Lo7Sy@YWEIi`5NVsQY* zw`ksH#t1aWvv^A96;VsSW~px5TM+t%-&?!lUV)e5C_zr)QVslu@S6~~iT%JBVd}Fs z?WZtu#COH1=ZAF69wRpyan0Orh}%9|WOYoXS|)QGb%D>FAepeQfQ&N3J(NfG87#ZJ z_34*P`yh9Um3Ha>5bV0kd$o{vG4+V?0W>FQAnfmv-ZPJLiPm<{Y{IpHP0q2qM{SX& z%em$A!aSFJ#CNbzD{wrU#ZRO?-{x_X*G$psfwqeu<&jgSX@OLOR%k0GUW(lb)CYmK zY;=!xgx&xzm}cyAj%9>b&ECOLeCmPom!npn(N$DPlV~%&rM^&~agk=OQMB93H9Lo+ z{QMD*m_jehC!b?i!7Wd{$QR~$ywoGA$b68Cg2kSE-nl@>hi7D0$vAoMYe7vBJHcMv zxp-1;@ywzaeofxp=K4P}Qlzy!8>LvJPx8i%*@`7UQw6k3j4SrqV5vy&;9*sIwPKtR zGs-wk?x$q-I`7SZ_}5gQ)X-D9%2vu1J+!_FzJJHllt>m1$`kLoE3)=OX4ZP1V7G*^ z^L3w)6b6o{u*_DKm04Bk^S-9aZi8%~%AyZKtNKR7W<7l*N>@}5w9)aq;zHr8V%N!4ztdf zzZtlya@9)NrmY1(jXgfD2JIta^^qd9HTSa zmPL8=3AOrZ&r+5T^u4&oE#4n~BIx-uj3~JNH;eslQmF zofRc|DIe{1;_f9%B`X!>n?-MnwpvfGi_*n5A+plFjx63~Z=(H99HCafZ2ha4SLNb0 zezCV55q;X_ofC_fjBJE;J63@a*R-uLa%|tTGHE4j1RKPP&v$Nd>~hK-WIN|dYeMZ` zMElDrH<7o+CF^ScUAE^)z@P%Z1P!&u##0)hs#SZ)mC!zgoUJ;{cQjhx$7q>^vliv; z1l)U^xTspw$&G4&E7rQ9{mGL?c%3aS19~0*%exf5ee9k@dyMbOZ<0ndk zKvy$dw);ST@+_TBnJRpf)#ov<&(1S0z^01Uosh@1%XTcZ>zJ|&nb@zP{^%lq7kYQ} zY-Oy_LY~j`)n}(npFpOMh2$?Uv6N~-d8YOqTD4?3tw;N;EH05eX@X3`TR3OYQst}O zEKU)>n}FSb@ky|Y&g4W%NRGG*S=AzrdRnhJn$kz-a2o#*#+75Lyc^?5-rElPxb!*` zh!H84pf8!De`e7t z_bvHt#HU z5@yOC%XITIl_{g5UJ<87BzsWOKH6h>v?Lae@G|W|I-il3zQ zyT8eT$`Hy1vd!ZXp1ue0m0I;p%1gNVxutWhL&x64 + + + 15.0 {B25AC7A5-FB9F-4789-B392-D5C85E948670} @@ -174,13 +177,15 @@ - + + - + + @@ -204,6 +209,9 @@ {0e072714-d127-460b-afad-b4c40b412798} + + + diff --git a/src/modules/powerrename/dll/PowerRenameExt.vcxproj.filters b/src/modules/powerrename/dll/PowerRenameExt.vcxproj.filters index a8b06ef6424f..e5dfb83b56d0 100644 --- a/src/modules/powerrename/dll/PowerRenameExt.vcxproj.filters +++ b/src/modules/powerrename/dll/PowerRenameExt.vcxproj.filters @@ -13,14 +13,14 @@ {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + {1691b4f2-4b67-4188-9cfd-1ac61e78279f} + Header Files - - Header Files - Header Files @@ -30,11 +30,12 @@ Header Files - - - - Resource Files - + + Generated Files + + + Header Files + @@ -53,4 +54,17 @@ + + + Generated Files + + + Resource Files + + + + + Resource Files + + \ No newline at end of file diff --git a/src/modules/powerrename/dll/Resources.resx b/src/modules/powerrename/dll/Resources.resx new file mode 100644 index 000000000000..2193bf5e156f --- /dev/null +++ b/src/modules/powerrename/dll/Resources.resx @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Po&werRename + + + PowerRename + + + A Windows Shell extension for more advanced bulk renaming using search and replace or regular expressions. + + + Restore search, replace and flags values on launch from previous run. + + + Enable autocomplete and autosuggest of recently used inputs for search and replace values. + + + Maximum number of items to show in recently used list for autocomplete dropdown. + + + Show icon on context menu. + + + Only show the PowerRename menu item on the extended context menu (Shift + Right-click). + + \ No newline at end of file diff --git a/src/modules/powerrename/dll/dllmain.cpp b/src/modules/powerrename/dll/dllmain.cpp index 577eef96064c..00069bf0846f 100644 --- a/src/modules/powerrename/dll/dllmain.cpp +++ b/src/modules/powerrename/dll/dllmain.cpp @@ -5,7 +5,7 @@ #include #include #include -#include "resource.h" +#include "Generated Files/resource.h" #include std::atomic g_dwModuleRefCount = 0; diff --git a/src/modules/powerrename/dll/resource.base.h b/src/modules/powerrename/dll/resource.base.h new file mode 100644 index 000000000000..a82d7a33fad6 --- /dev/null +++ b/src/modules/powerrename/dll/resource.base.h @@ -0,0 +1,15 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by PowerRenameExt.rc + +////////////////////////////// +// Non-localizable + +#define FILE_DESCRIPTION "PowerToys PowerRenameExt" +#define INTERNAL_NAME "PowerRenameExt" +#define ORIGINAL_FILENAME "PowerRenameExt.dll" +#define IDI_RENAME 2001 +#define IDS_OVERVIEW_LINK 2002 + +// Non-localizable +////////////////////////////// diff --git a/src/modules/powerrename/dll/resource.h b/src/modules/powerrename/dll/resource.h deleted file mode 100644 index de17c7c45e64..000000000000 --- a/src/modules/powerrename/dll/resource.h +++ /dev/null @@ -1,36 +0,0 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Visual C++ generated include file. -// Used by PowerRenameExt.rc - -////////////////////////////// -// Non-localizable - -#define FILE_DESCRIPTION "PowerToys PowerRenameExt" -#define INTERNAL_NAME "PowerRenameExt" -#define ORIGINAL_FILENAME "PowerRenameExt.dll" - -// Non-localizable -////////////////////////////// - -#define IDS_POWERRENAME 801 -#define IDI_RENAME 132 -#define IDS_POWERRENAME_APP_NAME 2101 -#define IDS_SETTINGS_DESCRIPTION 2102 -#define IDS_OVERVIEW_LINK 2103 -#define IDS_RESTORE_SEARCH 2104 -#define IDS_ENABLE_AUTO 2105 -#define IDS_MAX_ITEMS 2106 -#define IDS_ICON_CONTEXT_MENU 2107 -#define IDS_EXTENDED_MENU_INFO 2108 - -// Next default values for new objects -// - -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 102 -#define _APS_NEXT_COMMAND_VALUE 40001 -#define _APS_NEXT_CONTROL_VALUE 1001 -#define _APS_NEXT_SYMED_VALUE 101 -#endif -#endif diff --git a/src/modules/powerrename/ui/LocProject.json b/src/modules/powerrename/ui/LocProject.json new file mode 100644 index 000000000000..1b7bce6bfd88 --- /dev/null +++ b/src/modules/powerrename/ui/LocProject.json @@ -0,0 +1,14 @@ +{ + "Projects": [ + { + "LanguageSet": "Azure_Languages", + "LocItems": [ + { + "SourceFile": "src\\modules\\powerrename\\ui\\Resources.resx", + "CopyOption": "LangIDOnName", + "OutputPath": "src\\modules\\powerrename\\ui" + } + ] + } + ] +} diff --git a/src/modules/powerrename/ui/PowerRenameUI.base.rc b/src/modules/powerrename/ui/PowerRenameUI.base.rc new file mode 100644 index 0000000000000000000000000000000000000000..182ba42eb2f1c0139ae26c1ef35db433cbccb017 GIT binary patch literal 6886 zcmdU!TTdcc5Xb9zll=}IeOxjQFpm0&fJz3C06OEo7^5<4;w^|fv&nw;-TnXSaO`eC z*HL=orbA!Ot#1FSQ+4?JuQgk<#5#6ir#7}5yVGxE6SW$ZRovgZ97uSK=+PqtEH{?NFN^F-W9ov&%}16 zmsuT;q@^3XlKc~C2R#fW^%vb+lDaNA(MMD575!!{GH-*CD4_q5M$c=MH4mk|Pg=3@ zsNE*Qz}OKnvEQ}UShkLqTXh-EWVO+BexQc+7h7>pk~Ca~?m`PLLe4iw#hEnoO_l{tW+7hO{>k7B1XN5=9x1 zL3ARbfv-eJC8FIs3UBpx;xUUjMvNIx$4)deaSRg!@ux&1Z*^U2)T!PldcsZO-&wwb z|6OSeXus2l!1tZL;RNr7pD-J4h_H9|$F%oK&)~6e+?qzXuKcv)9-e6Q;;W@dKonfu zJKwsZSQ<1mRuqM=6UCTwQAfs`OcZ{bo{+^yiiC!^N2@oAO|dm%CB&FxX|g8GqA4_7 zQ~cal+$EwW_TEYl_o{ug5B^=XvTgW!>^?`DL9}gXe__9As%^)0KUC|V4?R0t{fl}T zccfpoudep4$MOEO{j;yuan4%ev1Pw%4Eq>-v1%MqQ_E8$dYaSIp3uw9t9z_x&j=_< zR}9>NudZfgX$_5NS=U~$Ba8$LqRrX0R;Fl4wXo@WTag^dJ@9=iV7(#heARgL{6YH8 zYW%%@m!_exEpB#2yX#*Oz38$ft;PK>w#O$HuFEEIT(C|}yw@cO-1S9wLo`a-E1_Jm zb=%UjY*pQxZiAY%Fx1#RebqICOrrftK8VRZty0s9O<58t_Czu8QZ@ATGG2n$52t)a zO{7n3Qxd(P8T8N;51*u^1IgFaJTwjZOB%VYh&Rzid}7{qP9y2;d0Y-98>7)&&!s`j zo37U_m#-|1W828v%Q**s@XoKRJKAh1YiSlD!<#2?ZH=Wm33(@ZZ>&vX4_QY`nIGq7O~uC9e&R+~J$=Q0GL@Qk z&$MPB|D%WgZ2No`$X-=eB}KMf)jecUwB&OM*4mMrWTktG*5u&ilCh#q^VlF&^e0x| z@Kr0?)5+A;U0Rm@j_+ud^Z06Jj1G3)CP{ zhA0mw&7&VW9p4qQsIHqHPl=eEc<{Z5*5Y%G*^?7kZI1 z);-x(;`qMnV^4^mok7&gV>`|X75?n_a6T5t#3yky#PQA?1w1G}E5%p(mi;#&t{TpS IpYz|vKbBKLEC2ui literal 0 HcmV?d00001 diff --git a/src/modules/powerrename/ui/PowerRenameUI.cpp b/src/modules/powerrename/ui/PowerRenameUI.cpp index 65bad0d29b4c..8615ec56991b 100644 --- a/src/modules/powerrename/ui/PowerRenameUI.cpp +++ b/src/modules/powerrename/ui/PowerRenameUI.cpp @@ -1,5 +1,5 @@ #include "pch.h" -#include "resource.h" +#include "Generated Files/resource.h" #include "PowerRenameUI.h" #include "dpi_aware.h" #include @@ -9,13 +9,9 @@ #include #include -extern HINSTANCE g_hInst; +extern "C" IMAGE_DOS_HEADER __ImageBase; -int g_rgnMatchModeResIDs[] = { - IDS_ENTIREITEMNAME, - IDS_NAMEONLY, - IDS_EXTENSIONONLY -}; +extern HINSTANCE g_hInst; enum { @@ -599,6 +595,9 @@ INT_PTR CPowerRenameUI::_DlgProc(UINT uMsg, WPARAM wParam, LPARAM lParam) void CPowerRenameUI::_OnInitDlg() { + // Load text in the dialog controls + _InitDlgText(); + m_hwndLV = GetDlgItem(m_hwnd, IDC_LIST_PREVIEW); m_listview.Init(m_hwndLV); @@ -652,6 +651,39 @@ void CPowerRenameUI::_OnInitDlg() m_initialized = true; } +void UpdateDlgControl(HWND dlg, int item_id, int string_id) +{ + HWND control = GetDlgItem(dlg, item_id); + SetWindowText(control, GET_RESOURCE_STRING(string_id).c_str()); +} + +void CPowerRenameUI::_InitDlgText() +{ + // load strings + SetWindowText(m_hwnd, GET_RESOURCE_STRING(IDS_APP_TITLE).c_str()); + UpdateDlgControl(m_hwnd, IDC_CHECK_USEREGEX, IDS_USE_REGEX); + UpdateDlgControl(m_hwnd, IDC_CHECK_CASESENSITIVE, IDS_CASE_SENSITIVE); + UpdateDlgControl(m_hwnd, IDC_CHECK_MATCHALLOCCURENCES, IDS_MATCH_ALL); + UpdateDlgControl(m_hwnd, IDC_TRANSFORM_UPPERCASE, IDS_MAKE_UPPERCASE); + UpdateDlgControl(m_hwnd, IDC_CHECK_EXCLUDEFILES, IDS_EXCLUDE_FILES); + UpdateDlgControl(m_hwnd, IDC_CHECK_EXCLUDEFOLDERS, IDS_EXCLUDE_FOLDERS); + UpdateDlgControl(m_hwnd, IDC_CHECK_EXCLUDESUBFOLDERS, IDS_EXCLUDE_SUBFOLDER); + UpdateDlgControl(m_hwnd, IDC_TRANSFORM_LOWERCASE, IDS_MAKE_LOWERCASE); + UpdateDlgControl(m_hwnd, IDC_CHECK_ENUMITEMS, IDS_ENUMERATE_ITEMS); + UpdateDlgControl(m_hwnd, IDC_CHECK_NAMEONLY, IDS_ITEM_NAME_ONLY); + UpdateDlgControl(m_hwnd, IDC_CHECK_EXTENSIONONLY, IDS_ITEM_EXTENSION_ONLY); + UpdateDlgControl(m_hwnd, IDC_TRANSFORM_TITLECASE, IDS_MAKE_TITLECASE); + UpdateDlgControl(m_hwnd, ID_RENAME, IDS_RENAME_BUTTON); + UpdateDlgControl(m_hwnd, ID_ABOUT, IDS_HELP_BUTTON); + UpdateDlgControl(m_hwnd, IDCANCEL, IDS_CANCEL_BUTTON); + UpdateDlgControl(m_hwnd, IDC_SEARCH_FOR, IDS_SEARCH_FOR); + UpdateDlgControl(m_hwnd, IDC_REPLACE_WITH, IDS_REPLACE_WITH); + UpdateDlgControl(m_hwnd, IDC_STATUS_MESSAGE, IDS_ITEMS_SELECTED); + UpdateDlgControl(m_hwnd, IDC_OPTIONSGROUP, IDS_OPTIONS); + UpdateDlgControl(m_hwnd, IDC_PREVIEWGROUP, IDS_PREVIEW); + UpdateDlgControl(m_hwnd, IDC_SEARCHREPLACEGROUP, IDS_RENAME_CRITERIA); +} + void CPowerRenameUI::_OnCommand(_In_ WPARAM wParam, _In_ LPARAM lParam) { switch (LOWORD(wParam)) diff --git a/src/modules/powerrename/ui/PowerRenameUI.h b/src/modules/powerrename/ui/PowerRenameUI.h index df46fc6a0ad7..09a97320089e 100644 --- a/src/modules/powerrename/ui/PowerRenameUI.h +++ b/src/modules/powerrename/ui/PowerRenameUI.h @@ -122,6 +122,7 @@ class CPowerRenameUI : void _OnSize(_In_ WPARAM wParam); void _OnGetMinMaxInfo(_In_ LPARAM lParam); void _OnInitDlg(); + void _InitDlgText(); void _OnRename(); void _OnAbout(); void _OnCloseDlg(); diff --git a/src/modules/powerrename/ui/PowerRenameUI.rc b/src/modules/powerrename/ui/PowerRenameUI.rc deleted file mode 100644 index fa2ac454974b11a9c1cd31ff8e62f5b2058978a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10874 zcmdU#Yfl?T6o%(>rT&MlqgIWINPr}Sd;?>^ig7I4B%z9gD7T_I5ZR_lrT+G|?{mf{ zyKCA83_ZP7!!Np$ za28I&g?@dt5A{4&TVGG+UFqME{wI24we#>vV-~~r;X6TjV$Vlvy-;sYqmONDWn%tf z_&ro?G&3LBxKo?Q+UubeI-wi(!e*$4H{l?(Lrtxl`rizVu&?_Ee-v5`0U}~ zUA{YiCShB28K?27sB{@V3jd*~10A};`n~RTVOWkOTxkrY>vAA|RnjfLT{bDZe2$N02p;^emBFXt| zQgJNGe3r~*pbn{i-#vI?1NO{480& z(3{(zj{Ze!GzgCiq<>%(i&R4%lkh{%rW|X<^{^#vingR9$={PzsS5IeB(kB4b^q3t zl+NsGjka|6K(m^f|Ja~5)Y??*o}Sz4NwijMiQ~5QUYCv92@C4$Xxv8Why(RTYxZq$ z&UcxJhUex-F2zT0<;gE<{ekTDy4f;D*Y&?4Ecz9L zFIM#t>uQ-cqNO=4aj=z}R~4o$LBx|ab3Ji)ySAgfTu)chQkQhT7JhBbXAG1aU#p^( zv5Z*ew%OxDd61KlZ%t|Q(x_R{I#8oy{-tMLe^d7}jYl@0i3?diJPlt&f8cHi{(r$qX!2%CZVNBDIn z8{ab@3pKwenu>mXAZ@yo1soV>oQ_bfrX9Z)O|cWmFnmFS7Bq50s||HA6OL}==$Fo( zlx-{0FwS(fTf{j%rX(+Ik(=BSk9c67ZQK&L-MheVit(uJ)$8p%eqJ1z-m4W6?z zvJJZ?=PgMjlJ2sBrJBSunM2x%sFC+X_a(DG$w(?_nN{x5<81b`C7JI{l>_uQjqmYZ z_&In#iRbNg8k@STHRsdnN$f6#9g%;3ilmQYhz%!~Y2O=`^Xc|DmL2KzZ;C5ZToZAL z==9@_v5t`+UN4LL|E1k74R@*EjjyrD&Gj3r_wL^H+p)bX4Zn~)5NCOf(VK)Ix3<^8@k|&n&%%NUg4zn>u7oamsi<)~u-MXTRG>0VericD)`(*r$r(RMXOjfj_dyG+O$;V%;wIw{s2X+(#kt-3!lWB5Q z!cT&Qw0mY4Bkzc#Yc8->4aTw}AEM&t26;&~B`bO5a8hVHg4R=<=Nvf@4Zxe7kyWi& zZa+U9@{1T@_rAhHUSs6kFj#Ab#dKKkIO=zCRE^A>2o_N*wJD;2et4CENnQ&F(VMEl zg@RxT@5pCg=BU`X79t$`Bq|;XCXq8$P^!Yyp48*I_aU0?h(hG5$QnC!uHc)=FnDHVZCh}VnwCiqwV3=> zQ7@+tMVT^LtXEt*g6b=!2MXg%Cn)$V75+>!*GD3d+c{c{fUyv3P>j7A|H4x9Jo z8KF}xg)4ng#Lo)iX-sUT5|=1mg@aUw7V-_DLNPiH&xisuxkaWc8lQnh&ufs+iS?xM z@v)-oWBiGah`wug0s?xPpOwm2`Y(GT<*UZ?g`1pz-JY-Cl4QHDgWGA%0o+{!_`f6> zDjpf5k7CIxKIi>lzJXO!PVvSm=51g^y_yG{;9Jt_ zy5dBt{^NQat)KU%abz-z45&`?B?w+6Q9Q$!AXkb8l1%i;_aA(lL4A+0F_u8)`F4bu zBGEi5yPV&WWqM4O*n4(gF$VdlF-R_PX52TKIIFWNFqp%tv8q0>oXw+@_@x6ou8%S` z&thD+i=IU0X;xG;BHvbavbH$FDgAoIY5p+f#dqgVBKx7Z79)2o@S!3_B7GmhlOHiW zKA*Ggn4c0c&{J&v;Rw+_zP6=jT1CiH*5Aq~oVU}yYCIE(btYuB?5b$bX_R|BX7znF zvT&k1up^@{U+s<2>dfecJQnZHD-K?1;N*YTa*+Mp+7&^IGMz@ z*E5Yk!_Yy#zT#Ued|Asl=I3jivU#q?%<=DtE^~Pjdi9%D;~dVlnXfKlrjYJyu>@DV zIJ|`;Udt@fz>0dK&Sqx64 + + + {0E072714-D127-460B-AFAD-B4C40B412798} Win32Proj @@ -164,8 +167,9 @@ - + + @@ -175,7 +179,8 @@ - + + @@ -183,6 +188,9 @@ + + + diff --git a/src/modules/powerrename/ui/PowerRenameUI.vcxproj.filters b/src/modules/powerrename/ui/PowerRenameUI.vcxproj.filters index 263bb52ebbd7..585144c762ec 100644 --- a/src/modules/powerrename/ui/PowerRenameUI.vcxproj.filters +++ b/src/modules/powerrename/ui/PowerRenameUI.vcxproj.filters @@ -1,19 +1,29 @@  - - + + Source Files + + + Source Files + - - - - + + Generated Files + + + Header Files + + + Header Files + + + Header Files + + Header Files - - - @@ -22,13 +32,32 @@ {dc9de3c4-d79b-45f9-9a5c-671f310928a3} + + {3eee15a8-a99a-423b-8420-a76aa4458c4a} + + + {1bd24b81-b44b-4577-be0b-d492cf0d43fe} + - + + + + + Generated Files + + Resource Files - + + Resource Files + + + + + Resource Files + \ No newline at end of file diff --git a/src/modules/powerrename/ui/Resources.resx b/src/modules/powerrename/ui/Resources.resx new file mode 100644 index 000000000000..c278b9c05617 --- /dev/null +++ b/src/modules/powerrename/ui/Resources.resx @@ -0,0 +1,202 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + PowerRename + + + Renamed + + + Original + + + All items have been filtered out. +Please select from the options above to show items. + + + Item Name and Extension + + + Items Selected: %u | Renaming: %u + + + Use Regular Expressions + + + Case Sensitive + + + Match All Occurrences + + + Make Uppercase + + + Exclude Files + + + Exclude Folders + + + Exclude Subfolder Items + + + Make Lowercase + + + Enumerate Items + + + Item Name Only + + + Item Extension Only + + + Make Titlecase + + + &Rename + + + &Help + + + &Cancel + + + Search for: + + + Replace with: + + + Items Selected: 0 | Renaming: 0 + + + Options + + + Preview + + + Enter the criteria below to rename the items + + \ No newline at end of file diff --git a/src/modules/powerrename/ui/resource.base.h b/src/modules/powerrename/ui/resource.base.h new file mode 100644 index 000000000000..34b94ea1d9bd --- /dev/null +++ b/src/modules/powerrename/ui/resource.base.h @@ -0,0 +1,33 @@ +//{{NO_DEPENDENCIES}} +// Microsoft Visual C++ generated include file. +// Used by PowerRenameUI.rc +// +#define IDC_MYICON 7 +#define ID_RENAME 8 +#define ID_ABOUT 9 +#define IDD_POWERRENAME_DIALOG 3001 +#define IDC_EDIT_SEARCHFOR 3002 +#define IDC_EDIT_REPLACEWITH 3003 +#define IDC_LIST_PREVIEW 3004 +#define IDC_CHECK_USEREGEX 3005 +#define IDC_STATUS_MESSAGE 3006 +#define IDC_CHECK_EXCLUDESUBFOLDERS 3007 +#define IDC_CHECK_ENUMITEMS 3008 +#define IDC_CHECK_EXCLUDEFILES 3009 +#define IDC_CHECK_CASESENSITIVE 3010 +#define IDC_CHECK_MATCHALLOCCURENCES 3011 +#define IDC_CHECK_EXCLUDEFOLDERS 3012 +#define IDC_CHECK_NAMEONLY 3013 +#define IDC_CHECK_EXTENSIONONLY 3014 +#define IDC_PREVIEWGROUP 3015 +#define IDC_OPTIONSGROUP 3016 +#define IDC_SEARCHREPLACEGROUP 3017 +#define IDC_TRANSFORM_UPPERCASE 3018 +#define IDC_TRANSFORM_LOWERCASE 3019 +#define IDC_TRANSFORM_TITLECASE 3020 +#define IDC_SEARCH_FOR 3021 +#define IDC_REPLACE_WITH 3022 +#define IDC_STATIC -1 +#define IDR_MAINFRAME 3023 +#define IDD_MAIN 3024 +#define IDI_RENAME 2001 diff --git a/src/modules/powerrename/ui/resource.h b/src/modules/powerrename/ui/resource.h deleted file mode 100644 index ef9e1dd78a3a..000000000000 --- a/src/modules/powerrename/ui/resource.h +++ /dev/null @@ -1,51 +0,0 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Visual C++ generated include file. -// Used by PowerRenameUI.rc -// -#define IDC_MYICON 7 -#define ID_RENAME 8 -#define ID_ABOUT 9 -#define IDD_POWERRENAME_DIALOG 102 -#define IDS_APP_TITLE 103 -#define IDS_RENAMED 104 -#define IDS_ORIGINAL 105 -#define IDS_LISTVIEW_EMPTY 106 -#define IDS_ENTIREITEMNAME 107 -#define IDS_NAMEONLY 108 -#define IDS_EXTENSIONONLY 109 -#define IDS_COUNTSLABELFMT 111 -#define IDR_MAINFRAME 128 -#define IDD_MAIN 129 -#define IDI_RENAME 132 -#define IDC_EDIT_SEARCHFOR 1002 -#define IDC_EDIT_REPLACEWITH 1003 -#define IDC_LIST_PREVIEW 1004 -#define IDC_CHECK_USEREGEX 1005 -#define IDC_STATUS_MESSAGE 1006 -#define IDC_CHECK_EXCLUDESUBFOLDERS 1007 -#define IDC_CHECK_ENUMITEMS 1008 -#define IDC_CHECK_EXCLUDEFILES 1009 -#define IDC_CHECK_CASESENSITIVE 1010 -#define IDC_CHECK_MATCHALLOCCURENCES 1011 -#define IDC_CHECK_EXCLUDEFOLDERS 1012 -#define IDC_CHECK_NAMEONLY 1013 -#define IDC_CHECK_EXTENSIONONLY 1014 -#define IDC_PREVIEWGROUP 1015 -#define IDC_OPTIONSGROUP 1016 -#define IDC_SEARCHREPLACEGROUP 1017 -#define IDC_TRANSFORM_UPPERCASE 1018 -#define IDC_TRANSFORM_LOWERCASE 1019 -#define IDC_TRANSFORM_TITLECASE 1020 -#define IDC_STATIC -1 - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NO_MFC 1 -#define _APS_NEXT_RESOURCE_VALUE 133 -#define _APS_NEXT_COMMAND_VALUE 32771 -#define _APS_NEXT_CONTROL_VALUE 1007 -#define _APS_NEXT_SYMED_VALUE 110 -#endif -#endif diff --git a/tools/build/convert-resx-to-rc.ps1 b/tools/build/convert-resx-to-rc.ps1 index 767f5606bae9..2b86379ee008 100644 --- a/tools/build/convert-resx-to-rc.ps1 +++ b/tools/build/convert-resx-to-rc.ps1 @@ -15,6 +15,16 @@ $baseRCFileName = $args[3] # Target file name of the resource rc file, which will be used in code - Example: ProjectName.rc $generatedRCFileName = $args[4] +# Optional argument: Initial resource id in the resource header file. By default it is 101 +if ($args.Count -eq 6) +{ + $initResourceID = $args[5] +} +else +{ + $initResourceID = 101 +} + # Temporary file created used for resgen $tempFile = "temporaryResourceFile.txt" @@ -92,7 +102,7 @@ Foreach-Object { $newLinesForRCFile = "" $newLinesForHeaderFile = "" - $count = 101 + $count = $initResourceID try { foreach ($line in (Get-Content $tempFile -Encoding unicode)) {