mirror of
https://github.com/Xevion/easy7zip.git
synced 2025-12-06 15:14:59 -06:00
143 lines
3.4 KiB
C++
143 lines
3.4 KiB
C++
// SettingsPage.cpp
|
|
|
|
#include "StdAfx.h"
|
|
|
|
#include "../../../Common/StringConvert.h"
|
|
|
|
#ifndef UNDER_CE
|
|
#include "../../../Windows/MemoryLock.h"
|
|
#endif
|
|
|
|
#include "HelpUtils.h"
|
|
#include "LangUtils.h"
|
|
#include "RegistryUtils.h"
|
|
#include "SettingsPage.h"
|
|
|
|
#include "SettingsPageRes.h"
|
|
|
|
using namespace NWindows;
|
|
|
|
static const UInt32 kLangIDs[] =
|
|
{
|
|
IDX_SETTINGS_SHOW_DOTS,
|
|
IDX_SETTINGS_SHOW_REAL_FILE_ICONS,
|
|
IDX_SETTINGS_SHOW_SYSTEM_MENU,
|
|
IDX_SETTINGS_FULL_ROW,
|
|
IDX_SETTINGS_SHOW_GRID,
|
|
IDX_SETTINGS_SINGLE_CLICK,
|
|
IDX_SETTINGS_ALTERNATIVE_SELECTION,
|
|
IDX_SETTINGS_LARGE_PAGES
|
|
};
|
|
|
|
#define kSettingsTopic "FM/options.htm#settings"
|
|
|
|
extern bool IsLargePageSupported();
|
|
|
|
bool CSettingsPage::OnInit()
|
|
{
|
|
_wasChanged = false;
|
|
_largePages_wasChanged = false;
|
|
|
|
LangSetDlgItems(*this, kLangIDs, ARRAY_SIZE(kLangIDs));
|
|
|
|
CFmSettings st;
|
|
st.Load();
|
|
|
|
CheckButton(IDX_SETTINGS_SHOW_DOTS, st.ShowDots);
|
|
CheckButton(IDX_SETTINGS_SHOW_REAL_FILE_ICONS, st.ShowRealFileIcons);
|
|
CheckButton(IDX_SETTINGS_FULL_ROW, st.FullRow);
|
|
CheckButton(IDX_SETTINGS_SHOW_GRID, st.ShowGrid);
|
|
CheckButton(IDX_SETTINGS_SINGLE_CLICK, st.SingleClick);
|
|
CheckButton(IDX_SETTINGS_ALTERNATIVE_SELECTION, st.AlternativeSelection);
|
|
// CheckButton(IDX_SETTINGS_UNDERLINE, st.Underline);
|
|
|
|
CheckButton(IDX_SETTINGS_SHOW_SYSTEM_MENU, st.ShowSystemMenu);
|
|
|
|
if (IsLargePageSupported())
|
|
CheckButton(IDX_SETTINGS_LARGE_PAGES, ReadLockMemoryEnable());
|
|
else
|
|
EnableItem(IDX_SETTINGS_LARGE_PAGES, false);
|
|
|
|
// EnableSubItems();
|
|
|
|
return CPropertyPage::OnInit();
|
|
}
|
|
|
|
/*
|
|
void CSettingsPage::EnableSubItems()
|
|
{
|
|
EnableItem(IDX_SETTINGS_UNDERLINE, IsButtonCheckedBool(IDX_SETTINGS_SINGLE_CLICK));
|
|
}
|
|
*/
|
|
|
|
LONG CSettingsPage::OnApply()
|
|
{
|
|
if (_wasChanged)
|
|
{
|
|
CFmSettings st;
|
|
st.ShowDots = IsButtonCheckedBool(IDX_SETTINGS_SHOW_DOTS);
|
|
st.ShowRealFileIcons = IsButtonCheckedBool(IDX_SETTINGS_SHOW_REAL_FILE_ICONS);
|
|
st.FullRow = IsButtonCheckedBool(IDX_SETTINGS_FULL_ROW);
|
|
st.ShowGrid = IsButtonCheckedBool(IDX_SETTINGS_SHOW_GRID);
|
|
st.SingleClick = IsButtonCheckedBool(IDX_SETTINGS_SINGLE_CLICK);
|
|
st.AlternativeSelection = IsButtonCheckedBool(IDX_SETTINGS_ALTERNATIVE_SELECTION);
|
|
// st.Underline = IsButtonCheckedBool(IDX_SETTINGS_UNDERLINE);
|
|
|
|
st.ShowSystemMenu = IsButtonCheckedBool(IDX_SETTINGS_SHOW_SYSTEM_MENU);
|
|
|
|
st.Save();
|
|
|
|
_wasChanged = false;
|
|
}
|
|
|
|
#ifndef UNDER_CE
|
|
if (_largePages_wasChanged)
|
|
{
|
|
if (IsLargePageSupported())
|
|
{
|
|
bool enable = IsButtonCheckedBool(IDX_SETTINGS_LARGE_PAGES);
|
|
NSecurity::EnablePrivilege_LockMemory(enable);
|
|
SaveLockMemoryEnable(enable);
|
|
}
|
|
_largePages_wasChanged = false;
|
|
}
|
|
#endif
|
|
|
|
return PSNRET_NOERROR;
|
|
}
|
|
|
|
void CSettingsPage::OnNotifyHelp()
|
|
{
|
|
ShowHelpWindow(kSettingsTopic);
|
|
}
|
|
|
|
bool CSettingsPage::OnButtonClicked(int buttonID, HWND buttonHWND)
|
|
{
|
|
switch (buttonID)
|
|
{
|
|
case IDX_SETTINGS_SINGLE_CLICK:
|
|
/*
|
|
EnableSubItems();
|
|
break;
|
|
*/
|
|
case IDX_SETTINGS_SHOW_DOTS:
|
|
case IDX_SETTINGS_SHOW_SYSTEM_MENU:
|
|
case IDX_SETTINGS_SHOW_REAL_FILE_ICONS:
|
|
case IDX_SETTINGS_FULL_ROW:
|
|
case IDX_SETTINGS_SHOW_GRID:
|
|
case IDX_SETTINGS_ALTERNATIVE_SELECTION:
|
|
_wasChanged = true;
|
|
break;
|
|
|
|
case IDX_SETTINGS_LARGE_PAGES:
|
|
_largePages_wasChanged = true;
|
|
break;
|
|
|
|
default:
|
|
return CPropertyPage::OnButtonClicked(buttonID, buttonHWND);
|
|
}
|
|
|
|
Changed();
|
|
return true;
|
|
}
|