mirror of
https://github.com/Xevion/easy7zip.git
synced 2025-12-06 15:14:59 -06:00
Initialer Commit
This commit is contained in:
142
CPP/7zip/UI/FileManager/SettingsPage.cpp
Normal file
142
CPP/7zip/UI/FileManager/SettingsPage.cpp
Normal file
@@ -0,0 +1,142 @@
|
||||
// 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
|
||||
};
|
||||
|
||||
static LPCWSTR kEditTopic = L"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(NULL, kEditTopic); // change it
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
Reference in New Issue
Block a user