/*
* -----
* Screenshot Sender - preferences.js
* -----
* Read/Write/Update Preferences for Screenshot Sender
* -----
*/
/*
Name: RegistryInit
Purpose: Create a string containing the location in the registry for Screenshot Sender
Parameters: None
Return: Screenshot Sender registry location
*/
function RegistryInit() {
return MsgPlus.ScriptRegPath.substr(5) + Messenger.MyUserId;
}
/*
Name: UpdatePreferences
Purpose: Updates the stored preferences in the registry
Parameters: None
Return: None
*/
function UpdatePreferences() {
_debug.getfuncname(arguments);
for (var i in objPreferences) {
if (i === 'tSaveDirectory' || i === 'tFtpPassword') {
Registry_SetKeyValue(HKCU, RegistryInit(), i, encode(objPreferences[i]), REG_BINARY);
} else {
Registry_SetKeyValue(HKCU, RegistryInit(), i, objPreferences[i], (typeof objPreferences[i] === TYPE_STRING ? REG_SZ : REG_DWORD));
}
}
}
/*
Name: CreateDefaultSettings
Purpose: Create default settings for a first time user
Parameters: None
Return: None
*/
function CreateDefaultSettings() {
_debug.getfuncname(arguments);
Registry_CreateKey(HKCU, MsgPlus.ScriptRegPath.substr(5));
Registry_CreateKey(HKCU, RegistryInit());
if (Registry_KeyExist(HKCU, RegistryInit() + '\\Hotkeys') == false) Registry_CreateKey(HKCU, RegistryInit() + '\\Hotkeys');
if (Registry_KeyExist(HKCU, RegistryInit() + '\\Overlay') == false) Registry_CreateKey(HKCU, RegistryInit() + '\\Overlay');
CreateDefaultSetting_Key('tFilename', 'screenshot_!#', REG_SZ);
var sSave = Interop.Allocate(512);
_win32.SHGetSpecialFolderPathW(0, sSave, _win32._const._CLSID_PERSONAL, false);
/* General */
CreateDefaultSetting_Key('tSaveDirectory', encode(sSave.ReadString(0) + '\\My Screenshots\\' + Messenger.MyEmail + '\\'), REG_BINARY);
CreateDefaultSetting_Key('lFileNumber', 0, REG_DWORD);
CreateDefaultSetting_Key('sldrQuality', 75, REG_DWORD);
CreateDefaultSetting_Key('cPreviews', 1, REG_DWORD);
CreateDefaultSetting_Key('cDeleteSessionImages', 0, REG_DWORD);
CreateDefaultSetting_Key('cFileType', 1, REG_DWORD);
CreateDefaultSetting_Key('tTimeDelay', 5, REG_DWORD);
CreateDefaultSetting_Key('cShowSaveConfirm', 0, REG_DWORD);
CreateDefaultSetting_Key('cCountdownPos', 0, REG_DWORD);
CreateDefaultSetting_Key('cOverrideCtrlV', (Messenger.Version !== 14 ? 1 : 0), REG_DWORD);
/* Ftp */
CreateDefaultSetting_Key('tFtpLogin', '', REG_SZ);
CreateDefaultSetting_Key('tFtpServer', '', REG_SZ);
CreateDefaultSetting_Key('tFtpPassword', '', REG_BINARY);
CreateDefaultSetting_Key('tFtpDirectory', '', REG_SZ);
CreateDefaultSetting_Key('tFtpPort', 21, REG_DWORD);
CreateDefaultSetting_Key('cUploadFilesWhenIdle', 0, REG_DWORD);
/* Language */
CreateDefaultSetting_Key('cLanguage', 'en', REG_SZ);
CreateDefaultSetting_Key('cSameLanguage', 1, REG_DWORD);
/* Advanced */
CreateDefaultSetting_Key('cEditProgram', 1, REG_DWORD);
CreateDefaultSetting_Key('tEditProgram', 'rundll32.exe shell32.dll, OpenAs_RunDLL %1', REG_SZ);
/* Hotkeys */
CreateDefaultSetting_Key('cPrntScrn', 0, REG_DWORD);
}
function CreateDefaultSetting_Key(Key, Value, Type) {
if (Registry_KeyValueExist(HKCU, RegistryInit(), Key) === false) {
_debug.getfuncname(arguments);
Registry_SetKeyValue(HKCU, RegistryInit(), Key, Value, Type);
}
}
/*
Name: LoadPreferences
Purpose: Load the preferences to our object
Parameters: None
Return: None
*/
function LoadPreferences() {
_debug.getfuncname(arguments);
CreateDefaultSettings();
Registry_EnumKeys(HKCU, RegistryInit(), objPreferences);
/* Initialize language object */
_lang.load(objPreferences['cLanguage']);
objPreferences['tSaveDirectory'] = decode(objPreferences['tSaveDirectory']);
if (objPreferences['tFtpPassword'] !== '')
objPreferences['tFtpPassword'] = decode(objPreferences['tFtpPassword']);
MakeFolder(objPreferences['tSaveDirectory']);
}
/*
Name: MakeFolder
Purpose: Recursively creates a directory structure starting at the root
Parameters: sPath - Directory structure to create
Return: None
*/
function MakeFolder(sPath) {
_debug.getfuncname(arguments);
_win32.SHCreateDirectoryExW(0, sPath, 0);
}