4
#include "SettingsPageRes.h"
5
#include "SettingsPage.h"
7
#include "Common/StringConvert.h"
9
#include "Windows/Defs.h"
10
#include "Windows/MemoryLock.h"
12
#include "RegistryUtils.h"
13
#include "HelpUtils.h"
14
#include "LangUtils.h"
15
#include "ProgramLocation.h"
17
using namespace NWindows;
19
static CIDLangPair kIDLangPairs[] =
21
{ IDC_SETTINGS_SHOW_DOTS, 0x03010401},
22
{ IDC_SETTINGS_SHOW_REAL_FILE_ICONS, 0x03010402},
23
{ IDC_SETTINGS_SHOW_SYSTEM_MENU, 0x03010410},
24
{ IDC_SETTINGS_FULL_ROW, 0x03010420},
25
{ IDC_SETTINGS_SHOW_GRID, 0x03010421},
26
{ IDC_SETTINGS_ALTERNATIVE_SELECTION, 0x03010430},
27
{ IDC_SETTINGS_LARGE_PAGES, 0x03010440}
28
// { IDC_SETTINGS_SINGLE_CLICK, 0x03010422},
29
// { IDC_SETTINGS_UNDERLINE, 0x03010423}
32
static LPCWSTR kEditTopic = L"FM/options.htm#settings";
34
extern bool IsLargePageSupported();
36
bool CSettingsPage::OnInit()
38
LangSetDlgItemsText(HWND(*this), kIDLangPairs, sizeof(kIDLangPairs) / sizeof(kIDLangPairs[0]));
40
CheckButton(IDC_SETTINGS_SHOW_DOTS, ReadShowDots());
41
CheckButton(IDC_SETTINGS_SHOW_SYSTEM_MENU, ReadShowSystemMenu());
42
CheckButton(IDC_SETTINGS_SHOW_REAL_FILE_ICONS, ReadShowRealFileIcons());
44
CheckButton(IDC_SETTINGS_FULL_ROW, ReadFullRow());
45
CheckButton(IDC_SETTINGS_SHOW_GRID, ReadShowGrid());
46
CheckButton(IDC_SETTINGS_ALTERNATIVE_SELECTION, ReadAlternativeSelection());
47
if (IsLargePageSupported())
48
CheckButton(IDC_SETTINGS_LARGE_PAGES, ReadLockMemoryEnable());
50
EnableItem(IDC_SETTINGS_LARGE_PAGES, false);
51
// CheckButton(IDC_SETTINGS_SINGLE_CLICK, ReadSingleClick());
52
// CheckButton(IDC_SETTINGS_UNDERLINE, ReadUnderline());
56
return CPropertyPage::OnInit();
60
void CSettingsPage::EnableSubItems()
62
EnableItem(IDC_SETTINGS_UNDERLINE, IsButtonCheckedBool(IDC_SETTINGS_SINGLE_CLICK));
66
LONG CSettingsPage::OnApply()
68
SaveShowDots(IsButtonCheckedBool(IDC_SETTINGS_SHOW_DOTS));
69
SaveShowSystemMenu(IsButtonCheckedBool(IDC_SETTINGS_SHOW_SYSTEM_MENU));
70
SaveShowRealFileIcons(IsButtonCheckedBool(IDC_SETTINGS_SHOW_REAL_FILE_ICONS));
72
SaveFullRow(IsButtonCheckedBool(IDC_SETTINGS_FULL_ROW));
73
SaveShowGrid(IsButtonCheckedBool(IDC_SETTINGS_SHOW_GRID));
74
SaveAlternativeSelection(IsButtonCheckedBool(IDC_SETTINGS_ALTERNATIVE_SELECTION));
75
if (IsLargePageSupported())
77
bool enable = IsButtonCheckedBool(IDC_SETTINGS_LARGE_PAGES);
78
NSecurity::EnableLockMemoryPrivilege(enable);
79
SaveLockMemoryEnable(enable);
82
// SaveSingleClick(IsButtonCheckedBool(IDC_SETTINGS_SINGLE_CLICK));
83
// SaveUnderline(IsButtonCheckedBool(IDC_SETTINGS_UNDERLINE));
85
return PSNRET_NOERROR;
88
void CSettingsPage::OnNotifyHelp()
90
ShowHelpWindow(NULL, kEditTopic); // change it
93
bool CSettingsPage::OnButtonClicked(int buttonID, HWND buttonHWND)
98
case IDC_SETTINGS_SINGLE_CLICK:
102
case IDC_SETTINGS_SHOW_DOTS:
103
case IDC_SETTINGS_SHOW_SYSTEM_MENU:
104
case IDC_SETTINGS_SHOW_REAL_FILE_ICONS:
105
case IDC_SETTINGS_FULL_ROW:
106
case IDC_SETTINGS_SHOW_GRID:
107
case IDC_SETTINGS_ALTERNATIVE_SELECTION:
108
case IDC_SETTINGS_LARGE_PAGES:
112
return CPropertyPage::OnButtonClicked(buttonID, buttonHWND);