diff options
Diffstat (limited to '7zip/FileManager/Resource/SettingsPage/SettingsPage.cpp')
-rwxr-xr-x | 7zip/FileManager/Resource/SettingsPage/SettingsPage.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/7zip/FileManager/Resource/SettingsPage/SettingsPage.cpp b/7zip/FileManager/Resource/SettingsPage/SettingsPage.cpp index 3150d3f1..6a681fbc 100755 --- a/7zip/FileManager/Resource/SettingsPage/SettingsPage.cpp +++ b/7zip/FileManager/Resource/SettingsPage/SettingsPage.cpp @@ -7,6 +7,7 @@ #include "Common/StringConvert.h" #include "Windows/Defs.h" +#include "Windows/MemoryLock.h" #include "../../RegistryUtils.h" #include "../../HelpUtils.h" @@ -23,12 +24,15 @@ static CIDLangPair kIDLangPairs[] = { IDC_SETTINGS_FULL_ROW, 0x03010420}, { IDC_SETTINGS_SHOW_GRID, 0x03010421}, { IDC_SETTINGS_ALTERNATIVE_SELECTION, 0x03010430}, + { IDC_SETTINGS_LARGE_PAGES, 0x03010440} // { IDC_SETTINGS_SINGLE_CLICK, 0x03010422}, // { IDC_SETTINGS_UNDERLINE, 0x03010423} }; static LPCWSTR kEditTopic = L"FM/options.htm#settings"; +extern bool IsLargePageSupported(); + bool CSettingsPage::OnInit() { LangSetDlgItemsText(HWND(*this), kIDLangPairs, sizeof(kIDLangPairs) / sizeof(kIDLangPairs[0])); @@ -40,6 +44,10 @@ bool CSettingsPage::OnInit() CheckButton(IDC_SETTINGS_FULL_ROW, ReadFullRow()); CheckButton(IDC_SETTINGS_SHOW_GRID, ReadShowGrid()); CheckButton(IDC_SETTINGS_ALTERNATIVE_SELECTION, ReadAlternativeSelection()); + if (IsLargePageSupported()) + CheckButton(IDC_SETTINGS_LARGE_PAGES, ReadLockMemoryEnable()); + else + EnableItem(IDC_SETTINGS_LARGE_PAGES, false); // CheckButton(IDC_SETTINGS_SINGLE_CLICK, ReadSingleClick()); // CheckButton(IDC_SETTINGS_UNDERLINE, ReadUnderline()); @@ -64,6 +72,12 @@ LONG CSettingsPage::OnApply() SaveFullRow(IsButtonCheckedBool(IDC_SETTINGS_FULL_ROW)); SaveShowGrid(IsButtonCheckedBool(IDC_SETTINGS_SHOW_GRID)); SaveAlternativeSelection(IsButtonCheckedBool(IDC_SETTINGS_ALTERNATIVE_SELECTION)); + if (IsLargePageSupported()) + { + bool enable = IsButtonCheckedBool(IDC_SETTINGS_LARGE_PAGES); + NSecurity::EnableLockMemoryPrivilege(enable); + SaveLockMemoryEnable(enable); + } // SaveSingleClick(IsButtonCheckedBool(IDC_SETTINGS_SINGLE_CLICK)); // SaveUnderline(IsButtonCheckedBool(IDC_SETTINGS_UNDERLINE)); @@ -91,6 +105,7 @@ bool CSettingsPage::OnButtonClicked(int buttonID, HWND buttonHWND) case IDC_SETTINGS_FULL_ROW: case IDC_SETTINGS_SHOW_GRID: case IDC_SETTINGS_ALTERNATIVE_SELECTION: + case IDC_SETTINGS_LARGE_PAGES: Changed(); return true; } |