diff --git a/CmdLnTools.sln b/CmdLnTools.sln
new file mode 100644
index 000000000..4d8a2cba1
--- /dev/null
+++ b/CmdLnTools.sln
@@ -0,0 +1,46 @@
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.28606.126
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "np3encrypt", "np3encrypt\np3encrypt.vcxproj", "{0210F830-26C6-40FC-BFD1-6ED833B90830}"
+EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ced", "ced\ced.vcxproj", "{12BD16A7-3BD9-4205-99B0-75E821EA7449}"
+EndProject
+Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{6E5B87EB-C468-4334-8384-E9A3F0F6FBDA}"
+ ProjectSection(SolutionItems) = preProject
+ .editorconfig = .editorconfig
+ Build\Changes.txt = Build\Changes.txt
+ EndProjectSection
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Debug|x64 = Debug|x64
+ Release|Win32 = Release|Win32
+ Release|x64 = Release|x64
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {0210F830-26C6-40FC-BFD1-6ED833B90830}.Debug|Win32.ActiveCfg = Debug|Win32
+ {0210F830-26C6-40FC-BFD1-6ED833B90830}.Debug|Win32.Build.0 = Debug|Win32
+ {0210F830-26C6-40FC-BFD1-6ED833B90830}.Debug|x64.ActiveCfg = Debug|x64
+ {0210F830-26C6-40FC-BFD1-6ED833B90830}.Debug|x64.Build.0 = Debug|x64
+ {0210F830-26C6-40FC-BFD1-6ED833B90830}.Release|Win32.ActiveCfg = Release|Win32
+ {0210F830-26C6-40FC-BFD1-6ED833B90830}.Release|Win32.Build.0 = Release|Win32
+ {0210F830-26C6-40FC-BFD1-6ED833B90830}.Release|x64.ActiveCfg = Release|x64
+ {0210F830-26C6-40FC-BFD1-6ED833B90830}.Release|x64.Build.0 = Release|x64
+ {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Debug|Win32.ActiveCfg = Debug|Win32
+ {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Debug|Win32.Build.0 = Debug|Win32
+ {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Debug|x64.ActiveCfg = Debug|x64
+ {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Debug|x64.Build.0 = Debug|x64
+ {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Release|Win32.ActiveCfg = Release|Win32
+ {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Release|Win32.Build.0 = Release|Win32
+ {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Release|x64.ActiveCfg = Release|x64
+ {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Release|x64.Build.0 = Release|x64
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+ GlobalSection(ExtensibilityGlobals) = postSolution
+ SolutionGuid = {C0B8FE68-ECBC-4173-9027-E1EC2C9B5BDF}
+ EndGlobalSection
+EndGlobal
diff --git a/Notepad3.sln b/Notepad3.sln
index ccbc8a892..d573d6769 100644
--- a/Notepad3.sln
+++ b/Notepad3.sln
@@ -45,10 +45,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "minipath", "minipath\minipa
{29AB36E1-284E-4E0B-9DF4-F4F84760BD9B} = {29AB36E1-284E-4E0B-9DF4-F4F84760BD9B}
EndProjectSection
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "np3encrypt", "np3encrypt\np3encrypt.vcxproj", "{0210F830-26C6-40FC-BFD1-6ED833B90830}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ced", "ced\ced.vcxproj", "{12BD16A7-3BD9-4205-99B0-75E821EA7449}"
-EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "np3_de_de", "language\np3_de_de\np3_de_de.vcxproj", "{146D0122-33C6-4C1B-9E7A-178DEC80842E}"
ProjectSection(ProjectDependencies) = postProject
{9DC82B0D-2484-4925-92AD-1237C64CCB78} = {9DC82B0D-2484-4925-92AD-1237C64CCB78}
@@ -209,8 +205,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Notepad3", "Notepad3", "{C3
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MiniPath", "MiniPath", "{D21C1F85-6FA3-4695-82CD-DDC5690E2D66}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tools", "Tools", "{F91299D3-6992-4F0E-B284-7AC9AF559512}"
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "language", "language", "{8FD783D5-8709-432D-A88E-6E3073AFF220}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "language", "language", "{8C28F8E6-5B4E-4233-B5C7-5A903596AEB2}"
@@ -262,22 +256,6 @@ Global
{781B17E7-427F-488F-A8E9-360BA38A10F3}.Release|x64.ActiveCfg = Release|x64
{781B17E7-427F-488F-A8E9-360BA38A10F3}.Release|x64.Build.0 = Release|x64
{781B17E7-427F-488F-A8E9-360BA38A10F3}.Release|x64.Deploy.0 = Release|x64
- {0210F830-26C6-40FC-BFD1-6ED833B90830}.Debug|Win32.ActiveCfg = Debug|Win32
- {0210F830-26C6-40FC-BFD1-6ED833B90830}.Debug|Win32.Build.0 = Debug|Win32
- {0210F830-26C6-40FC-BFD1-6ED833B90830}.Debug|x64.ActiveCfg = Debug|x64
- {0210F830-26C6-40FC-BFD1-6ED833B90830}.Debug|x64.Build.0 = Debug|x64
- {0210F830-26C6-40FC-BFD1-6ED833B90830}.Release|Win32.ActiveCfg = Release|Win32
- {0210F830-26C6-40FC-BFD1-6ED833B90830}.Release|Win32.Build.0 = Release|Win32
- {0210F830-26C6-40FC-BFD1-6ED833B90830}.Release|x64.ActiveCfg = Release|x64
- {0210F830-26C6-40FC-BFD1-6ED833B90830}.Release|x64.Build.0 = Release|x64
- {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Debug|Win32.ActiveCfg = Debug|Win32
- {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Debug|Win32.Build.0 = Debug|Win32
- {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Debug|x64.ActiveCfg = Debug|x64
- {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Debug|x64.Build.0 = Debug|x64
- {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Release|Win32.ActiveCfg = Release|Win32
- {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Release|Win32.Build.0 = Release|Win32
- {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Release|x64.ActiveCfg = Release|x64
- {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Release|x64.Build.0 = Release|x64
{146D0122-33C6-4C1B-9E7A-178DEC80842E}.Debug|Win32.ActiveCfg = Debug|Win32
{146D0122-33C6-4C1B-9E7A-178DEC80842E}.Debug|Win32.Build.0 = Debug|Win32
{146D0122-33C6-4C1B-9E7A-178DEC80842E}.Debug|x64.ActiveCfg = Debug|x64
@@ -565,8 +543,6 @@ Global
GlobalSection(NestedProjects) = preSolution
{BAAD32AB-CD47-12FD-873C-0BBC204B7641} = {C3735E17-6EAE-4CC5-980E-30BCEF094862}
{781B17E7-427F-488F-A8E9-360BA38A10F3} = {D21C1F85-6FA3-4695-82CD-DDC5690E2D66}
- {0210F830-26C6-40FC-BFD1-6ED833B90830} = {F91299D3-6992-4F0E-B284-7AC9AF559512}
- {12BD16A7-3BD9-4205-99B0-75E821EA7449} = {F91299D3-6992-4F0E-B284-7AC9AF559512}
{146D0122-33C6-4C1B-9E7A-178DEC80842E} = {8C28F8E6-5B4E-4233-B5C7-5A903596AEB2}
{EC255B64-2C2F-4CB6-9D40-4542893FE5E6} = {8C28F8E6-5B4E-4233-B5C7-5A903596AEB2}
{3B8C289D-FF47-4237-AD7B-0702230F41A3} = {8C28F8E6-5B4E-4233-B5C7-5A903596AEB2}
diff --git a/Notepad3DLL.sln b/Notepad3DLL.sln
index a1784b8de..a870a3e1a 100644
--- a/Notepad3DLL.sln
+++ b/Notepad3DLL.sln
@@ -47,10 +47,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "minipath", "minipath\minipa
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Scintilla", "scintilla\ScintillaDLL.vcxproj", "{5877B917-512B-49F5-B514-1B4159E7A9CA}"
EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "np3encrypt", "np3encrypt\np3encrypt.vcxproj", "{0210F830-26C6-40FC-BFD1-6ED833B90830}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ced", "ced\ced.vcxproj", "{12BD16A7-3BD9-4205-99B0-75E821EA7449}"
-EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "np3_de_de", "language\np3_de_de\np3_de_de.vcxproj", "{146D0122-33C6-4C1B-9E7A-178DEC80842E}"
ProjectSection(ProjectDependencies) = postProject
{9DC82B0D-2484-4925-92AD-1237C64CCB78} = {9DC82B0D-2484-4925-92AD-1237C64CCB78}
@@ -211,8 +207,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Notepad3", "Notepad3", "{C3
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MiniPath", "MiniPath", "{D21C1F85-6FA3-4695-82CD-DDC5690E2D66}"
EndProject
-Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tools", "Tools", "{F91299D3-6992-4F0E-B284-7AC9AF559512}"
-EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "language", "language", "{8FD783D5-8709-432D-A88E-6E3073AFF220}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "language", "language", "{8C28F8E6-5B4E-4233-B5C7-5A903596AEB2}"
@@ -276,22 +270,6 @@ Global
{5877B917-512B-49F5-B514-1B4159E7A9CA}.Release|Win32.Build.0 = Release|Win32
{5877B917-512B-49F5-B514-1B4159E7A9CA}.Release|x64.ActiveCfg = Release|x64
{5877B917-512B-49F5-B514-1B4159E7A9CA}.Release|x64.Build.0 = Release|x64
- {0210F830-26C6-40FC-BFD1-6ED833B90830}.Debug|Win32.ActiveCfg = Debug|Win32
- {0210F830-26C6-40FC-BFD1-6ED833B90830}.Debug|Win32.Build.0 = Debug|Win32
- {0210F830-26C6-40FC-BFD1-6ED833B90830}.Debug|x64.ActiveCfg = Debug|x64
- {0210F830-26C6-40FC-BFD1-6ED833B90830}.Debug|x64.Build.0 = Debug|x64
- {0210F830-26C6-40FC-BFD1-6ED833B90830}.Release|Win32.ActiveCfg = Release|Win32
- {0210F830-26C6-40FC-BFD1-6ED833B90830}.Release|Win32.Build.0 = Release|Win32
- {0210F830-26C6-40FC-BFD1-6ED833B90830}.Release|x64.ActiveCfg = Release|x64
- {0210F830-26C6-40FC-BFD1-6ED833B90830}.Release|x64.Build.0 = Release|x64
- {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Debug|Win32.ActiveCfg = Debug|Win32
- {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Debug|Win32.Build.0 = Debug|Win32
- {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Debug|x64.ActiveCfg = Debug|x64
- {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Debug|x64.Build.0 = Debug|x64
- {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Release|Win32.ActiveCfg = Release|Win32
- {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Release|Win32.Build.0 = Release|Win32
- {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Release|x64.ActiveCfg = Release|x64
- {12BD16A7-3BD9-4205-99B0-75E821EA7449}.Release|x64.Build.0 = Release|x64
{146D0122-33C6-4C1B-9E7A-178DEC80842E}.Debug|Win32.ActiveCfg = Debug|Win32
{146D0122-33C6-4C1B-9E7A-178DEC80842E}.Debug|Win32.Build.0 = Debug|Win32
{146D0122-33C6-4C1B-9E7A-178DEC80842E}.Debug|x64.ActiveCfg = Debug|x64
@@ -572,8 +550,6 @@ Global
{BAAD32AB-CD47-12FD-873C-0BBC204B7641} = {C3735E17-6EAE-4CC5-980E-30BCEF094862}
{781B17E7-427F-488F-A8E9-360BA38A10F3} = {D21C1F85-6FA3-4695-82CD-DDC5690E2D66}
{5877B917-512B-49F5-B514-1B4159E7A9CA} = {C3735E17-6EAE-4CC5-980E-30BCEF094862}
- {0210F830-26C6-40FC-BFD1-6ED833B90830} = {F91299D3-6992-4F0E-B284-7AC9AF559512}
- {12BD16A7-3BD9-4205-99B0-75E821EA7449} = {F91299D3-6992-4F0E-B284-7AC9AF559512}
{146D0122-33C6-4C1B-9E7A-178DEC80842E} = {8C28F8E6-5B4E-4233-B5C7-5A903596AEB2}
{EC255B64-2C2F-4CB6-9D40-4542893FE5E6} = {8C28F8E6-5B4E-4233-B5C7-5A903596AEB2}
{3B8C289D-FF47-4237-AD7B-0702230F41A3} = {8C28F8E6-5B4E-4233-B5C7-5A903596AEB2}
diff --git a/Versions/build.txt b/Versions/build.txt
index 1475ea901..075c4f664 100644
--- a/Versions/build.txt
+++ b/Versions/build.txt
@@ -1 +1 @@
-2404
+2405
diff --git a/minipath/minipathDLL.vcxproj b/minipath/minipathDLL.vcxproj
index 9f4fa2673..6aac33037 100644
--- a/minipath/minipathDLL.vcxproj
+++ b/minipath/minipathDLL.vcxproj
@@ -274,6 +274,7 @@
+
@@ -282,12 +283,14 @@
+
+
diff --git a/minipath/minipathDLL.vcxproj.filters b/minipath/minipathDLL.vcxproj.filters
index b7d5236ca..a658614f8 100644
--- a/minipath/minipathDLL.vcxproj.filters
+++ b/minipath/minipathDLL.vcxproj.filters
@@ -34,6 +34,9 @@
C/C++ Source Files
+
+ C/C++ Source Files
+
@@ -60,6 +63,12 @@
H Source Files
+
+ H Source Files
+
+
+ H Source Files
+
diff --git a/minipath/src/Config.cpp b/minipath/src/Config.cpp
index 2e592fcff..ed279053b 100644
--- a/minipath/src/Config.cpp
+++ b/minipath/src/Config.cpp
@@ -25,62 +25,10 @@ extern "C" {
}
extern "C" HWND hwndMain;
-
extern "C" WCHAR g_wchIniFile[MAX_PATH];
extern "C" WCHAR g_wchIniFile2[MAX_PATH];
extern "C" WCHAR g_wchNP3IniFile[MAX_PATH];
-extern "C" BOOL bSaveSettings;
-extern "C" WCHAR szQuickview[MAX_PATH];
-extern "C" WCHAR szQuickviewParams[MAX_PATH];
-extern "C" WCHAR g_tchFavoritesDir[MAX_PATH];
-extern "C" BOOL bNP3sFavoritesSettings;
-extern "C" WCHAR tchOpenWithDir[MAX_PATH];
-extern "C" WCHAR tchToolbarButtons[512];
-extern "C" WCHAR tchToolbarBitmap[MAX_PATH];
-extern "C" WCHAR tchToolbarBitmapHot[MAX_PATH];
-extern "C" WCHAR tchToolbarBitmapDisabled[MAX_PATH];
-extern "C" BOOL bClearReadOnly;
-extern "C" BOOL bRenameOnCollision;
-extern "C" BOOL bSingleClick;
-extern "C" BOOL bTrackSelect;
-extern "C" BOOL bFullRowSelect;
-extern "C" int iStartupDir;
-extern "C" int iEscFunction;
-extern "C" BOOL bFocusEdit;
-extern "C" BOOL bAlwaysOnTop;
-extern "C" BOOL g_bTransparentMode;
-extern "C" BOOL bMinimizeToTray;
-extern "C" BOOL fUseRecycleBin;
-extern "C" BOOL fNoConfirmDelete;
-extern "C" BOOL bShowToolbar;
-extern "C" BOOL bShowStatusbar;
-extern "C" BOOL bShowDriveBox;
-extern "C" int cxGotoDlg;
-extern "C" int cxOpenWithDlg;
-extern "C" int cyOpenWithDlg;
-extern "C" int cxCopyMoveDlg;
-
-extern "C" BOOL bHasQuickview;
-
-extern "C" WCHAR tchFilter[DL_FILTER_BUFSIZE];
-extern "C" BOOL bNegFilter;
-extern "C" BOOL bDefCrNoFilt;
-extern "C" BOOL bDefCrFilter;
-extern "C" COLORREF crNoFilt;
-extern "C" COLORREF crFilter;
-extern "C" COLORREF crCustom[16];
-
-extern "C" LPWSTR lpPathArg;
-extern "C" LPWSTR lpFilterArg;
-
-extern "C" WININFO wi;
-
-extern "C" WCHAR szCurDir[MAX_PATH + 40];
-extern "C" DWORD dwFillMask;
-extern "C" int nSortFlags;
-extern "C" BOOL fSortRev;
-
extern "C" WCHAR g_tchPrefLngLocName[LOCALE_NAME_MAX_LENGTH + 1];
extern "C" LANGID g_iPrefLANGID;
@@ -400,6 +348,43 @@ extern "C" BOOL IniFileIterateSection(LPCWSTR lpFilePath, LPCWSTR lpSectionName,
+
+//=============================================================================
+//
+// InitDefaultSettings()
+//
+//
+void InitDefaultSettings()
+{
+ Defaults.szQuickview[0] = L'\0';
+ Defaults.szQuickviewParams[0] = L'\0';
+ Defaults.g_tchFavoritesDir[0] = L'\0';
+ Defaults.tchOpenWithDir[0] = L'\0';
+ Defaults.tchToolbarButtons[0] = L'\0';
+ Defaults.tchToolbarBitmap[0] = L'\0';
+ Defaults.tchToolbarBitmapHot[0] = L'\0';
+ Defaults.tchToolbarBitmapDisabled[0] = L'\0';
+ Defaults.tchFilter[0] = L'\0';
+ Defaults.szCurDir[0] = L'\0';
+
+ // Initialize custom colors for ChooseColor()
+ Defaults.crCustom[0] = RGB(0, 0, 128); Defaults.crCustom[8] = RGB(255, 255, 226);
+ Defaults.crCustom[1] = GetSysColor(COLOR_WINDOWTEXT); Defaults.crCustom[9] = GetSysColor(COLOR_WINDOW);
+ Defaults.crCustom[2] = GetSysColor(COLOR_INFOTEXT); Defaults.crCustom[10] = GetSysColor(COLOR_INFOBK);
+ Defaults.crCustom[3] = GetSysColor(COLOR_HIGHLIGHTTEXT); Defaults.crCustom[11] = GetSysColor(COLOR_HIGHLIGHT);
+ Defaults.crCustom[4] = GetSysColor(COLOR_ACTIVECAPTION); Defaults.crCustom[12] = GetSysColor(COLOR_DESKTOP);
+ Defaults.crCustom[5] = GetSysColor(COLOR_3DFACE); Defaults.crCustom[13] = GetSysColor(COLOR_3DFACE);
+ Defaults.crCustom[6] = GetSysColor(COLOR_3DFACE); Defaults.crCustom[14] = GetSysColor(COLOR_3DFACE);
+ Defaults.crCustom[7] = GetSysColor(COLOR_3DFACE); Defaults.crCustom[15] = GetSysColor(COLOR_3DFACE);
+
+ Defaults.wi.x = CW_USEDEFAULT;
+ Defaults.wi.y = CW_USEDEFAULT;
+ Defaults.wi.cx = CW_USEDEFAULT;
+ Defaults.wi.cy = CW_USEDEFAULT;
+}
+
+
+
//=============================================================================
//
// CreateIniFile()
@@ -684,162 +669,129 @@ void LoadFlags()
// LoadSettings()
//
//
+extern "C" LPWSTR lpFilterArg;
+
+#define GET_BOOL_VALUE_FROM_INISECTION(VARNAME,KEYNAME,DEFAULT) \
+ Defaults.VARNAME = DEFAULT; \
+ Settings.VARNAME = IniSectionGetBool(Settings_Section, KEYNAME, Defaults.VARNAME)
+
+#define GET_INT_VALUE_FROM_INISECTION(VARNAME,KEYNAME,DEFAULT,MIN,MAX) \
+ Defaults.VARNAME = DEFAULT; \
+ Settings.VARNAME = clampi(IniSectionGetInt(Settings_Section, KEYNAME, Defaults.VARNAME),MIN,MAX)
+
+// -----------------------------------------------------------
+
void LoadSettings()
{
LoadIniFile(g_wchIniFile);
const WCHAR* const Settings_Section = L"Settings";
- bSaveSettings = IniSectionGetInt(Settings_Section, L"SaveSettings", 1);
- if (bSaveSettings) bSaveSettings = 1;
+ GET_BOOL_VALUE_FROM_INISECTION(bSaveSettings, L"SaveSettings", TRUE);
+ GET_BOOL_VALUE_FROM_INISECTION(bSingleClick, L"SingleClick", TRUE);
+ GET_BOOL_VALUE_FROM_INISECTION(bTrackSelect, L"TrackSelect", TRUE);
+ GET_BOOL_VALUE_FROM_INISECTION(bFullRowSelect, L"FullRowSelect", FALSE);
+ GET_BOOL_VALUE_FROM_INISECTION(fUseRecycleBin, L"UseRecycleBin", FALSE);
+ GET_BOOL_VALUE_FROM_INISECTION(fNoConfirmDelete, L"NoConfirmDelete", FALSE);
+ GET_BOOL_VALUE_FROM_INISECTION(bClearReadOnly, L"ClearReadOnly", TRUE);
+ GET_BOOL_VALUE_FROM_INISECTION(bRenameOnCollision, L"RenameOnCollision", FALSE);
+ GET_BOOL_VALUE_FROM_INISECTION(bFocusEdit, L"FocusEdit", TRUE);
+ GET_BOOL_VALUE_FROM_INISECTION(bAlwaysOnTop, L"AlwaysOnTop", FALSE);
+ GET_BOOL_VALUE_FROM_INISECTION(bMinimizeToTray, L"MinimizeToTray", FALSE);
+ GET_BOOL_VALUE_FROM_INISECTION(g_bTransparentMode, L"TransparentMode", FALSE);
+ GET_INT_VALUE_FROM_INISECTION(iEscFunction, L"EscFunction", 2, 0, 2);
+ GET_INT_VALUE_FROM_INISECTION(iStartupDir, L"StartupDirectory", 2, 0, 2);
- bSingleClick = IniSectionGetInt(Settings_Section, L"SingleClick", 1);
- if (bSingleClick) bSingleClick = 1;
-
- bTrackSelect = IniSectionGetInt(Settings_Section, L"TrackSelect", 1);
- if (bTrackSelect) bTrackSelect = 1;
-
- bFullRowSelect = IniSectionGetInt(Settings_Section, L"FullRowSelect", 0);
- if (bFullRowSelect) bFullRowSelect = 1;
-
- fUseRecycleBin = IniSectionGetInt(Settings_Section, L"UseRecycleBin", 0);
- if (fUseRecycleBin) fUseRecycleBin = 1;
-
- fNoConfirmDelete = IniSectionGetInt(Settings_Section, L"NoConfirmDelete", 0);
- if (fNoConfirmDelete) fNoConfirmDelete = 1;
-
- bClearReadOnly = IniSectionGetInt(Settings_Section, L"ClearReadOnly", 1);
- if (bClearReadOnly) bClearReadOnly = 1;
-
- bRenameOnCollision = IniSectionGetInt(Settings_Section, L"RenameOnCollision", 0);
- if (bRenameOnCollision) bRenameOnCollision = 1;
-
- bFocusEdit = IniSectionGetInt(Settings_Section, L"FocusEdit", 1);
- if (bFocusEdit) bFocusEdit = 1;
-
- bAlwaysOnTop = IniSectionGetInt(Settings_Section, L"AlwaysOnTop", 0);
- if (bAlwaysOnTop) bAlwaysOnTop = 1;
-
- bMinimizeToTray = IniSectionGetInt(Settings_Section, L"MinimizeToTray", 0);
- if (bMinimizeToTray) bMinimizeToTray = 1;
-
- g_bTransparentMode = IniSectionGetInt(Settings_Section, L"TransparentMode", 0);
- if (g_bTransparentMode) g_bTransparentMode = 1;
-
- iEscFunction = IniSectionGetInt(Settings_Section, L"EscFunction", 2);
- iEscFunction = max(min(iEscFunction, 2), 0);
-
- iStartupDir = IniSectionGetInt(Settings_Section, L"StartupDirectory", 2);
- iStartupDir = max(min(iStartupDir, 2), 0);
-
- if (!IniSectionGetString(Settings_Section, L"Favorites", L"",
- g_tchFavoritesDir, COUNTOF(g_tchFavoritesDir))) {
+ Defaults.g_tchFavoritesDir[0] = L'\0';
+ if (!IniSectionGetString(Settings_Section, L"Favorites", Defaults.g_tchFavoritesDir,
+ Settings.g_tchFavoritesDir, COUNTOF(Settings.g_tchFavoritesDir))) {
// try to fetch Favorites dir from Notepad3.ini
if (StrIsNotEmpty(g_wchNP3IniFile)) {
- bNP3sFavoritesSettings = TRUE;
- IniFileGetString(g_wchNP3IniFile, L"Settings", L"Favorites", L"", g_tchFavoritesDir, COUNTOF(g_tchFavoritesDir));
+ Settings.bNP3sFavoritesSettings = TRUE;
+ IniFileGetString(g_wchNP3IniFile, L"Settings", L"Favorites", L"", Settings.g_tchFavoritesDir, COUNTOF(Settings.g_tchFavoritesDir));
}
}
- if (StrIsEmpty(g_tchFavoritesDir))
- SHGetFolderPath(nullptr, CSIDL_PERSONAL, nullptr, SHGFP_TYPE_CURRENT, g_tchFavoritesDir);
+ if (StrIsEmpty(Settings.g_tchFavoritesDir))
+ SHGetFolderPath(nullptr, CSIDL_PERSONAL, nullptr, SHGFP_TYPE_CURRENT, Settings.g_tchFavoritesDir);
else
- PathAbsoluteFromApp(g_tchFavoritesDir, nullptr, COUNTOF(g_tchFavoritesDir), TRUE);
+ PathAbsoluteFromApp(Settings.g_tchFavoritesDir, nullptr, COUNTOF(Settings.g_tchFavoritesDir), TRUE);
- if (!IniSectionGetString(Settings_Section, L"Quikview.exe", L"",
- szQuickview, COUNTOF(szQuickview))) {
- GetSystemDirectory(szQuickview, COUNTOF(szQuickview));
- PathAddBackslash(szQuickview);
- lstrcat(szQuickview, L"Viewers\\Quikview.exe");
+
+ Defaults.szQuickview[0] = L'\0';
+ if (!IniSectionGetString(Settings_Section, L"Quikview.exe", Defaults.szQuickview,
+ Settings.szQuickview, COUNTOF(Settings.szQuickview))) {
+ GetSystemDirectory(Settings.szQuickview, COUNTOF(Settings.szQuickview));
+ PathAddBackslash(Settings.szQuickview);
+ lstrcat(Settings.szQuickview, L"Viewers\\Quikview.exe");
}
else
- PathAbsoluteFromApp(szQuickview, nullptr, COUNTOF(szQuickview), TRUE);
+ PathAbsoluteFromApp(Settings.szQuickview, nullptr, COUNTOF(Settings.szQuickview), TRUE);
- bHasQuickview = PathFileExists(szQuickview);
+ Settings.bHasQuickview = PathFileExists(Settings.szQuickview);
- IniSectionGetString(Settings_Section, L"QuikviewParams", L"", szQuickviewParams, COUNTOF(szQuickviewParams));
+ Defaults.szQuickviewParams[0] = L'\0';
+ IniSectionGetString(Settings_Section, L"QuikviewParams", Defaults.szQuickviewParams,
+ Settings.szQuickviewParams, COUNTOF(Settings.szQuickviewParams));
- if (!IniSectionGetString(Settings_Section, L"OpenWithDir", L"", tchOpenWithDir, COUNTOF(tchOpenWithDir))) {
+
+ lstrcpy(Defaults.tchOpenWithDir, L"%USERPROFILE%\\Desktop");
+ if (IniSectionGetString(Settings_Section, L"OpenWithDir", L"",
+ Settings.tchOpenWithDir, COUNTOF(Settings.tchOpenWithDir)) == 0) {
// try to fetch Open With dir from Notepad3.ini
- IniFileGetString(g_wchNP3IniFile, L"Settings", L"OpenWithDir", L"", tchOpenWithDir, COUNTOF(tchOpenWithDir));
+ IniFileGetString(g_wchNP3IniFile, L"Settings", L"OpenWithDir", L"", Settings.tchOpenWithDir, COUNTOF(Settings.tchOpenWithDir));
}
- if (StrIsEmpty(tchOpenWithDir))
- SHGetSpecialFolderPath(nullptr, tchOpenWithDir, CSIDL_DESKTOPDIRECTORY, TRUE);
+ if (StrIsEmpty(Settings.tchOpenWithDir))
+ SHGetSpecialFolderPath(nullptr, Settings.tchOpenWithDir, CSIDL_DESKTOPDIRECTORY, TRUE);
else
- PathAbsoluteFromApp(tchOpenWithDir, nullptr, COUNTOF(tchOpenWithDir), TRUE);
+ PathAbsoluteFromApp(Settings.tchOpenWithDir, nullptr, COUNTOF(Settings.tchOpenWithDir), TRUE);
- dwFillMask = IniSectionGetInt(Settings_Section, L"FillMask", DL_ALLOBJECTS);
- if (dwFillMask & ~DL_ALLOBJECTS) dwFillMask = DL_ALLOBJECTS;
-
- nSortFlags = IniSectionGetInt(Settings_Section, L"SortOptions", DS_TYPE);
- nSortFlags = min(3, max(nSortFlags, 0));
-
- fSortRev = IniSectionGetInt(Settings_Section, L"SortReverse", 0);
- if (fSortRev) fSortRev = 1;
+ GET_INT_VALUE_FROM_INISECTION(dwFillMask, L"FillMask", DL_ALLOBJECTS, DL_FOLDERS, DL_ALLOBJECTS);
+ GET_INT_VALUE_FROM_INISECTION(nSortFlags, L"SortOptions", DS_TYPE, 0, 3);
+ GET_BOOL_VALUE_FROM_INISECTION(fSortRev, L"SortReverse", FALSE);
+ lstrcpy(Defaults.tchFilter, L"*.*");
if (!lpFilterArg) {
- if (!IniSectionGetString(Settings_Section, L"FileFilter", L"",
- tchFilter, COUNTOF(tchFilter)))
- lstrcpy(tchFilter, L"*.*");
-
- bNegFilter = IniSectionGetInt(Settings_Section, L"NegativeFilter", 0);
- if (bNegFilter) bNegFilter = 1;
+ IniSectionGetString(Settings_Section, L"FileFilter", Defaults.tchFilter, Settings.tchFilter, COUNTOF(Settings.tchFilter));
}
-
else { // ignore filter if /m was specified
- if (*lpFilterArg == L'-') {
- bNegFilter = TRUE;
- lstrcpyn(tchFilter, lpFilterArg + 1, COUNTOF(tchFilter));
+ if (*(lpFilterArg) == L'-') {
+ Settings.bNegFilter = TRUE;
+ (void)lstrcpyn(Settings.tchFilter, lpFilterArg + 1, COUNTOF(Settings.tchFilter));
}
else {
- bNegFilter = FALSE;
- lstrcpyn(tchFilter, lpFilterArg, COUNTOF(tchFilter));
+ Settings.bNegFilter = FALSE;
+ (void)lstrcpyn(Settings.tchFilter, lpFilterArg, COUNTOF(Settings.tchFilter));
}
}
+ GET_BOOL_VALUE_FROM_INISECTION(bNegFilter, L"NegativeFilter", FALSE);
+ GET_BOOL_VALUE_FROM_INISECTION(bDefCrNoFilt, L"DefColorNoFilter", TRUE);
+ GET_BOOL_VALUE_FROM_INISECTION(bDefCrFilter, L"DefColorFilter", TRUE);
+ GET_INT_VALUE_FROM_INISECTION(crNoFilt, L"ColorNoFilter", GetSysColor(COLOR_WINDOWTEXT), 0, INT_MAX);
+ GET_INT_VALUE_FROM_INISECTION(crFilter, L"ColorFilter", GetSysColor(COLOR_HIGHLIGHT), 0, INT_MAX);
- bDefCrNoFilt = IniSectionGetInt(Settings_Section, L"DefColorNoFilter", 1);
- if (bDefCrNoFilt) bDefCrNoFilt = 1;
- bDefCrFilter = IniSectionGetInt(Settings_Section, L"DefColorFilter", 1);
- if (bDefCrFilter) bDefCrFilter = 1;
-
- crNoFilt = IniSectionGetInt(Settings_Section, L"ColorNoFilter", GetSysColor(COLOR_WINDOWTEXT));
- crFilter = IniSectionGetInt(Settings_Section, L"ColorFilter", GetSysColor(COLOR_HIGHLIGHT));
-
- if (IniSectionGetString(Settings_Section, L"ToolbarButtons", L"", tchToolbarButtons, COUNTOF(tchToolbarButtons)) == 0) {
- lstrcpy(tchToolbarButtons, L"1 2 3 4 5 0 8");
+ lstrcpy(Defaults.tchToolbarButtons, L"1 2 3 4 5 0 8");
+ if (IniSectionGetString(Settings_Section, L"ToolbarButtons", Defaults.tchToolbarButtons, Settings.tchToolbarButtons, COUNTOF(Settings.tchToolbarButtons)) == 0) {
+ lstrcpy(Settings.tchToolbarButtons, Defaults.tchToolbarButtons);
}
- bShowToolbar = IniSectionGetInt(Settings_Section, L"ShowToolbar", 1);
- if (bShowToolbar) bShowToolbar = 1;
- bShowStatusbar = IniSectionGetInt(Settings_Section, L"ShowStatusbar", 1);
- if (bShowStatusbar) bShowStatusbar = 1;
+ GET_BOOL_VALUE_FROM_INISECTION(bShowToolbar, L"ShowToolbar", TRUE);
+ GET_BOOL_VALUE_FROM_INISECTION(bShowStatusbar, L"ShowStatusbar", TRUE);
+ GET_BOOL_VALUE_FROM_INISECTION(bShowDriveBox, L"ShowDriveBox", TRUE);
+ GET_INT_VALUE_FROM_INISECTION(cxGotoDlg, L"GotoDlgSizeX", 0, 0, INT_MAX);
+ GET_INT_VALUE_FROM_INISECTION(cxOpenWithDlg, L"OpenWithDlgSizeX", 0, 0, INT_MAX);
+ GET_INT_VALUE_FROM_INISECTION(cyOpenWithDlg, L"OpenWithDlgSizeY", 0, 0, INT_MAX);
+ GET_INT_VALUE_FROM_INISECTION(cxCopyMoveDlg, L"CopyMoveDlgSizeX", 0, 0, INT_MAX);
- bShowDriveBox = IniSectionGetInt(Settings_Section, L"ShowDriveBox", 1);
- if (bShowDriveBox) bShowDriveBox = 1;
-
- cxGotoDlg = IniSectionGetInt(Settings_Section, L"GotoDlgSizeX", 0);
- cxGotoDlg = max(cxGotoDlg, 0);
-
- cxOpenWithDlg = IniSectionGetInt(Settings_Section, L"OpenWithDlgSizeX", 0);
- cxOpenWithDlg = max(cxOpenWithDlg, 0);
-
- cyOpenWithDlg = IniSectionGetInt(Settings_Section, L"OpenWithDlgSizeY", 0);
- cyOpenWithDlg = max(cyOpenWithDlg, 0);
-
- cxCopyMoveDlg = IniSectionGetInt(Settings_Section, L"CopyMoveDlgSizeX", 0);
- cxCopyMoveDlg = max(cxCopyMoveDlg, 0);
+ // --------------------------------------------------------------------------
int ResX = GetSystemMetrics(SM_CXSCREEN);
int ResY = GetSystemMetrics(SM_CYSCREEN);
-
const WCHAR* const ToolbarImages_Section = L"Toolbar Images";
- IniSectionGetString(ToolbarImages_Section, L"BitmapDefault", L"",
- tchToolbarBitmap, COUNTOF(tchToolbarBitmap));
- IniSectionGetString(ToolbarImages_Section, L"BitmapHot", L"",
- tchToolbarBitmapHot, COUNTOF(tchToolbarBitmap));
- IniSectionGetString(ToolbarImages_Section, L"BitmapDisabled", L"",
- tchToolbarBitmapDisabled, COUNTOF(tchToolbarBitmap));
+ IniSectionGetString(ToolbarImages_Section, L"BitmapDefault", L"", Settings.tchToolbarBitmap, COUNTOF(Settings.tchToolbarBitmap));
+ IniSectionGetString(ToolbarImages_Section, L"BitmapHot", L"", Settings.tchToolbarBitmapHot, COUNTOF(Settings.tchToolbarBitmap));
+ IniSectionGetString(ToolbarImages_Section, L"BitmapDisabled", L"", Settings.tchToolbarBitmapDisabled, COUNTOF(Settings.tchToolbarBitmap));
if (!flagPosParam) { // ignore window position if /p was specified
@@ -852,31 +804,45 @@ void LoadSettings()
const WCHAR* const Window_Section = L"Window";
- wi.x = IniSectionGetInt(Window_Section, tchPosX, CW_USEDEFAULT);
- wi.y = IniSectionGetInt(Window_Section, tchPosY, CW_USEDEFAULT);
- wi.cx = IniSectionGetInt(Window_Section, tchSizeX, CW_USEDEFAULT);
- wi.cy = IniSectionGetInt(Window_Section, tchSizeY, CW_USEDEFAULT);
+ Settings.wi.x = IniSectionGetInt(Window_Section, tchPosX, Defaults.wi.x);
+ Settings.wi.y = IniSectionGetInt(Window_Section, tchPosY, Defaults.wi.y);
+ Settings.wi.cx = IniSectionGetInt(Window_Section, tchSizeX, Defaults.wi.cx);
+ Settings.wi.cy = IniSectionGetInt(Window_Section, tchSizeY, Defaults.wi.cy);
}
-
// Initialize custom colors for ChooseColor()
- crCustom[0] = RGB(0, 0, 128); crCustom[8] = RGB(255, 255, 226);
- crCustom[1] = GetSysColor(COLOR_WINDOWTEXT); crCustom[9] = GetSysColor(COLOR_WINDOW);
- crCustom[2] = GetSysColor(COLOR_INFOTEXT); crCustom[10] = GetSysColor(COLOR_INFOBK);
- crCustom[3] = GetSysColor(COLOR_HIGHLIGHTTEXT); crCustom[11] = GetSysColor(COLOR_HIGHLIGHT);
- crCustom[4] = GetSysColor(COLOR_ACTIVECAPTION); crCustom[12] = GetSysColor(COLOR_DESKTOP);
- crCustom[5] = GetSysColor(COLOR_3DFACE); crCustom[13] = GetSysColor(COLOR_3DFACE);
- crCustom[6] = GetSysColor(COLOR_3DFACE); crCustom[14] = GetSysColor(COLOR_3DFACE);
- crCustom[7] = GetSysColor(COLOR_3DFACE); crCustom[15] = GetSysColor(COLOR_3DFACE);
-
+ for (int i = 0; i < COUNTOF(Settings.crCustom); ++i) {
+ Settings.crCustom[i] = Defaults.crCustom[i];
+ }
+
ReleaseIniFile();
}
+
//=============================================================================
//
// SaveSettings()
//
//
+
+#define SAVE_VALUE_IF_NOT_EQ_DEFAULT(TYPE,KEYNAME,VARNAME) \
+ if (Settings.VARNAME != Defaults.VARNAME) { \
+ IniSectionSet##TYPE(Settings_Section, KEYNAME, Settings.VARNAME); \
+ } \
+ else { \
+ IniSectionDelete(Settings_Section, KEYNAME, false); \
+ }
+
+#define SAVE_STRING_IF_NOT_EQ_DEFAULT(KEYNAME,VARNAME) \
+ if (lstrcmp(Settings.VARNAME, Defaults.VARNAME) != 0) { \
+ IniSectionSetString(Settings_Section, KEYNAME, Settings.VARNAME); \
+ } \
+ else { \
+ IniSectionDelete(Settings_Section, KEYNAME, false); \
+ }
+
+// ----------------------------------------------------------------------------
+
void SaveSettings(BOOL bSaveSettingsNow)
{
WCHAR wchTmp[MAX_PATH];
@@ -885,11 +851,11 @@ void SaveSettings(BOOL bSaveSettingsNow)
CreateIniFile();
- if (!bSaveSettings && !bSaveSettingsNow) {
- if (iStartupDir == 1) {
- IniFileSetString(g_wchIniFile, L"Settings", L"MRUDirectory", szCurDir);
+ if (!Settings.bSaveSettings && !bSaveSettingsNow) {
+ if (Settings.iStartupDir == 1) {
+ IniFileSetString(g_wchIniFile, L"Settings", L"MRUDirectory", Settings.szCurDir);
}
- IniFileSetBool(g_wchIniFile, L"Settings", L"SaveSettings", bSaveSettings);
+ IniFileSetBool(g_wchIniFile, L"Settings", L"SaveSettings", Settings.bSaveSettings);
return;
}
@@ -897,49 +863,59 @@ void SaveSettings(BOOL bSaveSettingsNow)
const WCHAR* const Settings_Section = L"Settings";
- IniSectionSetInt(Settings_Section, L"SaveSettings", bSaveSettings);
- IniSectionSetInt(Settings_Section, L"SingleClick", bSingleClick);
- IniSectionSetInt(Settings_Section, L"TrackSelect", bTrackSelect);
- IniSectionSetInt(Settings_Section, L"FullRowSelect", bFullRowSelect);
- IniSectionSetInt(Settings_Section, L"UseRecycleBin", fUseRecycleBin);
- IniSectionSetInt(Settings_Section, L"NoConfirmDelete", fNoConfirmDelete);
- IniSectionSetInt(Settings_Section, L"ClearReadOnly", bClearReadOnly);
- IniSectionSetInt(Settings_Section, L"RenameOnCollision", bRenameOnCollision);
- IniSectionSetInt(Settings_Section, L"FocusEdit", bFocusEdit);
- IniSectionSetInt(Settings_Section, L"AlwaysOnTop", bAlwaysOnTop);
- IniSectionSetInt(Settings_Section, L"MinimizeToTray", bMinimizeToTray);
- IniSectionSetInt(Settings_Section, L"TransparentMode", g_bTransparentMode);
- IniSectionSetInt(Settings_Section, L"EscFunction", iEscFunction);
- IniSectionSetInt(Settings_Section, L"StartupDirectory", iStartupDir);
- if (iStartupDir == 1) {
- IniSectionSetString(Settings_Section, L"MRUDirectory", szCurDir);
+ SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, L"SaveSettings", bSaveSettings);
+ SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, L"SingleClick", bSingleClick);
+ SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, L"TrackSelect", bTrackSelect);
+ SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, L"FullRowSelect", bFullRowSelect);
+ SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, L"UseRecycleBin", fUseRecycleBin);
+ SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, L"NoConfirmDelete", fNoConfirmDelete);
+ SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, L"ClearReadOnly", bClearReadOnly);
+ SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, L"RenameOnCollision", bRenameOnCollision);
+ SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, L"FocusEdit", bFocusEdit);
+ SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, L"AlwaysOnTop", bAlwaysOnTop);
+ SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, L"MinimizeToTray", bMinimizeToTray);
+ SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, L"TransparentMode", g_bTransparentMode);
+
+ SAVE_VALUE_IF_NOT_EQ_DEFAULT(Int, L"EscFunction", iEscFunction);
+
+ SAVE_VALUE_IF_NOT_EQ_DEFAULT(Int, L"StartupDirectory", iStartupDir);
+ if (Settings.iStartupDir == 1) {
+ IniSectionSetString(Settings_Section, L"MRUDirectory", Settings.szCurDir);
}
- if (!bNP3sFavoritesSettings) {
- PathRelativeToApp(g_tchFavoritesDir, wchTmp, COUNTOF(wchTmp), FALSE, TRUE, flagPortableMyDocs);
+ if (!Settings.bNP3sFavoritesSettings) {
+ PathRelativeToApp(Settings.g_tchFavoritesDir, wchTmp, COUNTOF(wchTmp), FALSE, TRUE, flagPortableMyDocs);
IniSectionSetString(Settings_Section, L"Favorites", wchTmp);
}
- PathRelativeToApp(szQuickview, wchTmp, COUNTOF(wchTmp), FALSE, TRUE, flagPortableMyDocs);
+
+ PathRelativeToApp(Settings.szQuickview, wchTmp, COUNTOF(wchTmp), FALSE, TRUE, flagPortableMyDocs);
IniSectionSetString(Settings_Section, L"Quikview.exe", wchTmp);
- IniSectionSetString(Settings_Section, L"QuikviewParams", szQuickviewParams);
- PathRelativeToApp(tchOpenWithDir, wchTmp, COUNTOF(wchTmp), FALSE, TRUE, flagPortableMyDocs);
- IniSectionSetString(Settings_Section, L"OpenWithDir", wchTmp);
- IniSectionSetInt(Settings_Section, L"FillMask", dwFillMask);
- IniSectionSetInt(Settings_Section, L"SortOptions", nSortFlags);
- IniSectionSetInt(Settings_Section, L"SortReverse", fSortRev);
- IniSectionSetString(Settings_Section, L"FileFilter", tchFilter);
- IniSectionSetInt(Settings_Section, L"NegativeFilter", bNegFilter);
- IniSectionSetInt(Settings_Section, L"DefColorNoFilter", bDefCrNoFilt);
- IniSectionSetInt(Settings_Section, L"DefColorFilter", bDefCrFilter);
- IniSectionSetInt(Settings_Section, L"ColorNoFilter", crNoFilt);
- IniSectionSetInt(Settings_Section, L"ColorFilter", crFilter);
- IniSectionSetString(Settings_Section, L"ToolbarButtons", tchToolbarButtons);
- IniSectionSetInt(Settings_Section, L"ShowToolbar", bShowToolbar);
- IniSectionSetInt(Settings_Section, L"ShowStatusbar", bShowStatusbar);
- IniSectionSetInt(Settings_Section, L"ShowDriveBox", bShowDriveBox);
- IniSectionSetInt(Settings_Section, L"GotoDlgSizeX", cxGotoDlg);
- IniSectionSetInt(Settings_Section, L"OpenWithDlgSizeX", cxOpenWithDlg);
- IniSectionSetInt(Settings_Section, L"OpenWithDlgSizeY", cyOpenWithDlg);
- IniSectionSetInt(Settings_Section, L"CopyMoveDlgSizeX", cxCopyMoveDlg);
+ SAVE_STRING_IF_NOT_EQ_DEFAULT(L"Quikview.exe", szQuickviewParams);
+
+ PathRelativeToApp(Settings.tchOpenWithDir, wchTmp, COUNTOF(wchTmp), FALSE, TRUE, flagPortableMyDocs);
+ if (lstrcmp(wchTmp, Defaults.tchOpenWithDir) != 0) {
+ IniSectionSetString(Settings_Section, L"OpenWithDir", wchTmp);
+ }
+
+ SAVE_VALUE_IF_NOT_EQ_DEFAULT(Int, L"FillMask", dwFillMask);
+ SAVE_VALUE_IF_NOT_EQ_DEFAULT(Int, L"SortOptions", nSortFlags);
+ SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, L"SortReverse", fSortRev);
+ SAVE_STRING_IF_NOT_EQ_DEFAULT(L"FileFilter", tchFilter);
+ SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, L"NegativeFilter", bNegFilter);
+ SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, L"DefColorNoFilter", bDefCrNoFilt);
+ SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, L"DefColorFilter", bDefCrFilter);
+ SAVE_VALUE_IF_NOT_EQ_DEFAULT(Int, L"ColorNoFilter", crNoFilt);
+ SAVE_VALUE_IF_NOT_EQ_DEFAULT(Int, L"ColorFilter", crFilter);
+ SAVE_STRING_IF_NOT_EQ_DEFAULT(L"ToolbarButtons", tchToolbarButtons);
+ SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, L"ShowToolbar", bShowToolbar);
+ SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, L"ShowStatusbar", bShowStatusbar);
+ SAVE_VALUE_IF_NOT_EQ_DEFAULT(Bool, L"ShowDriveBox", bShowDriveBox);
+ SAVE_VALUE_IF_NOT_EQ_DEFAULT(Int, L"GotoDlgSizeX", cxGotoDlg);
+ SAVE_VALUE_IF_NOT_EQ_DEFAULT(Int, L"OpenWithDlgSizeX", cxOpenWithDlg);
+ SAVE_VALUE_IF_NOT_EQ_DEFAULT(Int, L"OpenWithDlgSizeY", cyOpenWithDlg);
+ SAVE_VALUE_IF_NOT_EQ_DEFAULT(Int, L"CopyMoveDlgSizeX", cxCopyMoveDlg);
+
+ // cleanup
+ IniSectionDelete(Settings_Section, L"WriteTest", FALSE);
/*
SaveSettingsNow(): query Window Dimensions
@@ -948,15 +924,15 @@ void SaveSettings(BOOL bSaveSettingsNow)
if (bSaveSettingsNow)
{
WINDOWPLACEMENT wndpl;
-
+ ZeroMemory(&wndpl, sizeof(WINDOWPLACEMENT));
// GetWindowPlacement
wndpl.length = sizeof(WINDOWPLACEMENT);
GetWindowPlacement(hwndMain, &wndpl);
- wi.x = wndpl.rcNormalPosition.left;
- wi.y = wndpl.rcNormalPosition.top;
- wi.cx = wndpl.rcNormalPosition.right - wndpl.rcNormalPosition.left;
- wi.cy = wndpl.rcNormalPosition.bottom - wndpl.rcNormalPosition.top;
+ Settings.wi.x = wndpl.rcNormalPosition.left;
+ Settings.wi.y = wndpl.rcNormalPosition.top;
+ Settings.wi.cx = wndpl.rcNormalPosition.right - wndpl.rcNormalPosition.left;
+ Settings.wi.cy = wndpl.rcNormalPosition.bottom - wndpl.rcNormalPosition.top;
}
WCHAR tchPosX[32], tchPosY[32], tchSizeX[32], tchSizeY[32], tchMaximized[32];
@@ -970,10 +946,10 @@ void SaveSettings(BOOL bSaveSettingsNow)
const WCHAR* const Windows_Section = L"Window";
- IniSectionSetInt(Windows_Section, tchPosX, wi.x);
- IniSectionSetInt(Windows_Section, tchPosY, wi.y);
- IniSectionSetInt(Windows_Section, tchSizeX, wi.cx);
- IniSectionSetInt(Windows_Section, tchSizeY, wi.cy);
+ IniSectionSetInt(Windows_Section, tchPosX, Settings.wi.x);
+ IniSectionSetInt(Windows_Section, tchPosY, Settings.wi.y);
+ IniSectionSetInt(Windows_Section, tchSizeX, Settings.wi.cx);
+ IniSectionSetInt(Windows_Section, tchSizeY, Settings.wi.cy);
SaveIniFile(g_wchIniFile);
}
diff --git a/minipath/src/Config.h b/minipath/src/Config.h
index 2f0df71ca..767a1301a 100644
--- a/minipath/src/Config.h
+++ b/minipath/src/Config.h
@@ -24,6 +24,7 @@ extern "C" {
//==== Ini-File Handling =============================================
+ void InitDefaultSettings();
void LoadSettings();
void SaveSettings(BOOL);
void LoadFlags();
diff --git a/minipath/src/Dialogs.c b/minipath/src/Dialogs.c
index f07e5acd1..e4c1e3023 100644
--- a/minipath/src/Dialogs.c
+++ b/minipath/src/Dialogs.c
@@ -41,9 +41,9 @@
//
// L"Title\nMessage Text"
//
-extern HWND hwndMain;
-extern LANGID g_iPrefLANGID;
-extern HICON g_hDlgIcon;
+extern HWND hwndMain;
+extern HICON g_hDlgIcon;
+extern LANGID g_iPrefLANGID;
int ErrorMessage(int iLevel, UINT uIdMsg, ...)
@@ -57,7 +57,7 @@ int ErrorMessage(int iLevel, UINT uIdMsg, ...)
return(0);
//int t = wvsprintf(szTitle,szText,(LPVOID)((PUINT_PTR)&uIdMsg + 1));
- int t = vswprintf_s(szTitle,COUNTOF(szTitle),szText,(LPVOID)((PUINT_PTR)&uIdMsg + 1));
+ int const t = clampi(vswprintf_s(szTitle,COUNTOF(szTitle),szText,(LPVOID)((PUINT_PTR)&uIdMsg + 1)), 0, 1023);
szTitle[t] = L'\0';
WCHAR* c = StrChr(szTitle,L'\n');
@@ -180,8 +180,6 @@ BOOL GetDirectory2(HWND hwndParent,int iTitle,LPWSTR pszFolder,int iBase)
}
-extern WCHAR szCurDir[MAX_PATH + 40];
-
//=============================================================================
//
// RunDlgProc()
@@ -316,7 +314,7 @@ INT_PTR CALLBACK RunDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
sei.lpVerb = NULL;
sei.lpFile = arg1;
sei.lpParameters = arg2;
- sei.lpDirectory = szCurDir;
+ sei.lpDirectory = Settings.szCurDir;
sei.nShow = SW_SHOWNORMAL;
if (ShellExecuteEx(&sei))
@@ -363,8 +361,8 @@ INT_PTR RunDlg(HWND hwnd)
// GotoDlgProc()
//
//
-extern HISTORY mHistory;
-extern int cxGotoDlg;
+
+extern HISTORY g_mHistory;
INT_PTR CALLBACK GotoDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
{
@@ -390,9 +388,9 @@ INT_PTR CALLBACK GotoDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
mmiPtMinX = rc.right-rc.left;
mmiPtMaxY = rc.bottom-rc.top;
- if (cxGotoDlg < (rc.right-rc.left))
- cxGotoDlg = rc.right-rc.left;
- SetWindowPos(hwnd,NULL,rc.left,rc.top,cxGotoDlg,rc.bottom-rc.top,SWP_NOZORDER);
+ if (Settings.cxGotoDlg < (rc.right-rc.left))
+ Settings.cxGotoDlg = rc.right-rc.left;
+ SetWindowPos(hwnd,NULL,rc.left,rc.top, Settings.cxGotoDlg,rc.bottom-rc.top,SWP_NOZORDER);
SetWindowLongPtr(hwnd,GWL_STYLE,GetWindowLongPtr(hwnd,GWL_STYLE)|WS_THICKFRAME);
SetWindowPos(hwnd,NULL,0,0,0,0,SWP_NOZORDER|SWP_NOMOVE|SWP_NOSIZE|SWP_FRAMECHANGED);
@@ -414,13 +412,13 @@ INT_PTR CALLBACK GotoDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
SendDlgItemMessage(hwnd,IDC_GOTO,CB_SETEXTENDEDUI,TRUE,0);
for (int i = 0; i < HISTORY_ITEMS; i++) {
- if (mHistory.psz[i]) {
+ if (g_mHistory.psz[i]) {
int iItem = (int)SendDlgItemMessage(hwnd,IDC_GOTO,
- CB_FINDSTRINGEXACT,(WPARAM)-1,(LPARAM)mHistory.psz[i]);
+ CB_FINDSTRINGEXACT,(WPARAM)-1,(LPARAM)g_mHistory.psz[i]);
if (iItem != LB_ERR)
SendDlgItemMessage(hwnd,IDC_GOTO,CB_DELETESTRING,iItem,0);
SendDlgItemMessage(hwnd,IDC_GOTO,CB_INSERTSTRING,0,
- (LPARAM)mHistory.psz[i]);
+ (LPARAM)g_mHistory.psz[i]);
}
}
@@ -438,7 +436,7 @@ INT_PTR CALLBACK GotoDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
{
RECT rc;
GetWindowRect(hwnd,&rc);
- cxGotoDlg = rc.right-rc.left;
+ Settings.cxGotoDlg = rc.right-rc.left;
}
return FALSE;
@@ -647,23 +645,6 @@ INT_PTR CALLBACK AboutDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
//
//
extern WCHAR g_wchIniFile[MAX_PATH];
-extern BOOL bSaveSettings;
-extern WCHAR szQuickview[MAX_PATH];
-extern WCHAR szQuickviewParams[MAX_PATH];
-extern WCHAR g_tchFavoritesDir[MAX_PATH];
-extern BOOL bNP3sFavoritesSettings;
-extern BOOL bClearReadOnly;
-extern BOOL bRenameOnCollision;
-extern BOOL bSingleClick;
-extern BOOL bTrackSelect;
-extern BOOL bFullRowSelect;
-extern BOOL bFocusEdit;
-extern BOOL bAlwaysOnTop;
-extern BOOL bMinimizeToTray;
-extern BOOL fUseRecycleBin;
-extern BOOL fNoConfirmDelete;
-extern int iStartupDir;
-extern int iEscFunction;
INT_PTR CALLBACK GeneralPageProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
{
@@ -676,28 +657,28 @@ INT_PTR CALLBACK GeneralPageProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam
if (g_hDlgIcon) { SendMessage(hwnd, WM_SETICON, ICON_SMALL, (LPARAM)g_hDlgIcon); }
if (StrIsNotEmpty(g_wchIniFile)) {
- if (bSaveSettings)
+ if (Settings.bSaveSettings)
CheckDlgButton(hwnd,IDC_SAVESETTINGS,BST_CHECKED);
}
else
EnableWindow(GetDlgItem(hwnd,IDC_SAVESETTINGS),FALSE);
- if (bSingleClick)
+ if (Settings.bSingleClick)
CheckDlgButton(hwnd,IDC_SINGLECLICK,BST_CHECKED);
- if (bTrackSelect)
+ if (Settings.bTrackSelect)
CheckDlgButton(hwnd,IDC_TRACKSELECT,BST_CHECKED);
- if (bFullRowSelect)
+ if (Settings.bFullRowSelect)
CheckDlgButton(hwnd,IDC_FULLROWSELECT,BST_CHECKED);
- if (bFocusEdit)
+ if (Settings.bFocusEdit)
CheckDlgButton(hwnd,IDC_FOCUSEDIT,BST_CHECKED);
- if (bAlwaysOnTop)
+ if (Settings.bAlwaysOnTop)
CheckDlgButton(hwnd,IDC_ALWAYSONTOP,BST_CHECKED);
- if (bMinimizeToTray)
+ if (Settings.bMinimizeToTray)
CheckDlgButton(hwnd,IDC_MINIMIZETOTRAY,BST_CHECKED);
if (IniFileGetInt(g_wchIniFile, L"Settings2", L"ReuseWindow", 1)) {
@@ -715,40 +696,40 @@ INT_PTR CALLBACK GeneralPageProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam
if (IsWindowEnabled(GetDlgItem(hwnd,IDC_SAVESETTINGS))) {
if (IsDlgButtonChecked(hwnd,IDC_SAVESETTINGS))
- bSaveSettings = 1;
+ Settings.bSaveSettings = 1;
else
- bSaveSettings = 0;
+ Settings.bSaveSettings = 0;
}
if (IsDlgButtonChecked(hwnd,IDC_SINGLECLICK))
- bSingleClick = 1;
+ Settings.bSingleClick = 1;
else
- bSingleClick = 0;
+ Settings.bSingleClick = 0;
if (IsDlgButtonChecked(hwnd,IDC_TRACKSELECT))
- bTrackSelect = 1;
+ Settings.bTrackSelect = 1;
else
- bTrackSelect = 0;
+ Settings.bTrackSelect = 0;
if (IsDlgButtonChecked(hwnd,IDC_FULLROWSELECT))
- bFullRowSelect = 1;
+ Settings.bFullRowSelect = 1;
else
- bFullRowSelect = 0;
+ Settings.bFullRowSelect = 0;
if (IsDlgButtonChecked(hwnd,IDC_FOCUSEDIT))
- bFocusEdit = 1;
+ Settings.bFocusEdit = 1;
else
- bFocusEdit = 0;
+ Settings.bFocusEdit = 0;
if (IsDlgButtonChecked(hwnd,IDC_ALWAYSONTOP))
- bAlwaysOnTop = 1;
+ Settings.bAlwaysOnTop = 1;
else
- bAlwaysOnTop = 0;
+ Settings.bAlwaysOnTop = 0;
if (IsDlgButtonChecked(hwnd,IDC_MINIMIZETOTRAY))
- bMinimizeToTray = 1;
+ Settings.bMinimizeToTray = 1;
else
- bMinimizeToTray = 0;
+ Settings.bMinimizeToTray = 0;
int const rw = IsDlgButtonChecked(hwnd, IDC_REUSEWINDOW) ? 1 : 0;
IniFileSetInt(g_wchIniFile, L"Settings2", L"ReuseWindow", rw);
@@ -782,22 +763,22 @@ INT_PTR CALLBACK AdvancedPageProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lPara
if (g_hDlgIcon) { SendMessage(hwnd, WM_SETICON, ICON_SMALL, (LPARAM)g_hDlgIcon); }
- if (bClearReadOnly)
+ if (Settings.bClearReadOnly)
CheckDlgButton(hwnd,IDC_CLEARREADONLY,BST_CHECKED);
- if (bRenameOnCollision)
+ if (Settings.bRenameOnCollision)
CheckDlgButton(hwnd,IDC_RENAMEONCOLLISION,BST_CHECKED);
- if (fUseRecycleBin)
+ if (Settings.fUseRecycleBin)
CheckDlgButton(hwnd,IDC_USERECYCLEBIN,BST_CHECKED);
- if (fNoConfirmDelete)
+ if (Settings.fNoConfirmDelete)
CheckDlgButton(hwnd,IDC_NOCONFIRMDELETE,BST_CHECKED);
- if (iStartupDir)
+ if (Settings.iStartupDir)
{
CheckDlgButton(hwnd,IDC_STARTUPDIR,BST_CHECKED);
- if (iStartupDir == 1)
+ if (Settings.iStartupDir == 1)
CheckRadioButton(hwnd,IDC_GOTOMRU,IDC_GOTOFAV,IDC_GOTOMRU);
else
CheckRadioButton(hwnd,IDC_GOTOMRU,IDC_GOTOFAV,IDC_GOTOFAV);
@@ -809,10 +790,10 @@ INT_PTR CALLBACK AdvancedPageProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lPara
EnableWindow(GetDlgItem(hwnd,IDC_GOTOFAV),FALSE);
}
- if (iEscFunction)
+ if (Settings.iEscFunction)
{
CheckDlgButton(hwnd,IDC_ESCFUNCTION,BST_CHECKED);
- if (iEscFunction == 1)
+ if (Settings.iEscFunction == 1)
CheckRadioButton(hwnd,IDC_ESCMIN,IDC_ESCEXIT,IDC_ESCMIN);
else
CheckRadioButton(hwnd,IDC_ESCMIN,IDC_ESCEXIT,IDC_ESCEXIT);
@@ -868,42 +849,42 @@ INT_PTR CALLBACK AdvancedPageProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lPara
case PSN_APPLY:
if (IsDlgButtonChecked(hwnd,IDC_CLEARREADONLY))
- bClearReadOnly = 1;
+ Settings.bClearReadOnly = 1;
else
- bClearReadOnly = 0;
+ Settings.bClearReadOnly = 0;
if (IsDlgButtonChecked(hwnd,IDC_RENAMEONCOLLISION))
- bRenameOnCollision = 1;
+ Settings.bRenameOnCollision = 1;
else
- bRenameOnCollision = 0;
+ Settings.bRenameOnCollision = 0;
if (IsDlgButtonChecked(hwnd,IDC_USERECYCLEBIN))
- fUseRecycleBin = 1;
+ Settings.fUseRecycleBin = 1;
else
- fUseRecycleBin = 0;
+ Settings.fUseRecycleBin = 0;
if (IsDlgButtonChecked(hwnd,IDC_NOCONFIRMDELETE))
- fNoConfirmDelete = 1;
+ Settings.fNoConfirmDelete = 1;
else
- fNoConfirmDelete = 0;
+ Settings.fNoConfirmDelete = 0;
if (IsDlgButtonChecked(hwnd,IDC_STARTUPDIR)) {
if (IsDlgButtonChecked(hwnd,IDC_GOTOMRU))
- iStartupDir = 1;
+ Settings.iStartupDir = 1;
else
- iStartupDir = 2;
+ Settings.iStartupDir = 2;
}
else
- iStartupDir = 0;
+ Settings.iStartupDir = 0;
if (IsDlgButtonChecked(hwnd,IDC_ESCFUNCTION)) {
if (IsDlgButtonChecked(hwnd,IDC_ESCMIN))
- iEscFunction = 1;
+ Settings.iEscFunction = 1;
else
- iEscFunction = 2;
+ Settings.iEscFunction = 2;
}
else
- iEscFunction = 0;
+ Settings.iEscFunction = 0;
SetWindowLongPtr(hwnd,DWLP_MSGRESULT,PSNRET_NOERROR);
@@ -923,11 +904,6 @@ INT_PTR CALLBACK AdvancedPageProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lPara
// ItemsPageProc
//
//
-extern BOOL bDefCrNoFilt;
-extern BOOL bDefCrFilter;
-extern COLORREF crNoFilt;
-extern COLORREF crFilter;
-extern COLORREF crCustom[16];
INT_PTR CALLBACK ItemsPageProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
{
@@ -950,11 +926,11 @@ INT_PTR CALLBACK ItemsPageProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
if (g_hDlgIcon) { SendMessage(hwnd, WM_SETICON, ICON_SMALL, (LPARAM)g_hDlgIcon); }
- m_bDefCrNoFilt = bDefCrNoFilt;
- m_bDefCrFilter = bDefCrFilter;
+ m_bDefCrNoFilt = Settings.bDefCrNoFilt;
+ m_bDefCrFilter = Settings.bDefCrFilter;
- m_crNoFilt = crNoFilt;
- m_crFilter = crFilter;
+ m_crNoFilt = Settings.crNoFilt;
+ m_crFilter = Settings.crFilter;
m_hbrNoFilt = CreateSolidBrush(m_crNoFilt);
m_hbrFilter = CreateSolidBrush(m_crFilter);
@@ -1024,7 +1000,7 @@ INT_PTR CALLBACK ItemsPageProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
cc.lStructSize = sizeof(CHOOSECOLOR);
cc.hwndOwner = hwnd;
cc.rgbResult = m_crNoFilt;
- cc.lpCustColors = crCustom;
+ cc.lpCustColors = Settings.crCustom;
cc.Flags = CC_RGBINIT | CC_SOLIDCOLOR;
if (ChooseColor(&cc)) {
@@ -1042,7 +1018,7 @@ INT_PTR CALLBACK ItemsPageProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
cc.lStructSize = sizeof(CHOOSECOLOR);
cc.hwndOwner = hwnd;
cc.rgbResult = m_crFilter;
- cc.lpCustColors = crCustom;
+ cc.lpCustColors = Settings.crCustom;
cc.Flags = CC_RGBINIT | CC_SOLIDCOLOR;
if (ChooseColor(&cc)) {
@@ -1065,11 +1041,11 @@ INT_PTR CALLBACK ItemsPageProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
case PSN_APPLY:
- bDefCrNoFilt = m_bDefCrNoFilt;
- bDefCrFilter = m_bDefCrFilter;
+ Settings.bDefCrNoFilt = m_bDefCrNoFilt;
+ Settings.bDefCrFilter = m_bDefCrFilter;
- crNoFilt = m_crNoFilt;
- crFilter = m_crFilter;
+ Settings.crNoFilt = m_crNoFilt;
+ Settings.crFilter = m_crFilter;
SetWindowLongPtr(hwnd,DWLP_MSGRESULT,PSNRET_NOERROR);
@@ -1116,18 +1092,18 @@ INT_PTR CALLBACK ProgPageProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
MakeBitmapButton(hwnd,IDC_BROWSE_Q,g_hInstance,IDB_OPEN);
MakeBitmapButton(hwnd,IDC_BROWSE_F,g_hInstance,IDB_OPEN);
- lstrcpy(tch,szQuickview);
+ lstrcpy(tch, Settings.szQuickview);
PathQuoteSpaces(tch);
- if (StrIsNotEmpty(szQuickviewParams)) {
+ if (StrIsNotEmpty(Settings.szQuickviewParams)) {
StrCatBuff(tch,L" ",COUNTOF(tch));
- StrCatBuff(tch,szQuickviewParams,COUNTOF(tch));
+ StrCatBuff(tch, Settings.szQuickviewParams,COUNTOF(tch));
}
SendDlgItemMessage(hwnd,IDC_QUICKVIEW,EM_LIMITTEXT,MAX_PATH - 2,0);
SetDlgItemText(hwnd,IDC_QUICKVIEW,tch);
SHAutoComplete(GetDlgItem(hwnd,IDC_QUICKVIEW),SHACF_FILESYSTEM);
SendDlgItemMessage(hwnd,IDC_FAVORITES,EM_LIMITTEXT,MAX_PATH - 2,0);
- SetDlgItemText(hwnd,IDC_FAVORITES,g_tchFavoritesDir);
+ SetDlgItemText(hwnd,IDC_FAVORITES, Settings.g_tchFavoritesDir);
SHAutoComplete(GetDlgItem(hwnd,IDC_FAVORITES),SHACF_FILESYSTEM);
}
return TRUE;
@@ -1215,23 +1191,23 @@ INT_PTR CALLBACK ProgPageProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
if (!GetDlgItemText(hwnd,IDC_QUICKVIEW,tch,MAX_PATH)) {
- GetSystemDirectory(szQuickview,MAX_PATH);
- PathAddBackslash(szQuickview);
- lstrcat(szQuickview,L"Viewers\\Quikview.exe");
- PathQuoteSpaces(szQuickview);
- lstrcpy(szQuickviewParams,L"");
+ GetSystemDirectory(Settings.szQuickview,MAX_PATH);
+ PathAddBackslash(Settings.szQuickview);
+ lstrcat(Settings.szQuickview,L"Viewers\\Quikview.exe");
+ PathQuoteSpaces(Settings.szQuickview);
+ lstrcpy(Settings.szQuickviewParams,L"");
}
else
- ExtractFirstArgument(tch,szQuickview,szQuickviewParams);
+ ExtractFirstArgument(tch, Settings.szQuickview, Settings.szQuickviewParams);
- lstrcpy(tch, g_tchFavoritesDir);
- if (!GetDlgItemText(hwnd, IDC_FAVORITES, g_tchFavoritesDir, MAX_PATH)) {
- GetDefaultFavoritesDir(g_tchFavoritesDir, COUNTOF(g_tchFavoritesDir));
+ lstrcpy(tch, Settings.g_tchFavoritesDir);
+ if (!GetDlgItemText(hwnd, IDC_FAVORITES, Settings.g_tchFavoritesDir, MAX_PATH)) {
+ GetDefaultFavoritesDir(Settings.g_tchFavoritesDir, COUNTOF(Settings.g_tchFavoritesDir));
}
else
- StrTrim(g_tchFavoritesDir,L" \"");
+ StrTrim(Settings.g_tchFavoritesDir,L" \"");
- if (lstrcmpi(tch, g_tchFavoritesDir) != 0) { bNP3sFavoritesSettings = FALSE; }
+ if (lstrcmpi(tch, Settings.g_tchFavoritesDir) != 0) { Settings.bNP3sFavoritesSettings = FALSE; }
SetWindowLongPtr(hwnd,DWLP_MSGRESULT,PSNRET_NOERROR);
@@ -1249,10 +1225,6 @@ INT_PTR CALLBACK ProgPageProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
//
//
extern HWND hwndStatus;
-extern int nIdFocus;
-
-extern WCHAR tchFilter[DL_FILTER_BUFSIZE];
-extern BOOL bNegFilter;
INT_PTR OptionsPropSheet(HWND hwnd,HINSTANCE hInstance)
{
@@ -1306,12 +1278,12 @@ INT_PTR OptionsPropSheet(HWND hwnd,HINSTANCE hInstance)
// Apply the results
if (nResult)
{
- if (bAlwaysOnTop)
+ if (Settings.bAlwaysOnTop)
SetWindowPos(hwnd,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
else
SetWindowPos(hwnd,HWND_NOTOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
- if (bTrackSelect)
+ if (Settings.bTrackSelect)
ListView_SetExtendedListViewStyleEx(hwndDirList,
LVS_EX_TRACKSELECT|LVS_EX_ONECLICKACTIVATE,
LVS_EX_TRACKSELECT|LVS_EX_ONECLICKACTIVATE);
@@ -1319,7 +1291,7 @@ INT_PTR OptionsPropSheet(HWND hwnd,HINSTANCE hInstance)
ListView_SetExtendedListViewStyleEx(hwndDirList,
LVS_EX_TRACKSELECT|LVS_EX_ONECLICKACTIVATE,0);
- if (bFullRowSelect) {
+ if (Settings.bFullRowSelect) {
ListView_SetExtendedListViewStyleEx(hwndDirList,
LVS_EX_FULLROWSELECT,
LVS_EX_FULLROWSELECT);
@@ -1333,12 +1305,12 @@ INT_PTR OptionsPropSheet(HWND hwnd,HINSTANCE hInstance)
SetTheme(hwndDirList,L"Listview");
}
- if (lstrcmp(tchFilter,L"*.*") || bNegFilter) {
- ListView_SetTextColor(hwndDirList,(bDefCrFilter) ? GetSysColor(COLOR_WINDOWTEXT) : crFilter);
+ if (lstrcmp(Settings.tchFilter,L"*.*") || Settings.bNegFilter) {
+ ListView_SetTextColor(hwndDirList,(Settings.bDefCrFilter) ? GetSysColor(COLOR_WINDOWTEXT) : Settings.crFilter);
ListView_RedrawItems(hwndDirList,0,ListView_GetItemCount(hwndDirList)-1);
}
else {
- ListView_SetTextColor(hwndDirList,(bDefCrNoFilt) ? GetSysColor(COLOR_WINDOWTEXT) : crNoFilt);
+ ListView_SetTextColor(hwndDirList,(Settings.bDefCrNoFilt) ? GetSysColor(COLOR_WINDOWTEXT) : Settings.crNoFilt);
ListView_RedrawItems(hwndDirList,0,ListView_GetItemCount(hwndDirList)-1);
}
@@ -1352,8 +1324,6 @@ INT_PTR OptionsPropSheet(HWND hwnd,HINSTANCE hInstance)
// GetFilterDlgProc()
//
//
-extern WCHAR tchFilter[DL_FILTER_BUFSIZE];
-extern BOOL bNegFilter;
static HWND s_hWnd = NULL;
static HMENU s_hMenu = NULL;
@@ -1389,10 +1359,10 @@ INT_PTR CALLBACK GetFilterDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lPara
MakeBitmapButton(hwnd,IDC_BROWSEFILTER,NULL,OBM_COMBO);
- SendDlgItemMessage(hwnd,IDC_FILTER,EM_LIMITTEXT,COUNTOF(tchFilter)-1,0);
- SetDlgItemText(hwnd,IDC_FILTER,tchFilter);
+ SendDlgItemMessage(hwnd,IDC_FILTER,EM_LIMITTEXT,COUNTOF(Settings.tchFilter)-1,0);
+ SetDlgItemText(hwnd,IDC_FILTER, Settings.tchFilter);
- CheckDlgButton(hwnd,IDC_NEGFILTER, DlgBtnChk(bNegFilter));
+ CheckDlgButton(hwnd,IDC_NEGFILTER, DlgBtnChk(Settings.bNegFilter));
CenterDlgInParent(hwnd);
}
@@ -1472,12 +1442,12 @@ INT_PTR CALLBACK GetFilterDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lPara
case IDOK:
- if (GetDlgItemText(hwnd,IDC_FILTER,tchFilter,COUNTOF(tchFilter)-1)) {
- bNegFilter = IsDlgButtonChecked(hwnd,IDC_NEGFILTER)?TRUE:FALSE;
+ if (GetDlgItemText(hwnd,IDC_FILTER, Settings.tchFilter,COUNTOF(Settings.tchFilter)-1)) {
+ Settings.bNegFilter = IsDlgButtonChecked(hwnd,IDC_NEGFILTER)?TRUE:FALSE;
}
else {
- lstrcpy(tchFilter,L"*.*");
- bNegFilter = FALSE;
+ lstrcpy(Settings.tchFilter,L"*.*");
+ Settings.bNegFilter = FALSE;
}
EndDialog(hwnd,IDOK);
break;
@@ -1510,12 +1480,12 @@ BOOL GetFilterDlg(HWND hwnd)
WCHAR tchOldFilter[DL_FILTER_BUFSIZE];
BOOL bOldNegFilter;
- lstrcpy(tchOldFilter,tchFilter);
- bOldNegFilter = bNegFilter;
+ lstrcpy(tchOldFilter, Settings.tchFilter);
+ bOldNegFilter = Settings.bNegFilter;
if (IDOK == ThemedDialogBox(g_hLngResContainer,MAKEINTRESOURCE(IDD_FILTER),hwnd,GetFilterDlgProc))
{
- if (!lstrcmpi(tchFilter,tchOldFilter) && (bOldNegFilter == bNegFilter))
+ if (!lstrcmpi(Settings.tchFilter,tchOldFilter) && (bOldNegFilter == Settings.bNegFilter))
return(FALSE); // Old and new filters are identical
else
return(TRUE);
@@ -1669,8 +1639,6 @@ BOOL RenameFileDlg(HWND hwnd)
// CopyMoveDlgProc()
//
//
-extern int cxCopyMoveDlg;
-
INT_PTR CALLBACK CopyMoveDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
{
@@ -1700,9 +1668,9 @@ INT_PTR CALLBACK CopyMoveDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam
mmiPtMinX = rc.right-rc.left;
mmiPtMaxY = rc.bottom-rc.top;
- if (cxCopyMoveDlg < (rc.right-rc.left))
- cxCopyMoveDlg = rc.right-rc.left;
- SetWindowPos(hwnd,NULL,rc.left,rc.top,cxCopyMoveDlg,rc.bottom-rc.top,SWP_NOZORDER);
+ if (Settings.cxCopyMoveDlg < (rc.right-rc.left))
+ Settings.cxCopyMoveDlg = rc.right-rc.left;
+ SetWindowPos(hwnd,NULL,rc.left,rc.top, Settings.cxCopyMoveDlg,rc.bottom-rc.top,SWP_NOZORDER);
SetWindowLongPtr(hwnd,GWL_STYLE,GetWindowLongPtr(hwnd,GWL_STYLE)|WS_THICKFRAME);
SetWindowPos(hwnd,NULL,0,0,0,0,SWP_NOZORDER|SWP_NOMOVE|SWP_NOSIZE|SWP_FRAMECHANGED);
@@ -1751,7 +1719,7 @@ INT_PTR CALLBACK CopyMoveDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam
{
RECT rc;
GetWindowRect(hwnd,&rc);
- cxCopyMoveDlg = rc.right-rc.left;
+ Settings.cxCopyMoveDlg = rc.right-rc.left;
DeleteBitmapButton(hwnd,IDC_BROWSEDESTINATION);
}
@@ -1903,7 +1871,7 @@ BOOL CopyMoveDlg(HWND hwnd,UINT *wFunc)
shfos.pFrom = tchSource;
shfos.pTo = tchDestination;
shfos.fFlags = FOF_NO_CONNECTED_ELEMENTS | FOF_ALLOWUNDO;
- if (shfos.wFunc == FO_COPY && bRenameOnCollision)
+ if (shfos.wFunc == FO_COPY && Settings.bRenameOnCollision)
shfos.fFlags |= FOF_RENAMEONCOLLISION;
// Save item
@@ -1930,7 +1898,7 @@ BOOL CopyMoveDlg(HWND hwnd,UINT *wFunc)
if (SHFileOperation(&shfos) == 0) // success
{
- if (bClearReadOnly)
+ if (Settings.bClearReadOnly)
{
DWORD dwFileAttributes = GetFileAttributes(tchDestination);
if (dwFileAttributes & FILE_ATTRIBUTE_READONLY)
@@ -1952,12 +1920,7 @@ BOOL CopyMoveDlg(HWND hwnd,UINT *wFunc)
}
-
-extern WCHAR tchOpenWithDir[MAX_PATH];
-extern int flagNoFadeHidden;
-
-extern int cxOpenWithDlg;
-extern int cyOpenWithDlg;
+extern int flagNoFadeHidden;
INT_PTR CALLBACK OpenWithDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
{
@@ -1985,11 +1948,11 @@ INT_PTR CALLBACK OpenWithDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam
mmiPtMinX = rc.right-rc.left;
mmiPtMaxY = rc.bottom-rc.top;
- if (cxOpenWithDlg < (rc.right-rc.left))
- cxOpenWithDlg = rc.right-rc.left;
- if (cyOpenWithDlg < (rc.bottom-rc.top))
- cyOpenWithDlg = rc.bottom-rc.top;
- SetWindowPos(hwnd,NULL,rc.left,rc.top,cxOpenWithDlg,cyOpenWithDlg,SWP_NOZORDER);
+ if (Settings.cxOpenWithDlg < (rc.right-rc.left))
+ Settings.cxOpenWithDlg = rc.right-rc.left;
+ if (Settings.cyOpenWithDlg < (rc.bottom-rc.top))
+ Settings.cyOpenWithDlg = rc.bottom-rc.top;
+ SetWindowPos(hwnd,NULL,rc.left,rc.top, Settings.cxOpenWithDlg, Settings.cyOpenWithDlg,SWP_NOZORDER);
SetWindowLongPtr(hwnd,GWL_STYLE,GetWindowLongPtr(hwnd,GWL_STYLE)|WS_THICKFRAME);
SetWindowPos(hwnd,NULL,0,0,0,0,SWP_NOZORDER|SWP_NOMOVE|SWP_NOSIZE|SWP_FRAMECHANGED);
@@ -2013,7 +1976,7 @@ INT_PTR CALLBACK OpenWithDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam
ListView_SetExtendedListViewStyle(GetDlgItem(hwnd,IDC_OPENWITHDIR),/*LVS_EX_FULLROWSELECT|*/LVS_EX_DOUBLEBUFFER|LVS_EX_LABELTIP);
ListView_InsertColumn(GetDlgItem(hwnd,IDC_OPENWITHDIR),0,&lvc);
DirList_Init(GetDlgItem(hwnd,IDC_OPENWITHDIR),NULL);
- DirList_Fill(GetDlgItem(hwnd,IDC_OPENWITHDIR),tchOpenWithDir,DL_ALLOBJECTS,NULL,FALSE,flagNoFadeHidden,DS_NAME,FALSE);
+ DirList_Fill(GetDlgItem(hwnd,IDC_OPENWITHDIR), Settings.tchOpenWithDir,DL_ALLOBJECTS,NULL,FALSE, flagNoFadeHidden,DS_NAME,FALSE);
DirList_StartIconThread(GetDlgItem(hwnd,IDC_OPENWITHDIR));
ListView_SetItemState(GetDlgItem(hwnd,IDC_OPENWITHDIR),0,LVIS_FOCUSED,LVIS_FOCUSED);
@@ -2032,8 +1995,8 @@ INT_PTR CALLBACK OpenWithDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam
DeleteBitmapButton(hwnd,IDC_GETOPENWITHDIR);
GetWindowRect(hwnd,&rc);
- cxOpenWithDlg = rc.right-rc.left;
- cyOpenWithDlg = rc.bottom-rc.top;
+ Settings.cxOpenWithDlg = rc.right-rc.left;
+ Settings.cyOpenWithDlg = rc.bottom-rc.top;
}
return FALSE;
@@ -2130,9 +2093,9 @@ INT_PTR CALLBACK OpenWithDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam
case IDC_GETOPENWITHDIR:
{
- if (GetDirectory(hwnd,IDS_OPENWITH,tchOpenWithDir,tchOpenWithDir,TRUE))
+ if (GetDirectory(hwnd,IDS_OPENWITH,Settings.tchOpenWithDir, Settings.tchOpenWithDir,TRUE))
{
- DirList_Fill(GetDlgItem(hwnd,IDC_OPENWITHDIR),tchOpenWithDir,DL_ALLOBJECTS,NULL,FALSE,flagNoFadeHidden,DS_NAME,FALSE);
+ DirList_Fill(GetDlgItem(hwnd,IDC_OPENWITHDIR), Settings.tchOpenWithDir,DL_ALLOBJECTS,NULL,FALSE,flagNoFadeHidden,DS_NAME,FALSE);
DirList_StartIconThread(GetDlgItem(hwnd,IDC_OPENWITHDIR));
ListView_EnsureVisible(GetDlgItem(hwnd,IDC_OPENWITHDIR),0,FALSE);
ListView_SetItemState(GetDlgItem(hwnd,IDC_OPENWITHDIR),0,LVIS_FOCUSED,LVIS_FOCUSED);
@@ -2208,7 +2171,7 @@ BOOL OpenWithDlg(HWND hwnd,LPDLITEM lpdliParam)
if (SHFileOperation(&shfos) == 0) // success
{
- if (bClearReadOnly)
+ if (Settings.bClearReadOnly)
{
DWORD dwFileAttributes = GetFileAttributes(szDestination);
if (dwFileAttributes & FILE_ATTRIBUTE_READONLY)
@@ -2234,7 +2197,7 @@ BOOL OpenWithDlg(HWND hwnd,LPDLITEM lpdliParam)
sei.lpVerb = NULL;
sei.lpFile = dliOpenWith.szFileName;
sei.lpParameters = szParam;
- sei.lpDirectory = szCurDir;
+ sei.lpDirectory = Settings.szCurDir;
sei.nShow = SW_SHOWNORMAL;
// resolve links and get short path name
@@ -2498,6 +2461,7 @@ extern WCHAR szDDEMsg[256];
extern WCHAR szDDEApp[256];
extern WCHAR szDDETopic[256];
+
INT_PTR CALLBACK FindTargetDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
{
@@ -2564,11 +2528,11 @@ INT_PTR CALLBACK FindTargetDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lPar
else
CheckRadioButton(hwnd,IDC_LAUNCH,IDC_TARGET,IDC_LAUNCH);
- lstrcpy(wch,szTargetApplication);
+ lstrcpy(wch, szTargetApplication);
PathQuoteSpaces(wch);
if (StrIsNotEmpty(szTargetApplicationParams)) {
StrCatBuff(wch,L" ",COUNTOF(wch));
- StrCatBuff(wch,szTargetApplicationParams,COUNTOF(wch));
+ StrCatBuff(wch, szTargetApplicationParams,COUNTOF(wch));
}
SetDlgItemText(hwnd,IDC_TARGETPATH,wch);
@@ -2578,11 +2542,11 @@ INT_PTR CALLBACK FindTargetDlgProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lPar
CheckRadioButton(hwnd,IDC_ALWAYSRUN,IDC_USEDDE,IDC_ALWAYSRUN + i);
}
- lstrcpy(szTargetWndClass,szTargetApplicationWndClass);
+ lstrcpy(szTargetWndClass, szTargetApplicationWndClass);
- SetDlgItemText(hwnd,IDC_DDEMSG,szDDEMsg);
- SetDlgItemText(hwnd,IDC_DDEAPP,szDDEApp);
- SetDlgItemText(hwnd,IDC_DDETOPIC,szDDETopic);
+ SetDlgItemText(hwnd,IDC_DDEMSG, szDDEMsg);
+ SetDlgItemText(hwnd,IDC_DDEAPP, szDDEApp);
+ SetDlgItemText(hwnd,IDC_DDETOPIC, szDDETopic);
CenterDlgInParent(hwnd);
diff --git a/minipath/src/Dlapi.h b/minipath/src/Dlapi.h
index 328889f1b..289de19d7 100644
--- a/minipath/src/Dlapi.h
+++ b/minipath/src/Dlapi.h
@@ -136,14 +136,15 @@ BOOL DirList_SelectItem(HWND,LPCWSTR,LPCWSTR);
//==== DlCreateFilter() and DlMatchFilter() ===================================
-#define DL_FILTER_BUFSIZE 128
+#define DL_FILTER_BUFSIZE 256
typedef struct tagDL_FILTER { //dlf
int nCount;
WCHAR tFilterBuf[DL_FILTER_BUFSIZE];
- WCHAR *pFilter [DL_FILTER_BUFSIZE];
+ WCHAR* pFilter[DL_FILTER_BUFSIZE];
BOOL bExcludeFilter;
-} DL_FILTER, *PDL_FILTER;
+} DL_FILTER, * PDL_FILTER;
+
void DirList_CreateFilter(PDL_FILTER,LPCWSTR,BOOL);
diff --git a/minipath/src/Helpers.c b/minipath/src/Helpers.c
index c542e6f9e..fe20433d3 100644
--- a/minipath/src/Helpers.c
+++ b/minipath/src/Helpers.c
@@ -24,6 +24,7 @@
#include
#include
#include
+#include "minipath.h"
#include "dlapi.h"
#include "config.h"
#include "resource.h"
@@ -1051,26 +1052,24 @@ void PathCanonicalizeEx(LPWSTR lpSrc)
//
// This Expansion also searches the L"Favorites" folder
//
-extern WCHAR g_tchFavoritesDir[MAX_PATH];
-extern WCHAR szCurDir[MAX_PATH];
BOOL SearchPathEx(LPCWSTR lpFileName, DWORD nBufferLength, LPWSTR lpBuffer) {
DWORD dwRetVal = 0;
if (StrEqual(lpFileName, L"..") || StrEqual(lpFileName, L".")) {
- if (StrEqual(lpFileName, L"..") && PathIsRoot(szCurDir)) {
+ if (StrEqual(lpFileName, L"..") && PathIsRoot(Settings.szCurDir)) {
lstrcpyn(lpBuffer, L"*.*", nBufferLength);
dwRetVal = 1;
}
}
if (!dwRetVal) {
- dwRetVal = SearchPath(szCurDir, lpFileName, NULL, nBufferLength, lpBuffer, NULL);
+ dwRetVal = SearchPath(Settings.szCurDir, lpFileName, NULL, nBufferLength, lpBuffer, NULL);
}
// Search Favorites if no result
if (!dwRetVal) {
- dwRetVal = SearchPath(g_tchFavoritesDir, lpFileName, NULL, nBufferLength, lpBuffer, NULL);
+ dwRetVal = SearchPath(Settings.g_tchFavoritesDir, lpFileName, NULL, nBufferLength, lpBuffer, NULL);
}
return dwRetVal != 0;
diff --git a/minipath/src/Helpers.h b/minipath/src/Helpers.h
index 7d8836b80..84aad927f 100644
--- a/minipath/src/Helpers.h
+++ b/minipath/src/Helpers.h
@@ -143,6 +143,7 @@ inline BOOL StrIsEmptyW(LPCWSTR s) { return ((s == NULL) || (*s == L'\0')); }
//==== History Functions ======================================================
#define HISTORY_ITEMS 50
+
typedef struct tagHISTORY
{
WCHAR *psz[HISTORY_ITEMS]; // Strings
diff --git a/minipath/src/minipath.c b/minipath/src/minipath.c
index 24397214b..5fe6bf13c 100644
--- a/minipath/src/minipath.c
+++ b/minipath/src/minipath.c
@@ -30,8 +30,20 @@
#include "minipath.h"
#include "resource.h"
+
+SETTINGS_T Settings;
+SETTINGS_T Defaults;
+
+WCHAR g_wchIniFile[MAX_PATH];
+WCHAR g_wchIniFile2[MAX_PATH];
+WCHAR g_wchNP3IniFile[MAX_PATH];
+
HICON g_hDlgIcon = NULL;
+WCHAR g_tchPrefLngLocName[LOCALE_NAME_MAX_LENGTH + 1];
+LANGID g_iPrefLANGID;
+
+
/******************************************************************************
*
* Local Variables for minipath.c
@@ -70,66 +82,19 @@ HWND hwndMain;
HANDLE hChangeHandle = NULL;
-HISTORY mHistory;
+HISTORY g_mHistory;
WCHAR g_wchIniFile[MAX_PATH] = L"";
WCHAR g_wchIniFile2[MAX_PATH] = L"";
WCHAR g_wchNP3IniFile[MAX_PATH] = L"";
-BOOL bSaveSettings;
-WCHAR szQuickview[MAX_PATH] = L"";
-WCHAR szQuickviewParams[MAX_PATH] = L"";
-WCHAR g_tchFavoritesDir[MAX_PATH] = L"";
-BOOL bNP3sFavoritesSettings = FALSE;
-WCHAR tchOpenWithDir[MAX_PATH] = L"";
-WCHAR tchToolbarButtons[512] = L"";
-WCHAR tchToolbarBitmap[MAX_PATH] = L"";
-WCHAR tchToolbarBitmapHot[MAX_PATH] = L"";
-WCHAR tchToolbarBitmapDisabled[MAX_PATH] = L"";
-BOOL bClearReadOnly;
-BOOL bRenameOnCollision;
-BOOL bSingleClick;
-BOOL bTrackSelect;
-BOOL bFullRowSelect;
-int iStartupDir;
-int iEscFunction;
-BOOL bFocusEdit;
-BOOL bAlwaysOnTop;
-BOOL g_bTransparentMode;
-BOOL bMinimizeToTray;
-BOOL fUseRecycleBin;
-BOOL fNoConfirmDelete;
-BOOL bShowToolbar;
-BOOL bShowStatusbar;
-BOOL bShowDriveBox;
-int cxGotoDlg;
-int cxOpenWithDlg;
-int cyOpenWithDlg;
-int cxCopyMoveDlg;
-
-WCHAR tchFilter[DL_FILTER_BUFSIZE];
-BOOL bNegFilter;
-BOOL bDefCrNoFilt;
-BOOL bDefCrFilter;
-COLORREF crNoFilt;
-COLORREF crFilter;
-COLORREF crCustom[16];
-
-WININFO wi;
-
+int nIdFocus = IDC_DIRLIST;
int cyReBar;
int cyReBarFrame;
int cyDriveBoxFrame;
-int nIdFocus = IDC_DIRLIST;
-
-WCHAR szCurDir[MAX_PATH + 40];
-DWORD dwFillMask;
-int nSortFlags;
-BOOL fSortRev;
-
-LPWSTR lpPathArg = NULL;
-LPWSTR lpFilterArg = NULL;
+LPWSTR lpPathArg = NULL;
+LPWSTR lpFilterArg = NULL;
UINT wFuncCopyMove = FO_COPY;
@@ -274,7 +239,6 @@ int WINAPI wWinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,LPWSTR lpCmdLine,int
HWND hwnd;
HACCEL hAcc;
- INITCOMMONCONTROLSEX icex;
// Set global variable g_hInstance
g_hInstance = hInstance;
@@ -290,6 +254,7 @@ int WINAPI wWinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,LPWSTR lpCmdLine,int
SetErrorMode(SEM_FAILCRITICALERRORS|SEM_NOOPENFILEERRORBOX);
// Command Line, Ini File and Flags
+ InitDefaultSettings();
ParseCommandLine();
FindIniFile();
TestIniFile();
@@ -302,6 +267,8 @@ int WINAPI wWinMain(HINSTANCE hInstance,HINSTANCE hPrevInst,LPWSTR lpCmdLine,int
// Init OLE and Common Controls
OleInitialize(NULL);
+ INITCOMMONCONTROLSEX icex;
+ ZeroMemory(&icex, sizeof(INITCOMMONCONTROLSEX));
icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
icex.dwICC = ICC_WIN95_CLASSES|ICC_COOL_CLASSES|ICC_BAR_CLASSES|ICC_USEREX_CLASSES;
InitCommonControlsEx(&icex);
@@ -430,11 +397,17 @@ HWND InitInstance(HINSTANCE hInstance,LPWSTR pszCmdLine,int nCmdShow)
{
UNUSED(pszCmdLine);
+ WININFO wi = Settings.wi;
+
RECT rc;
- rc.left = wi.x; rc.top = wi.y; rc.right = wi.x + wi.cx; rc.bottom = wi.y + wi.cy;
+ rc.left = wi.x;
+ rc.top = wi.y;
+ rc.right = wi.x + wi.cx;
+ rc.bottom = wi.y + wi.cy;
RECT rc2;
MONITORINFO mi;
+
HMONITOR hMonitor = MonitorFromRect(&rc,MONITOR_DEFAULTTONEAREST);
mi.cbSize = sizeof(mi);
GetMonitorInfo(hMonitor,&mi);
@@ -496,10 +469,10 @@ HWND InitInstance(HINSTANCE hInstance,LPWSTR pszCmdLine,int nCmdShow)
hInstance,
NULL);
- if (bAlwaysOnTop)
+ if (Settings.bAlwaysOnTop)
SetWindowPos(hwndMain,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
- if (g_bTransparentMode) {
+ if (Settings.g_bTransparentMode) {
int const iAlphaPercent = IniFileGetInt(g_wchIniFile, L"Settings2", L"OpacityLevel", 75);
SetWindowTransparentMode(hwndMain, TRUE, clampi(iAlphaPercent, 0, 100));
}
@@ -521,9 +494,9 @@ HWND InitInstance(HINSTANCE hInstance,LPWSTR pszCmdLine,int nCmdShow)
}
// Use a startup directory
- else if (iStartupDir)
+ else if (Settings.iStartupDir)
{
- if (iStartupDir == 1)
+ if (Settings.iStartupDir == 1)
{
WCHAR tch[MAX_PATH];
if (IniFileGetString(g_wchIniFile, L"Settings", L"MRUDirectory", L"", tch, COUNTOF(tch)))
@@ -532,17 +505,19 @@ HWND InitInstance(HINSTANCE hInstance,LPWSTR pszCmdLine,int nCmdShow)
ErrorMessage(2,IDS_ERR_STARTUPDIR);
}
else
- DisplayPath(g_tchFavoritesDir,IDS_ERR_STARTUPDIR);
+ DisplayPath(Settings.g_tchFavoritesDir,IDS_ERR_STARTUPDIR);
}
// Favorites
else if (flagGotoFavorites)
- DisplayPath(g_tchFavoritesDir,IDS_ERR_FAVORITES);
+ DisplayPath(Settings.g_tchFavoritesDir,IDS_ERR_FAVORITES);
// Update Dirlist
if (!ListView_GetItemCount(hwndDirList))
PostMessage(hwndMain,WM_COMMAND,MAKELONG(IDM_VIEW_UPDATE,1),0);
+ Settings.wi = wi;
+
return(hwndMain);
}
@@ -632,18 +607,18 @@ LRESULT CALLBACK MainWndProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
wndpl.length = sizeof(WINDOWPLACEMENT);
GetWindowPlacement(hwnd,&wndpl);
- wi.x = wndpl.rcNormalPosition.left;
- wi.y = wndpl.rcNormalPosition.top;
- wi.cx = wndpl.rcNormalPosition.right - wndpl.rcNormalPosition.left;
- wi.cy = wndpl.rcNormalPosition.bottom - wndpl.rcNormalPosition.top;
+ Settings.wi.x = wndpl.rcNormalPosition.left;
+ Settings.wi.y = wndpl.rcNormalPosition.top;
+ Settings.wi.cx = wndpl.rcNormalPosition.right - wndpl.rcNormalPosition.left;
+ Settings.wi.cy = wndpl.rcNormalPosition.bottom - wndpl.rcNormalPosition.top;
DirList_Destroy(hwndDirList);
DragAcceptFiles(hwnd,FALSE);
- History_Uninit(&mHistory);
+ History_Uninit(&g_mHistory);
// prepare save
- Toolbar_GetButtons(hwndToolbar, IDT_HISTORY_BACK, tchToolbarButtons, COUNTOF(tchToolbarButtons));
+ Toolbar_GetButtons(hwndToolbar, IDT_HISTORY_BACK, Settings.tchToolbarButtons, COUNTOF(Settings.tchToolbarButtons));
SaveSettings(FALSE);
@@ -665,12 +640,12 @@ LRESULT CALLBACK MainWndProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
{
LRESULT lret = DefWindowProc(hwnd,umsg,wParam,lParam);
- if (lstrcmp(tchFilter,L"*.*") || bNegFilter) {
- ListView_SetTextColor(hwndDirList,(bDefCrFilter) ? GetSysColor(COLOR_WINDOWTEXT) : crFilter);
+ if (lstrcmp(Settings.tchFilter,L"*.*") || Settings.bNegFilter) {
+ ListView_SetTextColor(hwndDirList,(Settings.bDefCrFilter) ? GetSysColor(COLOR_WINDOWTEXT) : Settings.crFilter);
ListView_RedrawItems(hwndDirList,0,ListView_GetItemCount(hwndDirList)-1);
}
else {
- ListView_SetTextColor(hwndDirList,(bDefCrNoFilt) ? GetSysColor(COLOR_WINDOWTEXT) : crNoFilt);
+ ListView_SetTextColor(hwndDirList,(Settings.bDefCrNoFilt) ? GetSysColor(COLOR_WINDOWTEXT) : Settings.crNoFilt);
ListView_RedrawItems(hwndDirList,0,ListView_GetItemCount(hwndDirList)-1);
}
@@ -733,7 +708,7 @@ LRESULT CALLBACK MainWndProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
case WM_SETFOCUS:
- SetFocus(GetDlgItem(hwnd,nIdFocus));
+ SetFocus(GetDlgItem(hwnd, nIdFocus));
break;
@@ -839,7 +814,7 @@ LRESULT CALLBACK MainWndProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
case SC_MINIMIZE:
case SC_MINIMIZE | 0x02:
ShowOwnedPopups(hwnd,FALSE);
- if (!bMinimizeToTray)
+ if (!Settings.bMinimizeToTray)
return DefWindowProc(hwnd,umsg,wParam,lParam);
else {
MinimizeWndToTray(hwnd);
@@ -854,12 +829,12 @@ LRESULT CALLBACK MainWndProc(HWND hwnd,UINT umsg,WPARAM wParam,LPARAM lParam)
}
case SC_ALWAYSONTOP:
- if (bAlwaysOnTop) {
- bAlwaysOnTop = 0;
+ if (Settings.bAlwaysOnTop) {
+ Settings.bAlwaysOnTop = 0;
SetWindowPos(hwnd,HWND_NOTOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
}
else {
- bAlwaysOnTop = 1;
+ Settings.bAlwaysOnTop = 1;
SetWindowPos(hwnd,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
}
break;
@@ -972,7 +947,7 @@ LRESULT MsgCreate(HWND hwnd,WPARAM wParam,LPARAM lParam)
SetWindowPos(hwndDirList,NULL,0,0,0,0,SWP_NOZORDER|SWP_NOMOVE|SWP_NOSIZE|SWP_FRAMECHANGED);
}
- if (bShowDriveBox)
+ if (Settings.bShowDriveBox)
dwDriveBoxStyle |= WS_VISIBLE;
hwndDriveBox = CreateWindowEx(
@@ -997,11 +972,11 @@ LRESULT MsgCreate(HWND hwnd,WPARAM wParam,LPARAM lParam)
ListView_SetExtendedListViewStyle(hwndDirList,LVS_EX_DOUBLEBUFFER|LVS_EX_LABELTIP);
ListView_InsertColumn(hwndDirList,0,&lvc);
DirList_Init(hwndDirList,NULL);
- if (bTrackSelect)
+ if (Settings.bTrackSelect)
ListView_SetExtendedListViewStyleEx(hwndDirList,
LVS_EX_TRACKSELECT|LVS_EX_ONECLICKACTIVATE,
LVS_EX_TRACKSELECT|LVS_EX_ONECLICKACTIVATE);
- if (bFullRowSelect) {
+ if (Settings.bFullRowSelect) {
ListView_SetExtendedListViewStyleEx(hwndDirList,
LVS_EX_FULLROWSELECT,
LVS_EX_FULLROWSELECT);
@@ -1012,8 +987,8 @@ LRESULT MsgCreate(HWND hwnd,WPARAM wParam,LPARAM lParam)
// Drag & Drop
DragAcceptFiles(hwnd,TRUE);
// History
- History_Init(&mHistory);
- History_UpdateToolbar(&mHistory,hwndToolbar,
+ History_Init(&g_mHistory);
+ History_UpdateToolbar(&g_mHistory,hwndToolbar,
IDT_HISTORY_BACK,IDT_HISTORY_FORWARD);
// ToolTip with Current Directory
ZeroMemory(&ti,sizeof(TOOLINFO));
@@ -1102,7 +1077,7 @@ void CreateBars(HWND hwnd,HINSTANCE hInstance)
WCHAR tchDesc[256];
WCHAR tchIndex[256];
- if (bShowToolbar)
+ if (Settings.bShowToolbar)
dwReBarStyle |= WS_VISIBLE;
hwndToolbar = CreateWindowEx(0,TOOLBARCLASSNAME,NULL,dwToolbarStyle,
@@ -1112,9 +1087,9 @@ void CreateBars(HWND hwnd,HINSTANCE hInstance)
// Add normal Toolbar Bitmap
hbmp = NULL;
- if (StrIsNotEmpty(tchToolbarBitmap))
+ if (StrIsNotEmpty(Settings.tchToolbarBitmap))
{
- hbmp = _LoadBitmapFile(tchToolbarBitmap);
+ hbmp = _LoadBitmapFile(Settings.tchToolbarBitmap);
}
if (hbmp) {
bExternalBitmap = TRUE;
@@ -1134,9 +1109,9 @@ void CreateBars(HWND hwnd,HINSTANCE hInstance)
// Optionally add hot Toolbar Bitmap
hbmp = NULL;
- if (StrIsNotEmpty(tchToolbarBitmapHot))
+ if (StrIsNotEmpty(Settings.tchToolbarBitmapHot))
{
- hbmp = _LoadBitmapFile(tchToolbarBitmapHot);
+ hbmp = _LoadBitmapFile(Settings.tchToolbarBitmapHot);
if (hbmp)
{
GetObject(hbmp,sizeof(BITMAP),&bmp);
@@ -1149,9 +1124,9 @@ void CreateBars(HWND hwnd,HINSTANCE hInstance)
// Optionally add disabled Toolbar Bitmap
hbmp = NULL;
- if (StrIsNotEmpty(tchToolbarBitmapDisabled))
+ if (StrIsNotEmpty(Settings.tchToolbarBitmapDisabled))
{
- hbmp = _LoadBitmapFile(tchToolbarBitmapDisabled);
+ hbmp = _LoadBitmapFile(Settings.tchToolbarBitmapDisabled);
if (hbmp)
{
GetObject(hbmp,sizeof(BITMAP),&bmp);
@@ -1218,12 +1193,12 @@ void CreateBars(HWND hwnd,HINSTANCE hInstance)
SendMessage(hwndToolbar,TB_ADDBUTTONS,NUMINITIALTOOLS,(LPARAM)tbbMainWnd);
//SendMessage(hwndToolbar,TB_SAVERESTORE,FALSE,(LPARAM)lptbsp);
- if (Toolbar_SetButtons(hwndToolbar,IDT_HISTORY_BACK,tchToolbarButtons,tbbMainWnd,COUNTOF(tbbMainWnd)) == 0)
+ if (Toolbar_SetButtons(hwndToolbar,IDT_HISTORY_BACK, Settings.tchToolbarButtons,tbbMainWnd,COUNTOF(tbbMainWnd)) == 0)
SendMessage(hwndToolbar,TB_ADDBUTTONS,NUMINITIALTOOLS,(LPARAM)tbbMainWnd);
SendMessage(hwndToolbar,TB_GETITEMRECT,0,(LPARAM)&rc);
//SendMessage(hwndToolbar,TB_SETINDENT,2,0);
- if (bShowStatusbar)
+ if (Settings.bShowStatusbar)
dwStatusbarStyle |= WS_VISIBLE;
hwndStatus = CreateStatusWindow(dwStatusbarStyle,NULL,hwnd,IDC_STATUSBAR);
@@ -1277,7 +1252,7 @@ void MsgThemeChanged(HWND hwnd,WPARAM wParam,LPARAM lParam)
if (IsVista() && bIsAppThemed) {
SetWindowLongPtr(hwndDirList,GWL_EXSTYLE,GetWindowLongPtr(hwndDirList,GWL_EXSTYLE) & ~WS_EX_CLIENTEDGE);
SetWindowPos(hwndDirList,NULL,0,0,0,0,SWP_NOZORDER|SWP_FRAMECHANGED|SWP_NOMOVE|SWP_NOSIZE);
- if (bFullRowSelect)
+ if (Settings.bFullRowSelect)
SetTheme(hwndDirList,L"Explorer");
else
SetTheme(hwndDirList,L"Listview");
@@ -1293,7 +1268,7 @@ void MsgThemeChanged(HWND hwnd,WPARAM wParam,LPARAM lParam)
SendMessage(hwndStatus,SB_GETTEXT,ID_FILEINFO,(LPARAM)chStatus);
// recreate toolbar and statusbar
- Toolbar_GetButtons(hwndToolbar,IDT_HISTORY_BACK,tchToolbarButtons,COUNTOF(tchToolbarButtons));
+ Toolbar_GetButtons(hwndToolbar,IDT_HISTORY_BACK, Settings.tchToolbarButtons,COUNTOF(Settings.tchToolbarButtons));
DestroyWindow(hwndToolbar);
DestroyWindow(hwndReBar);
@@ -1334,7 +1309,7 @@ void MsgSize(HWND hwnd,WPARAM wParam,LPARAM lParam)
cx = LOWORD(lParam);
cy = HIWORD(lParam);
- if (bShowToolbar)
+ if (Settings.bShowToolbar)
{
/* SendMessage(hwndToolbar,WM_SIZE,0,0);
GetWindowRect(hwndToolbar,&rc);
@@ -1353,7 +1328,7 @@ void MsgSize(HWND hwnd,WPARAM wParam,LPARAM lParam)
cy -= cyReBar + cyReBarFrame; // border
}
- if (bShowStatusbar)
+ if (Settings.bShowStatusbar)
{
SendMessage(hwndStatus,WM_SIZE,0,0);
GetWindowRect(hwndStatus,&rc);
@@ -1365,7 +1340,7 @@ void MsgSize(HWND hwnd,WPARAM wParam,LPARAM lParam)
DeferWindowPos(hdwp,hwndDriveBox,NULL,x,y,cx,max(cy,100),
SWP_NOZORDER | SWP_NOACTIVATE);
- if (bShowDriveBox) {
+ if (Settings.bShowDriveBox) {
GetWindowRect(hwndDriveBox,&rc);
y += (rc.bottom - rc.top) + cyDriveBoxFrame;
cy -= (rc.bottom - rc.top) + cyDriveBoxFrame;
@@ -1417,23 +1392,23 @@ void MsgInitMenu(HWND hwnd,WPARAM wParam,LPARAM lParam)
i = (SendMessage(hwndDriveBox,CB_GETCURSEL,0,0) != CB_ERR);
EnableCmd(hmenu,IDM_FILE_DRIVEPROP,i);
- CheckCmd(hmenu,IDM_VIEW_FOLDERS,(dwFillMask & DL_FOLDERS));
- CheckCmd(hmenu,IDM_VIEW_FILES,(dwFillMask & DL_NONFOLDERS));
- CheckCmd(hmenu,IDM_VIEW_HIDDEN,(dwFillMask & DL_INCLHIDDEN));
+ CheckCmd(hmenu,IDM_VIEW_FOLDERS,(Settings.dwFillMask & DL_FOLDERS));
+ CheckCmd(hmenu,IDM_VIEW_FILES,(Settings.dwFillMask & DL_NONFOLDERS));
+ CheckCmd(hmenu,IDM_VIEW_HIDDEN,(Settings.dwFillMask & DL_INCLHIDDEN));
- EnableCmd(hmenu,IDM_VIEW_FILTERALL,(lstrcmp(tchFilter,L"*.*") || bNegFilter));
+ EnableCmd(hmenu,IDM_VIEW_FILTERALL,(lstrcmp(Settings.tchFilter,L"*.*") || Settings.bNegFilter));
- CheckCmd(hmenu,IDM_VIEW_TOOLBAR,bShowToolbar);
- EnableCmd(hmenu,IDM_VIEW_CUSTOMIZETB,bShowToolbar);
- CheckCmd(hmenu,IDM_VIEW_STATUSBAR,bShowStatusbar);
- CheckCmd(hmenu,IDM_VIEW_DRIVEBOX,bShowDriveBox);
+ CheckCmd(hmenu,IDM_VIEW_TOOLBAR, Settings.bShowToolbar);
+ EnableCmd(hmenu,IDM_VIEW_CUSTOMIZETB, Settings.bShowToolbar);
+ CheckCmd(hmenu,IDM_VIEW_STATUSBAR, Settings.bShowStatusbar);
+ CheckCmd(hmenu,IDM_VIEW_DRIVEBOX, Settings.bShowDriveBox);
CheckMenuRadioItem(hmenu,IDM_SORT_NAME,IDM_SORT_DATE,
- IDM_SORT_NAME + nSortFlags,MF_BYCOMMAND);
+ IDM_SORT_NAME + Settings.nSortFlags,MF_BYCOMMAND);
- CheckCmd(hmenu,IDM_SORT_REVERSE,fSortRev);
+ CheckCmd(hmenu,IDM_SORT_REVERSE, Settings.fSortRev);
- CheckCmd(hmenu,SC_ALWAYSONTOP,bAlwaysOnTop);
+ CheckCmd(hmenu,SC_ALWAYSONTOP, Settings.bAlwaysOnTop);
i = (StrIsNotEmpty(g_wchIniFile) || StrIsNotEmpty(g_wchIniFile2));
EnableCmd(hmenu,IDM_VIEW_SAVESETTINGS,i);
@@ -1469,12 +1444,12 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam)
WCHAR tch[64];
if (DriveBox_GetSelDrive(hwndDriveBox,tch,COUNTOF(tch),TRUE)
- && !PathIsSameRoot(szCurDir,tch))
+ && !PathIsSameRoot(Settings.szCurDir,tch))
{
if (!ChangeDirectory(hwnd,tch,1))
{
ErrorMessage(2,IDS_ERR_CD);
- DriveBox_SelectDrive(hwndDriveBox,szCurDir);
+ DriveBox_SelectDrive(hwndDriveBox, Settings.szCurDir);
}
}
SetFocus(hwndDirList);
@@ -1600,7 +1575,7 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam)
sei.lpVerb = NULL;
sei.lpFile = dli.szFileName;
sei.lpParameters = NULL;
- sei.lpDirectory = szCurDir;
+ sei.lpDirectory = Settings.szCurDir;
sei.nShow = SW_SHOWNORMAL;
ShellExecuteEx(&sei);
@@ -1630,8 +1605,8 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam)
else
GetShortPathName(dli.szFileName,szTmp,COUNTOF(szTmp));
- if (StrIsNotEmpty(szQuickviewParams)) {
- StrCatBuff(szParam,szQuickviewParams,COUNTOF(szParam));
+ if (StrIsNotEmpty(Settings.szQuickviewParams)) {
+ StrCatBuff(szParam, Settings.szQuickviewParams,COUNTOF(szParam));
StrCatBuff(szParam,L" ",COUNTOF(szParam));
}
StrCatBuff(szParam,szTmp,COUNTOF(szParam));
@@ -1641,9 +1616,9 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam)
sei.fMask = 0;
sei.hwnd = hwnd;
sei.lpVerb = NULL;
- sei.lpFile = szQuickview;
+ sei.lpFile = Settings.szQuickview;
sei.lpParameters = szParam;
- sei.lpDirectory = szCurDir;
+ sei.lpDirectory = Settings.szCurDir;
sei.nShow = SW_SHOWNORMAL;
ShellExecuteEx(&sei);
@@ -1697,7 +1672,7 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam)
ofn.lpstrFile = szNewFile;
ofn.nMaxFile = MAX_PATH;
ofn.lpstrTitle = szTitle;
- ofn.lpstrInitialDir = szCurDir;
+ ofn.lpstrInitialDir = Settings.szCurDir;
ofn.Flags = OFN_HIDEREADONLY | OFN_NOCHANGEDIR | OFN_DONTADDTORECENT |
OFN_NODEREFERENCELINKS | OFN_OVERWRITEPROMPT |
OFN_PATHMUSTEXIST;
@@ -1816,7 +1791,7 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam)
if (!bSuccess)
ErrorMessage(2,IDS_ERR_SAVEAS1,dli.szDisplayName);
- if (bSuccess && bClearReadOnly)
+ if (bSuccess && Settings.bClearReadOnly)
{
DWORD dwFileAttributes = GetFileAttributes(szNewFile);
if (dwFileAttributes & FILE_ATTRIBUTE_READONLY)
@@ -1862,9 +1837,9 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam)
shfos.wFunc = FO_DELETE;
shfos.pFrom = tch;
shfos.pTo = NULL;
- if (fUseRecycleBin && (LOWORD(wParam) != IDM_FILE_DELETE2))
+ if (Settings.fUseRecycleBin && (LOWORD(wParam) != IDM_FILE_DELETE2))
shfos.fFlags = FOF_ALLOWUNDO;
- if (fNoConfirmDelete || LOWORD(wParam) == IDM_FILE_DELETE3)
+ if (Settings.fNoConfirmDelete || LOWORD(wParam) == IDM_FILE_DELETE3)
shfos.fFlags |= FOF_NOCONFIRMATION;
SHFileOperation(&shfos);
@@ -1936,7 +1911,7 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam)
GetModuleFileName(NULL,szModuleName,COUNTOF(szModuleName));
- lstrcpy(szParameters,szCurDir);
+ lstrcpy(szParameters, Settings.szCurDir);
PathQuoteSpaces(szParameters);
lstrcat(szParameters,L" -f");
@@ -1978,30 +1953,30 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam)
case IDM_VIEW_FOLDERS:
- if (dwFillMask & DL_FOLDERS)
- dwFillMask &= (~DL_FOLDERS);
+ if (Settings.dwFillMask & DL_FOLDERS)
+ Settings.dwFillMask &= (~DL_FOLDERS);
else
- dwFillMask |= DL_FOLDERS;
+ Settings.dwFillMask |= DL_FOLDERS;
SendMessage(hwnd,WM_COMMAND,MAKELONG(IDM_VIEW_UPDATE,1),0);
ListView_EnsureVisible(hwndDirList,0,FALSE); // not done by update
break;
case IDM_VIEW_FILES:
- if (dwFillMask & DL_NONFOLDERS)
- dwFillMask &= (~DL_NONFOLDERS);
+ if (Settings.dwFillMask & DL_NONFOLDERS)
+ Settings.dwFillMask &= (~DL_NONFOLDERS);
else
- dwFillMask |= DL_NONFOLDERS;
+ Settings.dwFillMask |= DL_NONFOLDERS;
SendMessage(hwnd,WM_COMMAND,MAKELONG(IDM_VIEW_UPDATE,1),0);
ListView_EnsureVisible(hwndDirList,0,FALSE); // not done by update
break;
case IDM_VIEW_HIDDEN:
- if (dwFillMask & DL_INCLHIDDEN)
- dwFillMask &= (~DL_INCLHIDDEN);
+ if (Settings.dwFillMask & DL_INCLHIDDEN)
+ Settings.dwFillMask &= (~DL_INCLHIDDEN);
else
- dwFillMask |= DL_INCLHIDDEN;
+ Settings.dwFillMask |= DL_INCLHIDDEN;
SendMessage(hwnd,WM_COMMAND,MAKELONG(IDM_VIEW_UPDATE,1),0);
ListView_EnsureVisible(hwndDirList,0,FALSE); // not done by update
break;
@@ -2023,16 +1998,16 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam)
}
}
Toolbar_SetButtonImage(hwndToolbar,IDT_VIEW_FILTER,
- (lstrcmp(tchFilter,L"*.*") || bNegFilter) ? TBFILTERBMP : TBFILTERBMP+1);
+ (lstrcmp(Settings.tchFilter,L"*.*") || Settings.bNegFilter) ? TBFILTERBMP : TBFILTERBMP+1);
break;
case IDM_VIEW_FILTERALL:
- if (lstrcmp(tchFilter,L"*.*") || bNegFilter) {
+ if (lstrcmp(Settings.tchFilter,L"*.*") || Settings.bNegFilter) {
DLITEM dli;
- lstrcpy(tchFilter,L"*.*");
- bNegFilter = FALSE;
+ lstrcpy(Settings.tchFilter,L"*.*");
+ Settings.bNegFilter = FALSE;
// Store information about currently selected item
dli.mask = DLI_ALL;
@@ -2057,7 +2032,7 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam)
case IDM_VIEW_FAVORITES:
// Goto Favorites Directory
- DisplayPath(g_tchFavoritesDir,IDS_ERR_FAVORITES);
+ DisplayPath(Settings.g_tchFavoritesDir,IDS_ERR_FAVORITES);
break;
@@ -2068,7 +2043,7 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam)
sei.fMask = 0;
sei.hwnd = hwnd;
sei.lpVerb = NULL;
- sei.lpFile = g_tchFavoritesDir;
+ sei.lpFile = Settings.g_tchFavoritesDir;
sei.lpParameters = NULL;
sei.lpDirectory = NULL;
sei.nShow = SW_SHOWNORMAL;
@@ -2080,13 +2055,13 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam)
case IDM_VIEW_TOOLBAR:
- if (bShowToolbar) {
+ if (Settings.bShowToolbar) {
ShowWindow(hwndReBar,SW_HIDE);
- bShowToolbar = 0;
+ Settings.bShowToolbar = 0;
}
else {
ShowWindow(hwndReBar,SW_SHOW);
- bShowToolbar = 1;
+ Settings.bShowToolbar = 1;
}
SendWMSize(hwnd);
break;
@@ -2098,28 +2073,28 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam)
case IDM_VIEW_STATUSBAR:
- if (bShowStatusbar) {
+ if (Settings.bShowStatusbar) {
ShowWindow(hwndStatus,SW_HIDE);
- bShowStatusbar = 0;
+ Settings.bShowStatusbar = 0;
}
else {
ShowWindow(hwndStatus,SW_SHOW);
- bShowStatusbar = 1;
+ Settings.bShowStatusbar = 1;
}
SendWMSize(hwnd);
break;
case IDM_VIEW_DRIVEBOX:
- if (bShowDriveBox) {
+ if (Settings.bShowDriveBox) {
ShowWindow(hwndDriveBox,SW_HIDE);
- bShowDriveBox = 0;
+ Settings.bShowDriveBox = 0;
if (GetDlgCtrlID(GetFocus()) == IDC_DRIVEBOX)
SetFocus(hwndDirList);
}
else {
ShowWindow(hwndDriveBox,SW_SHOW);
- bShowDriveBox = 1;
+ Settings.bShowDriveBox = 1;
}
SendWMSize(hwnd);
break;
@@ -2147,18 +2122,20 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam)
if (IniFileSetString(g_wchIniFile, L"Settings", L"WriteTest", L"ok"))
{
// prepare save
- Toolbar_GetButtons(hwndToolbar, IDT_HISTORY_BACK, tchToolbarButtons, COUNTOF(tchToolbarButtons));
+ Toolbar_GetButtons(hwndToolbar, IDT_HISTORY_BACK, Settings.tchToolbarButtons, COUNTOF(Settings.tchToolbarButtons));
BeginWaitCursor();
SaveSettings(TRUE);
EndWaitCursor();
ErrorMessage(0,IDS_SAVESETTINGS);
}
- else
- ErrorMessage(2,IDS_ERR_INIWRITE);
+ else {
+ ErrorMessage(2, IDS_ERR_INIWRITE);
+ }
+ }
+ else {
+ ErrorMessage(2, IDS_ERR_INICREATE);
}
- else
- ErrorMessage(2,IDS_ERR_INICREATE);
}
break;
@@ -2170,37 +2147,37 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam)
case IDM_VIEW_OPTIONS:
OptionsPropSheet(hwnd, g_hLngResContainer);
- bHasQuickview = PathFileExists(szQuickview);
+ bHasQuickview = PathFileExists(Settings.szQuickview);
break;
case IDM_SORT_NAME:
- nSortFlags = DS_NAME;
- DirList_Sort(hwndDirList,nSortFlags,fSortRev);
+ Settings.nSortFlags = DS_NAME;
+ DirList_Sort(hwndDirList, Settings.nSortFlags, Settings.fSortRev);
break;
case IDM_SORT_SIZE:
- nSortFlags = DS_SIZE;
- DirList_Sort(hwndDirList,nSortFlags,fSortRev);
+ Settings.nSortFlags = DS_SIZE;
+ DirList_Sort(hwndDirList, Settings.nSortFlags, Settings.fSortRev);
break;
case IDM_SORT_TYPE:
- nSortFlags = DS_TYPE;
- DirList_Sort(hwndDirList,nSortFlags,fSortRev);
+ Settings.nSortFlags = DS_TYPE;
+ DirList_Sort(hwndDirList, Settings.nSortFlags, Settings.fSortRev);
break;
case IDM_SORT_DATE:
- nSortFlags = DS_LASTMOD;
- DirList_Sort(hwndDirList,nSortFlags,fSortRev);
+ Settings.nSortFlags = DS_LASTMOD;
+ DirList_Sort(hwndDirList, Settings.nSortFlags, Settings.fSortRev);
break;
case IDM_SORT_REVERSE:
- fSortRev = !fSortRev;
- DirList_Sort(hwndDirList,nSortFlags,fSortRev);
+ Settings.fSortRev = !Settings.fSortRev;
+ DirList_Sort(hwndDirList, Settings.nSortFlags, Settings.fSortRev);
break;
@@ -2232,9 +2209,9 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam)
case ACC_ESCAPE:
if (SendMessage(hwndDriveBox,CB_GETDROPPEDSTATE,0,0))
SendMessage(hwndDriveBox,CB_SHOWDROPDOWN,0,0);
- else if (iEscFunction == 1)
+ else if (Settings.iEscFunction == 1)
SendMessage(hwnd,WM_SYSCOMMAND,SC_MINIMIZE,0);
- else if (iEscFunction == 2)
+ else if (Settings.iEscFunction == 2)
PostMessage(hwnd,WM_CLOSE,0,0);
break;
@@ -2256,7 +2233,7 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam)
nId = IDC_DIRLIST;
}
- if (nId == IDC_DRIVEBOX && !bShowDriveBox)
+ if (nId == IDC_DRIVEBOX && !Settings.bShowDriveBox)
nId = IDC_DIRLIST;
SetFocus(GetDlgItem(hwnd,nId));
@@ -2266,17 +2243,17 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam)
case ACC_TOGGLE_FOCUSEDIT:
- if (bFocusEdit)
- bFocusEdit = 0;
+ if (Settings.bFocusEdit)
+ Settings.bFocusEdit = 0;
else
- bFocusEdit = 1;
+ Settings.bFocusEdit = 1;
break;
case ACC_SWITCHTRANSPARENCY:
- g_bTransparentMode = !g_bTransparentMode;
+ Settings.g_bTransparentMode = !Settings.g_bTransparentMode;
int const iAlphaPercent = IniFileGetInt(g_wchIniFile, L"Settings2", L"OpacityLevel", 75);
- SetWindowTransparentMode(hwndMain, g_bTransparentMode, clampi(iAlphaPercent, 0, 100));
+ SetWindowTransparentMode(hwndMain, Settings.g_bTransparentMode, clampi(iAlphaPercent, 0, 100));
break;
@@ -2342,38 +2319,38 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam)
case IDT_HISTORY_BACK:
- if (History_CanBack(&mHistory))
+ if (History_CanBack(&g_mHistory))
{
WCHAR tch[MAX_PATH];
- History_Back(&mHistory,tch,COUNTOF(tch));
+ History_Back(&g_mHistory,tch,COUNTOF(tch));
if (!ChangeDirectory(hwnd,tch,0))
ErrorMessage(2,IDS_ERR_CD);
}
else
MessageBeep(0);
- History_UpdateToolbar(&mHistory,hwndToolbar,
+ History_UpdateToolbar(&g_mHistory,hwndToolbar,
IDT_HISTORY_BACK,IDT_HISTORY_FORWARD);
break;
case IDT_HISTORY_FORWARD:
- if (History_CanForward(&mHistory))
+ if (History_CanForward(&g_mHistory))
{
WCHAR tch[MAX_PATH];
- History_Forward(&mHistory,tch,COUNTOF(tch));
+ History_Forward(&g_mHistory,tch,COUNTOF(tch));
if (!ChangeDirectory(hwnd,tch,0))
ErrorMessage(2,IDS_ERR_CD);
}
else
MessageBeep(0);
- History_UpdateToolbar(&mHistory,hwndToolbar,
+ History_UpdateToolbar(&g_mHistory,hwndToolbar,
IDT_HISTORY_BACK,IDT_HISTORY_FORWARD);
break;
case IDT_UPDIR:
{
- if (!PathIsRoot(szCurDir))
+ if (!PathIsRoot(Settings.szCurDir))
{
if (!ChangeDirectory(hwnd,L"..",1))
ErrorMessage(2,IDS_ERR_CD);
@@ -2386,7 +2363,7 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam)
case IDT_ROOT:
{
- if (!PathIsRoot(szCurDir))
+ if (!PathIsRoot(Settings.szCurDir))
{
if (!ChangeDirectory(hwnd,L"\\",1))
ErrorMessage(2,IDS_ERR_CD);
@@ -2512,10 +2489,10 @@ LRESULT MsgCommand(HWND hwnd,WPARAM wParam,LPARAM lParam)
case IDT_FILE_DELETE:
if (ListView_GetSelectedCount(hwndDirList)) {
- BOOL fUseRecycleBin2 = fUseRecycleBin;
- fUseRecycleBin = 1;
+ BOOL const fUseRecycleBin2 = Settings.fUseRecycleBin;
+ Settings.fUseRecycleBin = 1;
SendMessage(hwnd,WM_COMMAND,MAKELONG(IDM_FILE_DELETE,1),0);
- fUseRecycleBin = fUseRecycleBin2;
+ Settings.fUseRecycleBin = fUseRecycleBin2;
}
else
MessageBeep(0);
@@ -2628,7 +2605,7 @@ LRESULT MsgNotify(HWND hwnd,WPARAM wParam,LPARAM lParam)
{
wsprintf(tchnum,L"%u",ListView_GetItemCount(hwndDirList));
FormatNumberStr(tchnum);
- FormatLngStringW(tch,COUNTOF(tch),(lstrcmp(tchFilter,L"*.*") || bNegFilter)?IDS_NUMFILES2:IDS_NUMFILES,tchnum);
+ FormatLngStringW(tch,COUNTOF(tch),(lstrcmp(Settings.tchFilter,L"*.*") || Settings.bNegFilter)?IDS_NUMFILES2:IDS_NUMFILES,tchnum);
}
StatusSetText(hwndStatus,ID_FILEINFO,tch);
@@ -2639,7 +2616,7 @@ LRESULT MsgNotify(HWND hwnd,WPARAM wParam,LPARAM lParam)
case NM_CLICK:
- if (bSingleClick && ListView_GetSelectedCount(hwndDirList))
+ if (Settings.bSingleClick && ListView_GetSelectedCount(hwndDirList))
{
if (IsKeyDown(VK_MENU))
SendMessage(hwnd,WM_COMMAND,MAKELONG(IDM_FILE_PROPERTIES,1),0);
@@ -2688,10 +2665,10 @@ LRESULT MsgNotify(HWND hwnd,WPARAM wParam,LPARAM lParam)
{
case TBN_ENDADJUST:
- History_UpdateToolbar(&mHistory,hwndToolbar,
+ History_UpdateToolbar(&g_mHistory,hwndToolbar,
IDT_HISTORY_BACK,IDT_HISTORY_FORWARD);
Toolbar_SetButtonImage(hwndToolbar,IDT_VIEW_FILTER,
- (lstrcmp(tchFilter,L"*.*") || bNegFilter) ? TBFILTERBMP : TBFILTERBMP+1);
+ (lstrcmp(Settings.tchFilter,L"*.*") || Settings.bNegFilter) ? TBFILTERBMP : TBFILTERBMP+1);
break;
case TBN_QUERYDELETE:
@@ -2736,7 +2713,7 @@ LRESULT MsgNotify(HWND hwnd,WPARAM wParam,LPARAM lParam)
if (((LPTOOLTIPTEXT)lParam)->uFlags & TTF_IDISHWND)
{
- PathCompactPathEx(((LPTOOLTIPTEXT)lParam)->szText,szCurDir,
+ PathCompactPathEx(((LPTOOLTIPTEXT)lParam)->szText, Settings.szCurDir,
COUNTOF(((LPTOOLTIPTEXT)lParam)->szText),0);
}
@@ -2796,25 +2773,26 @@ BOOL ChangeDirectory(HWND hwnd,LPCWSTR lpszNewDir,BOOL bUpdateHistory)
int iTopItem = ListView_GetTopIndex(hwndDirList);
- GetCurrentDirectory(COUNTOF(szCurDir),szCurDir);
+ GetCurrentDirectory(COUNTOF(Settings.szCurDir), Settings.szCurDir);
- SetWindowPathTitle(hwnd,szCurDir);
+ SetWindowPathTitle(hwnd, Settings.szCurDir);
- if (lstrcmp(tchFilter,L"*.*") || bNegFilter) {
- ListView_SetTextColor(hwndDirList,(bDefCrFilter) ? GetSysColor(COLOR_WINDOWTEXT) : crFilter);
+ if (lstrcmp(Settings.tchFilter,L"*.*") || Settings.bNegFilter) {
+ ListView_SetTextColor(hwndDirList,(Settings.bDefCrFilter) ? GetSysColor(COLOR_WINDOWTEXT) : Settings.crFilter);
Toolbar_SetButtonImage(hwndToolbar,IDT_VIEW_FILTER,TBFILTERBMP);
}
else {
- ListView_SetTextColor(hwndDirList,(bDefCrNoFilt) ? GetSysColor(COLOR_WINDOWTEXT) : crNoFilt);
+ ListView_SetTextColor(hwndDirList,(Settings.bDefCrNoFilt) ? GetSysColor(COLOR_WINDOWTEXT) : Settings.crNoFilt);
Toolbar_SetButtonImage(hwndToolbar,IDT_VIEW_FILTER,TBFILTERBMP+1);
}
- cItems = DirList_Fill(hwndDirList,szCurDir,dwFillMask,tchFilter,bNegFilter,flagNoFadeHidden,nSortFlags,fSortRev);
+ cItems = DirList_Fill(hwndDirList, Settings.szCurDir, Settings.dwFillMask,
+ Settings.tchFilter, Settings.bNegFilter,flagNoFadeHidden, Settings.nSortFlags, Settings.fSortRev);
DirList_StartIconThread(hwndDirList);
// Get long pathname
- DirList_GetLongPathName(hwndDirList,szCurDir);
- SetCurrentDirectory(szCurDir);
+ DirList_GetLongPathName(hwndDirList, Settings.szCurDir);
+ SetCurrentDirectory(Settings.szCurDir);
if (cItems > 0)
ListView_SetItemState(hwndDirList,0,LVIS_FOCUSED,LVIS_FOCUSED);
@@ -2830,7 +2808,7 @@ BOOL ChangeDirectory(HWND hwnd,LPCWSTR lpszNewDir,BOOL bUpdateHistory)
// setup new change notification handle
FindCloseChangeNotification(hChangeHandle);
- hChangeHandle = FindFirstChangeNotification(szCurDir,FALSE,
+ hChangeHandle = FindFirstChangeNotification(Settings.szCurDir,FALSE,
FILE_NOTIFY_CHANGE_FILE_NAME | \
FILE_NOTIFY_CHANGE_DIR_NAME | \
FILE_NOTIFY_CHANGE_ATTRIBUTES | \
@@ -2838,18 +2816,18 @@ BOOL ChangeDirectory(HWND hwnd,LPCWSTR lpszNewDir,BOOL bUpdateHistory)
FILE_NOTIFY_CHANGE_LAST_WRITE);
DriveBox_Fill(hwndDriveBox);
- DriveBox_SelectDrive(hwndDriveBox,szCurDir);
+ DriveBox_SelectDrive(hwndDriveBox, Settings.szCurDir);
wsprintf(tchnum,L"%u",cItems);
FormatNumberStr(tchnum);
- FormatLngStringW(tch,COUNTOF(tch),(lstrcmp(tchFilter,L"*.*") || bNegFilter)?IDS_NUMFILES2:IDS_NUMFILES,tchnum);
+ FormatLngStringW(tch,COUNTOF(tch),(lstrcmp(Settings.tchFilter,L"*.*") || Settings.bNegFilter)?IDS_NUMFILES2:IDS_NUMFILES,tchnum);
StatusSetText(hwndStatus,ID_FILEINFO,tch);
// Update History
if (bUpdateHistory)
{
- History_Add(&mHistory,szCurDir);
- History_UpdateToolbar(&mHistory,hwndToolbar,
+ History_Add(&g_mHistory, Settings.szCurDir);
+ History_UpdateToolbar(&g_mHistory,hwndToolbar,
IDT_HISTORY_BACK,IDT_HISTORY_FORWARD);
}
@@ -2921,15 +2899,15 @@ void ParseCommandLine()
case L'P':
if (*CharUpper(lp1+1) == L'D' || *CharUpper(lp1+1) == L'S') {
flagPosParam = 1;
- wi.x = wi.y = wi.cx = wi.cy = CW_USEDEFAULT;
+ Settings.wi.x = Settings.wi.y = Settings.wi.cx = Settings.wi.cy = CW_USEDEFAULT;
}
else if (ExtractFirstArgument(lp2,lp1,lp2)) {
int itok =
- swscanf_s(lp1,L"%i,%i,%i,%i",&wi.x,&wi.y,&wi.cx,&wi.cy);
+ swscanf_s(lp1,L"%i,%i,%i,%i",&Settings.wi.x,&Settings.wi.y,&Settings.wi.cx,&Settings.wi.cy);
if (itok == 4) { // scan successful
flagPosParam = 1;
- if (wi.cx < 1) wi.cx = CW_USEDEFAULT;
- if (wi.cy < 1) wi.cy = CW_USEDEFAULT;
+ if (Settings.wi.cx < 1) Settings.wi.cx = CW_USEDEFAULT;
+ if (Settings.wi.cy < 1) Settings.wi.cy = CW_USEDEFAULT;
}
}
break;
@@ -3402,7 +3380,7 @@ void LaunchTarget(LPCWSTR lpFileName,BOOL bOpenNew)
if (IsIconic(hwnd))
ShowWindowAsync(hwnd,SW_RESTORE);
- if (bFocusEdit)
+ if (Settings.bFocusEdit)
SetForegroundWindow(hwnd);
if (lpFileName)
@@ -3473,7 +3451,7 @@ void LaunchTarget(LPCWSTR lpFileName,BOOL bOpenNew)
sei.lpVerb = NULL;
sei.lpFile = szFile;
sei.lpParameters = szParam;
- sei.lpDirectory = szCurDir;
+ sei.lpDirectory = Settings.szCurDir;
sei.nShow = SW_SHOWNORMAL;
ShellExecuteEx(&sei);
@@ -3545,7 +3523,7 @@ void LaunchTarget(LPCWSTR lpFileName,BOOL bOpenNew)
sei.lpFile = lpParam;
sei.lpParameters = NULL;
}
- sei.lpDirectory = szCurDir;
+ sei.lpDirectory = Settings.szCurDir;
sei.nShow = SW_SHOWNORMAL;
ShellExecuteEx(&sei);
diff --git a/minipath/src/minipath.h b/minipath/src/minipath.h
index 57d7b1b75..082fbed7b 100644
--- a/minipath/src/minipath.h
+++ b/minipath/src/minipath.h
@@ -89,6 +89,65 @@ typedef struct _wi
int cy;
} WININFO;
+// ----------------------------------------------------------------------------
+
+#define DL_FILTER_BUFSIZE 256 // should correspond to Dlapi.h def
+
+typedef struct _settings_t
+{
+ BOOL bSaveSettings;
+ WCHAR szQuickview[MAX_PATH];
+ WCHAR szQuickviewParams[MAX_PATH];
+ WCHAR g_tchFavoritesDir[MAX_PATH];
+ BOOL bNP3sFavoritesSettings;
+ WCHAR tchOpenWithDir[MAX_PATH];
+ WCHAR tchToolbarButtons[512];
+ WCHAR tchToolbarBitmap[MAX_PATH];
+ WCHAR tchToolbarBitmapHot[MAX_PATH];
+ WCHAR tchToolbarBitmapDisabled[MAX_PATH];
+ BOOL bClearReadOnly;
+ BOOL bRenameOnCollision;
+ BOOL bSingleClick;
+ BOOL bTrackSelect;
+ BOOL bFullRowSelect;
+ int iStartupDir;
+ int iEscFunction;
+ BOOL bFocusEdit;
+ BOOL bAlwaysOnTop;
+ BOOL g_bTransparentMode;
+ BOOL bMinimizeToTray;
+ BOOL fUseRecycleBin;
+ BOOL fNoConfirmDelete;
+ BOOL bShowToolbar;
+ BOOL bShowStatusbar;
+ BOOL bShowDriveBox;
+ int cxGotoDlg;
+ int cxOpenWithDlg;
+ int cyOpenWithDlg;
+ int cxCopyMoveDlg;
+
+ BOOL bHasQuickview;
+
+ WCHAR tchFilter[DL_FILTER_BUFSIZE];
+ BOOL bNegFilter;
+ BOOL bDefCrNoFilt;
+ BOOL bDefCrFilter;
+ COLORREF crNoFilt;
+ COLORREF crFilter;
+ COLORREF crCustom[16];
+
+ WININFO wi;
+
+ WCHAR szCurDir[MAX_PATH + 40];
+ DWORD dwFillMask;
+ int nSortFlags;
+ BOOL fSortRev;
+
+} SETTINGS_T, * PSETTINGS_T;
+
+extern SETTINGS_T Settings;
+extern SETTINGS_T Defaults;
+
//==== Function Declarations ==================================================
BOOL InitApplication(HINSTANCE);
diff --git a/res/Notepad3.exe.manifest.conf b/res/Notepad3.exe.manifest.conf
index d22fd8a7a..c9b83e1bf 100644
--- a/res/Notepad3.exe.manifest.conf
+++ b/res/Notepad3.exe.manifest.conf
@@ -3,7 +3,7 @@
Notepad3 BETA
diff --git a/src/VersionEx.h b/src/VersionEx.h
index 7b64fbf3f..2d8b043f8 100644
--- a/src/VersionEx.h
+++ b/src/VersionEx.h
@@ -7,8 +7,8 @@
#define SAPPNAME "Notepad3"
#define VERSION_MAJOR 5
#define VERSION_MINOR 19
-#define VERSION_REV 723
-#define VERSION_BUILD 2404
+#define VERSION_REV 725
+#define VERSION_BUILD 2405
#define SCINTILLA_VER 420
#define ONIGURUMA_REGEX_VER 6.9.3
#define VERSION_PATCH BETA