📄 .#pwsprefs.h.1.2
字号:
// PWSprefs.h
//-----------------------------------------------------------------------------
#ifndef PWSprefs_h
#define PWSprefs_h
/*
* A class to abstract away the persistent storage mechanism used to store and
* retrieve user preferences. Pre-2.03 implementations used the Windows
* registry. People have asked for preferences to be stored along with the
* database, so that the same preferences can be shared across computers
* (e.g., using disk-on-key).
* We need to be careful about compatability here, so:
* Loading preferences will be done first from the registry, then from
* the file. This way, exisitng prefs will be imported first time, and file
* prefs will have priority over locals. Storing prefs will be done both to
* registry and to file. Of course, the registry part is Windows-specific.
*/
#include "MyString.h"
class PWSprefs {
public:
static PWSprefs *GetInstance(); // singleton
// prefString is stored on file, format described in PWSprefs.cpp
void Load(const CMyString &prefString);
CMyString &Store(); // returns string for saving in file
bool IsChanged() const {return m_changed;}
enum BoolPrefs {AlwaysOnTop, ShowPWDefault, ShowPWInList, SortAscending,
UseDefUser, SaveImmediately, PWUseLowercase, PWUseUppercase,
PWUseDigits, PWUseSymbols, PWUseHexDigits, PWEasyVision,
DontAskQuestion, DeleteQuestion, DCShowsPassword,
DontAskMinimizeClearYesNo, DatabaseClear,
DontAskSaveMinimize, QuerySetDef, UseNewToolbar,
NumBoolPrefs};
enum IntPrefs {Column1Width, Column2Width, Column3Width, Column4Width,
SortedColumn, PWLenDefault, MaxMRUItems,
NumIntPrefs};
enum StringPrefs {CurrentBackup, CurrentFile, LastView, DefUserName,
NumStringPrefs};
bool GetPref(BoolPrefs pref_enum) const {
return GetBoolPref(m_bool_prefs[pref_enum].name,
m_bool_prefs[pref_enum].defVal);}
unsigned int GetPref(IntPrefs pref_enum) const {
return GetIntPref(m_int_prefs[pref_enum].name,
m_int_prefs[pref_enum].defVal);}
// Following for case where default value is determined @ runtime
unsigned int GetPref(IntPrefs pref_enum, unsigned int defVal) const {
return GetIntPref(m_int_prefs[pref_enum].name, defVal);}
CMyString GetPref(StringPrefs pref_enum) const {
return GetStringPref(m_string_prefs[pref_enum].name,
m_string_prefs[pref_enum].defVal);}
// Special case
void GetPrefRect(long &top, long &bottom,
long &left, long &right) const;
void SetPref(BoolPrefs pref_enum, bool value)
{SetPref(m_bool_prefs[pref_enum].name, value);}
void SetPref(IntPrefs pref_enum, unsigned int value)
{SetPref(m_int_prefs[pref_enum].name, value);}
void SetPref(StringPrefs pref_enum, const CMyString &value)
{SetPref(m_string_prefs[pref_enum].name, value);}
// Special case
void SetPrefRect(long top, long bottom,
long left, long right);
private:
PWSprefs();
bool GetBoolPref(const CMyString &name, bool defVal) const;
unsigned int GetIntPref(const CMyString &name, unsigned int defVal) const;
CMyString GetStringPref(const CMyString &name, const CMyString &defVal) const;
void SetPref(const CMyString &name, bool val);
void SetPref(const CMyString &name, unsigned int val);
void SetPref(const CMyString &name, const CMyString &val);
static PWSprefs *self; // singleton
CWinApp *m_app;
bool m_changed;
static const struct boolPref {
TCHAR *name; bool defVal;} m_bool_prefs[NumBoolPrefs];
static const struct intPref {
TCHAR *name; unsigned int defVal;} m_int_prefs[NumIntPrefs];
static const struct stringPref {
TCHAR *name; TCHAR *defVal;} m_string_prefs[NumStringPrefs];
bool m_boolValues[NumBoolPrefs];
unsigned int m_intValues[NumIntPrefs];
CMyString m_stringValues[NumStringPrefs];
long m_top, m_bottom, m_left, m_right;
};
#endif /* PWSprefs_h */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -