5
#include "RegistryUtils.h"
6
#include "Windows/Registry.h"
8
using namespace NWindows;
9
using namespace NRegistry;
11
#define REG_PATH_7Z TEXT("Software") TEXT(STRING_PATH_SEPARATOR) TEXT("7-ZIP")
13
static const TCHAR *kCUBasePath = REG_PATH_7Z;
14
static const TCHAR *kCU_FMPath = REG_PATH_7Z TEXT(STRING_PATH_SEPARATOR) TEXT("FM");
15
// static const TCHAR *kLM_Path = REG_PATH_7Z TEXT(STRING_PATH_SEPARATOR) TEXT("FM");
17
static const WCHAR *kLangValueName = L"Lang";
18
static const WCHAR *kEditor = L"Editor";
19
static const TCHAR *kShowDots = TEXT("ShowDots");
20
static const TCHAR *kShowRealFileIcons = TEXT("ShowRealFileIcons");
21
static const TCHAR *kShowSystemMenu = TEXT("ShowSystemMenu");
23
static const TCHAR *kFullRow = TEXT("FullRow");
24
static const TCHAR *kShowGrid = TEXT("ShowGrid");
25
static const TCHAR *kAlternativeSelection = TEXT("AlternativeSelection");
26
// static const TCHAR *kLockMemoryAdd = TEXT("LockMemoryAdd");
27
static const TCHAR *kLargePagesEnable = TEXT("LargePages");
28
// static const TCHAR *kSingleClick = TEXT("SingleClick");
29
// static const TCHAR *kUnderline = TEXT("Underline");
31
void SaveRegLang(const UString &langFile)
34
key.Create(HKEY_CURRENT_USER, kCUBasePath);
35
key.SetValue(kLangValueName, langFile);
38
void ReadRegLang(UString &langFile)
42
if (key.Open(HKEY_CURRENT_USER, kCUBasePath, KEY_READ) == ERROR_SUCCESS)
43
key.QueryValue(kLangValueName, langFile);
46
void SaveRegEditor(const UString &editorPath)
49
key.Create(HKEY_CURRENT_USER, kCU_FMPath);
50
key.SetValue(kEditor, editorPath);
53
void ReadRegEditor(UString &editorPath)
57
if (key.Open(HKEY_CURRENT_USER, kCU_FMPath, KEY_READ) == ERROR_SUCCESS)
58
key.QueryValue(kEditor, editorPath);
61
static void Save7ZipOption(const TCHAR *value, bool enabled)
64
key.Create(HKEY_CURRENT_USER, kCUBasePath);
65
key.SetValue(value, enabled);
68
static void SaveOption(const TCHAR *value, bool enabled)
71
key.Create(HKEY_CURRENT_USER, kCU_FMPath);
72
key.SetValue(value, enabled);
75
static bool Read7ZipOption(const TCHAR *value, bool defaultValue)
78
if (key.Open(HKEY_CURRENT_USER, kCUBasePath, KEY_READ) == ERROR_SUCCESS)
81
if (key.QueryValue(value, enabled) == ERROR_SUCCESS)
87
static bool ReadOption(const TCHAR *value, bool defaultValue)
90
if (key.Open(HKEY_CURRENT_USER, kCU_FMPath, KEY_READ) == ERROR_SUCCESS)
93
if (key.QueryValue(value, enabled) == ERROR_SUCCESS)
100
static void SaveLmOption(const TCHAR *value, bool enabled)
103
key.Create(HKEY_LOCAL_MACHINE, kLM_Path);
104
key.SetValue(value, enabled);
107
static bool ReadLmOption(const TCHAR *value, bool defaultValue)
110
if (key.Open(HKEY_LOCAL_MACHINE, kLM_Path, KEY_READ) == ERROR_SUCCESS)
113
if (key.QueryValue(value, enabled) == ERROR_SUCCESS)
120
void SaveShowDots(bool showDots) { SaveOption(kShowDots, showDots); }
121
bool ReadShowDots() { return ReadOption(kShowDots, false); }
123
void SaveShowRealFileIcons(bool show) { SaveOption(kShowRealFileIcons, show); }
124
bool ReadShowRealFileIcons() { return ReadOption(kShowRealFileIcons, false); }
126
void SaveShowSystemMenu(bool show) { SaveOption(kShowSystemMenu, show); }
127
bool ReadShowSystemMenu(){ return ReadOption(kShowSystemMenu, false); }
129
void SaveFullRow(bool enable) { SaveOption(kFullRow, enable); }
130
bool ReadFullRow() { return ReadOption(kFullRow, false); }
132
void SaveShowGrid(bool enable) { SaveOption(kShowGrid, enable); }
133
bool ReadShowGrid(){ return ReadOption(kShowGrid, false); }
135
void SaveAlternativeSelection(bool enable) { SaveOption(kAlternativeSelection, enable); }
136
bool ReadAlternativeSelection(){ return ReadOption(kAlternativeSelection, false); }
139
void SaveSingleClick(bool enable) { SaveOption(kSingleClick, enable); }
140
bool ReadSingleClick(){ return ReadOption(kSingleClick, false); }
142
void SaveUnderline(bool enable) { SaveOption(kUnderline, enable); }
143
bool ReadUnderline(){ return ReadOption(kUnderline, false); }
146
// void SaveLockMemoryAdd(bool enable) { SaveLmOption(kLockMemoryAdd, enable); }
147
// bool ReadLockMemoryAdd() { return ReadLmOption(kLockMemoryAdd, true); }
149
void SaveLockMemoryEnable(bool enable) { Save7ZipOption(kLargePagesEnable, enable); }
150
bool ReadLockMemoryEnable() { return Read7ZipOption(kLargePagesEnable, false); }