📄 win32prefs.cpp
字号:
// set watch this dir value
size = sizeof(buf);
if (GetPrefString(kWatchThisDirectoryPref, buf, &size) == kError_NoPrefValue)
{
strcpy(path, cwd);
strcat(path, "\\");
strcat(path, "My Music");
SetPrefString(kWatchThisDirectoryPref, path);
}
// set db directory value
size = sizeof(buf);
if (GetPrefString(kDatabaseDirPref, buf, &size) == kError_NoPrefValue)
{
strcpy(path, cwd);
strcat(path, "\\");
strcat(path, "db");
SetPrefString(kDatabaseDirPref, path);
}
// set default ui value
size = sizeof(buf);
if (GetPrefString(kUIPref, buf, &size) == kError_NoPrefValue)
SetPrefString(kUIPref, kDefaultUI);
// set default pmo value
size = sizeof(buf);
if (GetPrefString(kPMOPref, buf, &size) == kError_NoPrefValue)
SetPrefString(kPMOPref, kDefaultPMO);
// set default open/save dlg path value
size = sizeof(buf);
if (GetPrefString(kOpenSaveDirPref, buf, &size) == kError_NoPrefValue)
SetPrefString(kOpenSaveDirPref, cwd);
// set default for window staying on top
if (GetPrefBoolean(kStayOnTopPref, &dummyBool) == kError_NoPrefValue)
SetPrefBoolean(kStayOnTopPref, kDefaultStayOnTop);
// set default for minimizing to tray
if (GetPrefBoolean(kLiveInTrayPref, &dummyBool) == kError_NoPrefValue)
SetPrefBoolean(kLiveInTrayPref, kDefaultLiveInTray);
Preferences::SetDefaults();
return kError_NoErr;
}
Error
Win32Prefs::
Save()
{
// XXX: Should we do anything more here?
return kError_NoErr;
}
Preferences *
Win32Prefs::
ComponentPrefs(const char *componentName)
{
return new Win32Prefs(componentName);
}
Error
Win32Prefs::
GetPrefString(const char* pref, char* buf, uint32* len)
{
Error error = kError_UnknownErr;
DWORD type;
LONG result;
if((!buf && len && *len != 0) || !len || !pref)
{
error = kError_InvalidParam;
return error;
}
if(buf)
*buf = 0x00;
if(m_prefsKey)
{
result = RegQueryValueEx( m_prefsKey,
pref,
NULL,
&type,
(LPBYTE)buf,
(DWORD*)len);
if(result == ERROR_SUCCESS)
{
if(!buf)
error = kError_BufferTooSmall;
else
error = kError_NoErr;
}
else if(result == ERROR_MORE_DATA)
error = kError_BufferTooSmall;
else if(result == ERROR_FILE_NOT_FOUND)
error = kError_NoPrefValue;
}
else
{
error = kError_NoPrefs;
}
return error;
}
Error
Win32Prefs::
SetPrefString(const char* pref, const char* buf)
{
Error error = kError_UnknownErr;
LONG result;
if(!buf || !pref)
{
error = kError_InvalidParam;
return error;
}
if(m_prefsKey)
{
// set install directory value
result = RegSetValueEx( m_prefsKey,
pref,
NULL,
REG_SZ,
(LPBYTE)buf,
strlen(buf) + 1);
if(result == ERROR_SUCCESS)
error = kError_NoErr;
}
else
{
error = kError_NoPrefs;
}
return error;
}
Error
Win32Prefs::
GetPrefBoolean(const char* pref, bool* value)
{
Error error = kError_UnknownErr;
DWORD type;
LONG result;
DWORD buf = 0;
DWORD len = sizeof(DWORD);
if(!value || !pref)
{
error = kError_InvalidParam;
return error;
}
if(m_prefsKey)
{
result = RegQueryValueEx( m_prefsKey,
pref,
NULL,
&type,
(LPBYTE)&buf,
(DWORD*)&len);
if(result == ERROR_SUCCESS)
{
error = kError_NoErr;
*value = (buf == 0 ? false : true);
}
else if(result == ERROR_MORE_DATA)
error = kError_BufferTooSmall;
else if(result == ERROR_FILE_NOT_FOUND)
error = kError_NoPrefValue;
}
else
{
error = kError_NoPrefs;
}
return error;
}
Error
Win32Prefs::
SetPrefBoolean(const char* pref, bool value)
{
Error error = kError_UnknownErr;
LONG result;
DWORD buf = (value ? 1 : 0);
if(!pref)
{
error = kError_InvalidParam;
return error;
}
if(m_prefsKey)
{
// set install directory value
result = RegSetValueEx( m_prefsKey,
pref,
NULL,
REG_DWORD ,
(LPBYTE)&buf,
sizeof(DWORD));
if(result == ERROR_SUCCESS)
error = kError_NoErr;
}
else
{
error = kError_NoPrefs;
}
return error;
}
Error
Win32Prefs::
GetPrefInt32(const char* pref, int32* value)
{
Error error = kError_UnknownErr;
DWORD type;
LONG result;
DWORD buf = 0;
DWORD len = sizeof(DWORD);
if(!value || !pref)
{
error = kError_InvalidParam;
return error;
}
if(m_prefsKey)
{
result = RegQueryValueEx( m_prefsKey,
pref,
NULL,
&type,
(LPBYTE)&buf,
(DWORD*)&len);
if(result == ERROR_SUCCESS)
{
error = kError_NoErr;
*value = (int32)buf;
}
else if(result == ERROR_MORE_DATA)
error = kError_BufferTooSmall;
else if(result == ERROR_FILE_NOT_FOUND)
error = kError_NoPrefValue;
}
else
{
error = kError_NoPrefs;
}
return error;
}
Error
Win32Prefs::
SetPrefInt32(const char* pref, int32 value)
{
Error error = kError_UnknownErr;
LONG result;
DWORD buf = value;
if(!pref)
{
error = kError_InvalidParam;
return error;
}
if(m_prefsKey)
{
// set install directory value
result = RegSetValueEx( m_prefsKey,
pref,
NULL,
REG_DWORD ,
(LPBYTE)&buf,
sizeof(DWORD));
if(result == ERROR_SUCCESS)
error = kError_NoErr;
}
else
{
error = kError_NoPrefs;
}
return error;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -