|
@@ -1,2040 +1,2067 @@
|
|
|
-#include "stdafx.h"
|
|
|
-#include "Options.h"
|
|
|
-#include "AlphaBlend.h"
|
|
|
-#include "Misc.h"
|
|
|
-#include "shared/TextConvert.h"
|
|
|
-#include "sqlite\CppSQLite3.h"
|
|
|
-#include "Path.h"
|
|
|
-
|
|
|
-using namespace nsPath;
|
|
|
-
|
|
|
-UINT WritePrivateProfileInt(LPCTSTR lpAppName, LPCTSTR lpKeyName, INT nValue, LPCTSTR lpFileName)
|
|
|
-{
|
|
|
- // Locals
|
|
|
- TCHAR szBuff[25];
|
|
|
-
|
|
|
- // Format
|
|
|
- SPRINTF(szBuff, _T("%d"), nValue);
|
|
|
-
|
|
|
- // Write
|
|
|
- return WritePrivateProfileString(lpAppName, lpKeyName, szBuff, lpFileName);
|
|
|
-}
|
|
|
-
|
|
|
-long CGetSetOptions::m_nLinesPerRow;
|
|
|
-BOOL CGetSetOptions::m_bUseCtrlNumAccel;
|
|
|
-BOOL CGetSetOptions::m_bAllowDuplicates;
|
|
|
-BOOL CGetSetOptions::m_bUpdateTimeOnPaste;
|
|
|
-BOOL CGetSetOptions::m_bSaveMultiPaste;
|
|
|
-BOOL CGetSetOptions::m_bShowPersistent;
|
|
|
-long CGetSetOptions::m_bDescTextSize;
|
|
|
-BOOL CGetSetOptions::m_bDescShowLeadingWhiteSpace;
|
|
|
-BOOL CGetSetOptions::m_bAllwaysShowDescription;
|
|
|
-long CGetSetOptions::m_bDoubleClickingOnCaptionDoes;
|
|
|
-BOOL CGetSetOptions::m_bPrompForNewGroupName;
|
|
|
-BOOL CGetSetOptions::m_bSendPasteOnFirstTenHotKeys;
|
|
|
-CSendClients CGetSetOptions::m_SendClients[MAX_SEND_CLIENTS];
|
|
|
-long CGetSetOptions::m_lAutoSendClientCount;
|
|
|
-CString CGetSetOptions::m_csIPListToPutOnClipboard;
|
|
|
-BOOL CGetSetOptions::m_bLogSendReceiveErrors;
|
|
|
-BOOL CGetSetOptions::m_HideDittoOnHotKeyIfAlreadyShown;
|
|
|
-long CGetSetOptions::m_lPort;
|
|
|
-BOOL CGetSetOptions::m_bDrawThumbnail;
|
|
|
-CStringA CGetSetOptions::m_csPassword;
|
|
|
-BOOL CGetSetOptions::m_bDrawRTF;
|
|
|
-BOOL CGetSetOptions::m_bMultiPasteReverse;
|
|
|
-CString CGetSetOptions::m_csPlaySoundOnCopy;
|
|
|
-CStringArray CGetSetOptions::m_csNetworkPasswordArray;
|
|
|
-BOOL CGetSetOptions::m_bSendPasteMessageAfterSelection;
|
|
|
-BOOL CGetSetOptions::m_bFindAsYouType;
|
|
|
-BOOL CGetSetOptions::m_bEnsureEntireWindowCanBeSeen;
|
|
|
-BOOL CGetSetOptions::m_bShowAllClipsInMainList;
|
|
|
-long CGetSetOptions::m_lMaxClipSizeInBytes;
|
|
|
-DWORD CGetSetOptions::m_dwSaveClipDelay;
|
|
|
-long CGetSetOptions::m_lProcessDrawClipboardDelay;
|
|
|
-BOOL CGetSetOptions::m_bEnableDebugLogging;
|
|
|
-BOOL CGetSetOptions::m_bEnsureConnectToClipboard;
|
|
|
-bool CGetSetOptions::m_bOutputDebugString;
|
|
|
-bool CGetSetOptions::m_bU3 = false;
|
|
|
-bool CGetSetOptions::m_bInConversion = false;
|
|
|
-bool CGetSetOptions::m_bFromIni = false;
|
|
|
-bool CGetSetOptions::m_portable = false;
|
|
|
-CString CGetSetOptions::m_csIniFileName;
|
|
|
-__int64 CGetSetOptions::nLastDbWriteTime = 0;
|
|
|
-CTheme CGetSetOptions::m_Theme;
|
|
|
-BOOL CGetSetOptions::m_showScrollBar = false;
|
|
|
-CGetSetOptions g_Opt;
|
|
|
-
|
|
|
-CGetSetOptions::CGetSetOptions()
|
|
|
-{
|
|
|
-}
|
|
|
-
|
|
|
-CGetSetOptions::~CGetSetOptions()
|
|
|
-{
|
|
|
-
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::LoadSettings()
|
|
|
-{
|
|
|
- m_csIniFileName = GetIniFileName(true);
|
|
|
-
|
|
|
- CString portable = GetFilePath(m_csIniFileName);
|
|
|
- portable += _T("portable");
|
|
|
- if(FileExists(portable))
|
|
|
- {
|
|
|
- m_portable = true;
|
|
|
- }
|
|
|
-
|
|
|
- if(m_bU3)
|
|
|
- {
|
|
|
- m_bFromIni = true;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- //first check if ini file is in app directory
|
|
|
- if(m_portable || FileExists(m_csIniFileName))
|
|
|
- {
|
|
|
- m_bFromIni = true;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- //next check if it's in app data
|
|
|
- m_csIniFileName = GetIniFileName(false);
|
|
|
- if(FileExists(m_csIniFileName))
|
|
|
- {
|
|
|
- m_bFromIni = true;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if(m_bFromIni)
|
|
|
- {
|
|
|
- CString csPath = GetFilePath(m_csIniFileName);
|
|
|
- if(FileExists(csPath) == FALSE)
|
|
|
- CreateDirectory(csPath, NULL);
|
|
|
- }
|
|
|
-
|
|
|
- GetSetCurrentDirectory();
|
|
|
-
|
|
|
- m_nLinesPerRow = GetLinesPerRow();
|
|
|
- m_bUseCtrlNumAccel = GetUseCtrlNumForFirstTenHotKeys();
|
|
|
- m_bAllowDuplicates = GetAllowDuplicates();
|
|
|
- m_bUpdateTimeOnPaste = GetUpdateTimeOnPaste();
|
|
|
- m_bSaveMultiPaste = GetSaveMultiPaste();
|
|
|
- m_bShowPersistent = GetShowPersistent();
|
|
|
- m_bDescTextSize = GetDescTextSize();
|
|
|
- m_bDescShowLeadingWhiteSpace = GetDescShowLeadingWhiteSpace();
|
|
|
- m_bAllwaysShowDescription = GetAllwaysShowDescription();
|
|
|
- m_bDoubleClickingOnCaptionDoes = GetDoubleClickingOnCaptionDoes();
|
|
|
- m_bPrompForNewGroupName = GetPrompForNewGroupName();
|
|
|
- m_bSendPasteOnFirstTenHotKeys = GetSendPasteOnFirstTenHotKeys();
|
|
|
- m_csIPListToPutOnClipboard = GetListToPutOnClipboard();
|
|
|
- m_bLogSendReceiveErrors = GetLogSendReceiveErrors();
|
|
|
- m_HideDittoOnHotKeyIfAlreadyShown = GetHideDittoOnHotKeyIfAlreadyShown();
|
|
|
- m_lPort = GetPort();
|
|
|
- m_bDrawThumbnail = GetDrawThumbnail();
|
|
|
- m_csPassword = GetNetworkPassword();
|
|
|
- m_bDrawRTF = GetDrawRTF();
|
|
|
- m_bMultiPasteReverse = GetMultiPasteReverse();
|
|
|
- m_csPlaySoundOnCopy = GetPlaySoundOnCopy();
|
|
|
- m_bSendPasteMessageAfterSelection = GetSendPasteAfterSelection();
|
|
|
- m_bFindAsYouType = GetFindAsYouType();
|
|
|
- m_bEnsureEntireWindowCanBeSeen = GetEnsureEntireWindowCanBeSeen();
|
|
|
- m_bShowAllClipsInMainList = GetShowAllClipsInMainList();
|
|
|
- m_lMaxClipSizeInBytes = GetMaxClipSizeInBytes();
|
|
|
- m_dwSaveClipDelay = GetSaveClipDelay();
|
|
|
- m_lProcessDrawClipboardDelay = GetProcessDrawClipboardDelay();
|
|
|
- m_bEnableDebugLogging = GetEnableDebugLogging();
|
|
|
- m_bEnsureConnectToClipboard = GetEnsureConnectToClipboard();
|
|
|
- m_bOutputDebugString = false;
|
|
|
- m_showScrollBar = GetShowScrollBar();
|
|
|
-
|
|
|
- GetExtraNetworkPassword(true);
|
|
|
-
|
|
|
- for(int i = 0; i < MAX_SEND_CLIENTS; i++)
|
|
|
- {
|
|
|
- GetSendClients(i);
|
|
|
- }
|
|
|
-
|
|
|
- GetClientSendCount();
|
|
|
-
|
|
|
-
|
|
|
- //If running from a U3 device and no language file as been asigned
|
|
|
- //then use the language defined by the U3 launcher
|
|
|
- if(m_bU3)
|
|
|
- {
|
|
|
- CString csLanguage = GetLanguageFile();
|
|
|
- if(csLanguage.IsEmpty())
|
|
|
- {
|
|
|
- CString csLanguage = GETENV(_T("U3_ENV_LANGUAGE"));
|
|
|
- long lLanguage = ATOI(csLanguage);
|
|
|
- csLanguage.Empty();
|
|
|
- switch(lLanguage)
|
|
|
- {
|
|
|
- case 1036: //French
|
|
|
- csLanguage = _T("Français");
|
|
|
- break;
|
|
|
-
|
|
|
- case 1040: //Italian
|
|
|
- csLanguage = _T("Italiano");
|
|
|
- break;
|
|
|
-
|
|
|
- case 1031: //German
|
|
|
- csLanguage = _T("German");
|
|
|
- break;
|
|
|
-
|
|
|
- case 3082: //German
|
|
|
- csLanguage = _T("Español");
|
|
|
- break;
|
|
|
- }
|
|
|
-
|
|
|
- if(csLanguage.IsEmpty() == FALSE)
|
|
|
- {
|
|
|
- SetLanguageFile(csLanguage);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- m_Theme.Load(GetTheme());
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::ConverSettingsToIni()
|
|
|
-{
|
|
|
- m_bInConversion = true;
|
|
|
-
|
|
|
- CSize sz;
|
|
|
- CPoint pt;
|
|
|
-
|
|
|
- GetQuickPasteSize(sz);
|
|
|
- SetQuickPasteSize(sz);
|
|
|
-
|
|
|
- GetQuickPastePoint(pt);
|
|
|
- SetQuickPastePoint(pt);
|
|
|
-
|
|
|
- GetEditWndSize(sz);
|
|
|
- SetEditWndSize(sz);
|
|
|
-
|
|
|
- GetEditWndPoint(pt);
|
|
|
- SetEditWndPoint(pt);
|
|
|
-
|
|
|
- SetShowIconInSysTray(GetShowIconInSysTray());
|
|
|
- SetRunOnStartUp(GetRunOnStartUp());
|
|
|
- SetEnableTransparency(GetEnableTransparency());
|
|
|
- SetTransparencyPercent(GetTransparencyPercent());
|
|
|
- SetLinesPerRow(GetLinesPerRow());
|
|
|
- SetQuickPastePosition(GetQuickPastePosition());
|
|
|
- SetCopyGap(GetCopyGap());
|
|
|
- SetDBPath(GetDBPath());
|
|
|
- SetCheckForMaxEntries(GetCheckForMaxEntries());
|
|
|
- SetCheckForExpiredEntries(GetCheckForExpiredEntries());
|
|
|
- SetMaxEntries(GetMaxEntries());
|
|
|
- SetExpiredEntries(GetExpiredEntries());
|
|
|
- SetTripCopyCount(GetTripCopyCount());
|
|
|
- SetTripPasteCount(GetTripPasteCount());
|
|
|
- SetTripDate(GetTripDate());
|
|
|
- SetTotalCopyCount(GetTotalCopyCount());
|
|
|
- SetTotalPasteCount(GetTotalPasteCount());
|
|
|
- SetTotalDate(GetTotalDate());
|
|
|
- SetUpdateFilePath(GetUpdateFilePath());
|
|
|
- SetUpdateInstallPath(GetUpdateInstallPath());
|
|
|
- SetLastUpdate(GetLastUpdate());
|
|
|
- SetCheckForUpdates(GetCheckForUpdates());
|
|
|
- SetUseCtrlNumForFirstTenHotKeys(GetUseCtrlNumForFirstTenHotKeys());
|
|
|
- SetAllowDuplicates(GetAllowDuplicates());
|
|
|
- SetUpdateTimeOnPaste(GetUpdateTimeOnPaste());
|
|
|
- SetSaveMultiPaste(GetSaveMultiPaste());
|
|
|
- SetShowPersistent(GetShowPersistent());
|
|
|
- SetShowTextForFirstTenHotKeys(GetShowTextForFirstTenHotKeys());
|
|
|
- SetMainHWND(GetMainHWND());
|
|
|
- SetCaptionPos(GetCaptionPos());
|
|
|
- SetAutoHide(GetAutoHide());
|
|
|
- SetDescTextSize(GetDescTextSize());
|
|
|
- SetDescShowLeadingWhiteSpace(GetDescShowLeadingWhiteSpace());
|
|
|
- SetAllwaysShowDescription(GetAllwaysShowDescription());
|
|
|
- SetDoubleClickingOnCaptionDoes(GetDoubleClickingOnCaptionDoes());
|
|
|
- SetPrompForNewGroupName(GetPrompForNewGroupName());
|
|
|
- SetSendPasteOnFirstTenHotKeys(GetSendPasteOnFirstTenHotKeys());
|
|
|
-
|
|
|
- for(int i = 0; i < MAX_SEND_CLIENTS; i++)
|
|
|
- {
|
|
|
- GetSendClients(i);
|
|
|
- SetSendClients(m_SendClients[i], i);
|
|
|
- }
|
|
|
-
|
|
|
- SetListToPutOnClipboard(GetListToPutOnClipboard());
|
|
|
- SetLogSendReceiveErrors(GetLogSendReceiveErrors());
|
|
|
- SetHideDittoOnHotKeyIfAlreadyShown(GetHideDittoOnHotKeyIfAlreadyShown());
|
|
|
- SetPort(GetPort());
|
|
|
- SetDisableRecieve(GetDisableRecieve());
|
|
|
-
|
|
|
- LOGFONT font;
|
|
|
- GetFont(font);
|
|
|
- SetFont(font);
|
|
|
-
|
|
|
- SetDrawThumbnail(GetDrawThumbnail());
|
|
|
-
|
|
|
- CStringA PassA = GetNetworkPassword();
|
|
|
- CString PassW = PassA;
|
|
|
- SetNetworkPassword(PassW);
|
|
|
-
|
|
|
- SetDrawRTF(GetDrawRTF());
|
|
|
- SetMultiPasteReverse(GetMultiPasteReverse());
|
|
|
- SetPlaySoundOnCopy(GetPlaySoundOnCopy());
|
|
|
- SetSendPasteAfterSelection(GetSendPasteAfterSelection());
|
|
|
- SetFindAsYouType(GetFindAsYouType());
|
|
|
- SetEnsureEntireWindowCanBeSeen(GetEnsureEntireWindowCanBeSeen());
|
|
|
- SetShowAllClipsInMainList(GetShowAllClipsInMainList());
|
|
|
- SetExtraNetworkPassword(GetExtraNetworkPassword(false));
|
|
|
- SetMaxClipSizeInBytes(GetMaxClipSizeInBytes());
|
|
|
- SetLanguageFile(GetLanguageFile());
|
|
|
- SetSaveClipDelay(GetSaveClipDelay());
|
|
|
- SetProcessDrawClipboardDelay(GetProcessDrawClipboardDelay());
|
|
|
- SetEnableDebugLogging(GetEnableDebugLogging());
|
|
|
- SetEnsureConnectToClipboard(GetEnsureConnectToClipboard());
|
|
|
- SetPromptWhenDeletingClips(GetPromptWhenDeletingClips());
|
|
|
- SetLastImportDir(GetLastImportDir());
|
|
|
- SetLastExportDir(GetLastExportDir());
|
|
|
- SetUpdateDescWhenSavingClip(GetUpdateDescWhenSavingClip());
|
|
|
-
|
|
|
- m_bInConversion = false;
|
|
|
-}
|
|
|
-
|
|
|
-CString CGetSetOptions::GetIniFileName(bool bLocalIniFile)
|
|
|
-{
|
|
|
- CString csPath = _T("c:\\program files\\Ditto\\");
|
|
|
-
|
|
|
- if(m_bU3)
|
|
|
- {
|
|
|
- csPath = CGetSetOptions::GetPath(PATH_INI);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- if(bLocalIniFile)
|
|
|
- {
|
|
|
- csPath = GetFilePath(GetExeFileName());
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- csPath = GetAppDataPath();
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- csPath += "Ditto.Settings";
|
|
|
-
|
|
|
- return csPath;
|
|
|
-}
|
|
|
-
|
|
|
-CString CGetSetOptions::GetAppDataPath()
|
|
|
-{
|
|
|
- CString csPath;
|
|
|
- LPMALLOC pMalloc;
|
|
|
-
|
|
|
- if(SUCCEEDED(::SHGetMalloc(&pMalloc)))
|
|
|
- {
|
|
|
- LPITEMIDLIST pidlPrograms;
|
|
|
-
|
|
|
- SHGetSpecialFolderLocation(NULL, CSIDL_APPDATA, &pidlPrograms);
|
|
|
-
|
|
|
- TCHAR string[MAX_PATH];
|
|
|
- SHGetPathFromIDList(pidlPrograms, string);
|
|
|
-
|
|
|
- pMalloc->Free(pidlPrograms);
|
|
|
- pMalloc->Release();
|
|
|
-
|
|
|
- csPath = string;
|
|
|
- }
|
|
|
- FIX_CSTRING_PATH(csPath);
|
|
|
- csPath += "Ditto\\";
|
|
|
-
|
|
|
- return csPath;
|
|
|
-}
|
|
|
-
|
|
|
-long CGetSetOptions::GetProfileLong(CString csName, long lDefaultValue, CString csNewPath)
|
|
|
-{
|
|
|
- if(m_bFromIni && !m_bInConversion)
|
|
|
- {
|
|
|
- CString csApp(_T("Ditto"));
|
|
|
-
|
|
|
- if(csNewPath.IsEmpty() == FALSE)
|
|
|
- {
|
|
|
- csApp = csNewPath;
|
|
|
- }
|
|
|
-
|
|
|
- return GetPrivateProfileInt(csApp, csName, lDefaultValue, m_csIniFileName);
|
|
|
- }
|
|
|
-
|
|
|
- CString csPath(_T(REG_PATH));
|
|
|
- if(csNewPath.IsEmpty() == FALSE)
|
|
|
- {
|
|
|
- csPath += "\\" + csNewPath;
|
|
|
- }
|
|
|
-
|
|
|
- HKEY hkKey;
|
|
|
-
|
|
|
- long lResult = RegOpenKeyEx(HKEY_CURRENT_USER, csPath, NULL, KEY_READ, &hkKey);
|
|
|
-
|
|
|
- if(lResult != ERROR_SUCCESS)
|
|
|
- return lDefaultValue;
|
|
|
-
|
|
|
- DWORD buffer;
|
|
|
- DWORD len = sizeof(buffer);
|
|
|
- DWORD type;
|
|
|
-
|
|
|
- lResult = ::RegQueryValueEx(hkKey, csName, 0, &type, (LPBYTE)&buffer, &len);
|
|
|
-
|
|
|
- RegCloseKey(hkKey);
|
|
|
-
|
|
|
- if(lResult == ERROR_SUCCESS)
|
|
|
- return (long)buffer;
|
|
|
-
|
|
|
- return lDefaultValue;
|
|
|
-}
|
|
|
-
|
|
|
-CString CGetSetOptions::GetProfileString(CString csName, CString csDefault, CString csNewPath)
|
|
|
-{
|
|
|
- if(m_bFromIni && !m_bInConversion)
|
|
|
- {
|
|
|
- CString csApp(_T("Ditto"));
|
|
|
-
|
|
|
- if(csNewPath.IsEmpty() == FALSE)
|
|
|
- {
|
|
|
- csApp = csNewPath;
|
|
|
- }
|
|
|
-
|
|
|
- TCHAR cString[MAX_PATH];
|
|
|
- GetPrivateProfileString(csApp, csName, csDefault, cString, sizeof(cString), m_csIniFileName);
|
|
|
-
|
|
|
- return cString;
|
|
|
- }
|
|
|
-
|
|
|
- CString csPath(_T(REG_PATH));
|
|
|
- if(csNewPath.IsEmpty() == FALSE)
|
|
|
- {
|
|
|
- csPath += "\\" + csNewPath;
|
|
|
- }
|
|
|
-
|
|
|
- HKEY hkKey;
|
|
|
- long lResult = RegOpenKeyEx(HKEY_CURRENT_USER, csPath, NULL, KEY_READ, &hkKey);
|
|
|
-
|
|
|
- TCHAR szString[256];
|
|
|
- ZeroMemory(szString, sizeof(szString));
|
|
|
- DWORD dwBufLen = 256;
|
|
|
-
|
|
|
- lResult = ::RegQueryValueEx(hkKey , csName, NULL, NULL, (LPBYTE)szString, &dwBufLen);
|
|
|
-
|
|
|
- RegCloseKey(hkKey);
|
|
|
-
|
|
|
- if(lResult != ERROR_SUCCESS)
|
|
|
- return csDefault;
|
|
|
-
|
|
|
- return szString;
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::SetProfileLong(CString csName, long lValue)
|
|
|
-{
|
|
|
- if(m_bFromIni)
|
|
|
- {
|
|
|
- return WritePrivateProfileInt(_T("Ditto"), csName, lValue, m_csIniFileName);
|
|
|
- }
|
|
|
-
|
|
|
- HKEY hkKey;
|
|
|
- DWORD dWord;
|
|
|
- long lResult = RegCreateKeyEx(HKEY_CURRENT_USER, _T(REG_PATH), NULL,
|
|
|
- NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS,
|
|
|
- NULL, &hkKey, &dWord);
|
|
|
-
|
|
|
- if(lResult != ERROR_SUCCESS)
|
|
|
- return FALSE;
|
|
|
-
|
|
|
- DWORD val = (DWORD)lValue;
|
|
|
- lResult = ::RegSetValueEx(hkKey, csName, 0, REG_DWORD, (LPBYTE)&val, sizeof(DWORD));
|
|
|
-
|
|
|
- RegCloseKey(hkKey);
|
|
|
-
|
|
|
- return lResult == ERROR_SUCCESS;
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::SetProfileString(CString csName, CString csValue)
|
|
|
-{
|
|
|
- if(m_bFromIni)
|
|
|
- {
|
|
|
- return WritePrivateProfileString(_T("Ditto"), csName, csValue, m_csIniFileName);
|
|
|
- }
|
|
|
-
|
|
|
- HKEY hkKey;
|
|
|
- DWORD dWord;
|
|
|
- long lResult = RegCreateKeyEx(HKEY_CURRENT_USER, _T(REG_PATH), NULL,
|
|
|
- NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS,
|
|
|
- NULL, &hkKey, &dWord);
|
|
|
-
|
|
|
- if(lResult != ERROR_SUCCESS)
|
|
|
- return FALSE;
|
|
|
-
|
|
|
- ::RegSetValueEx(hkKey, csName, NULL, REG_SZ,
|
|
|
- (BYTE*)(LPCTSTR)csValue, csValue.GetLength()*sizeof(TCHAR));
|
|
|
-
|
|
|
- RegCloseKey(hkKey);
|
|
|
-
|
|
|
- return lResult == ERROR_SUCCESS;
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::SetProfileData(CString csName, LPVOID lpData, DWORD dwLength)
|
|
|
-{
|
|
|
- if(m_bFromIni)
|
|
|
- {
|
|
|
- ASSERT(!"SetProfileData not supported in .ini settings");
|
|
|
- return FALSE;
|
|
|
- }
|
|
|
-
|
|
|
- HKEY hkKey;
|
|
|
- DWORD dWord;
|
|
|
- long lResult = RegCreateKeyEx(HKEY_CURRENT_USER, _T(REG_PATH), NULL,
|
|
|
- NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS,
|
|
|
- NULL, &hkKey, &dWord);
|
|
|
-
|
|
|
- if(lResult != ERROR_SUCCESS)
|
|
|
- return FALSE;
|
|
|
-
|
|
|
- ::RegSetValueEx(hkKey, csName, NULL, REG_BINARY,
|
|
|
- (BYTE*)lpData, dwLength);
|
|
|
-
|
|
|
- RegCloseKey(hkKey);
|
|
|
-
|
|
|
- return lResult == ERROR_SUCCESS;
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::GetProfileFont(CString csSection, LOGFONT &font)
|
|
|
-{
|
|
|
- font.lfHeight = GetPrivateProfileInt(csSection, _T("Height"), 0, m_csIniFileName);
|
|
|
- font.lfWidth = GetPrivateProfileInt(csSection, _T("Width"), 0, m_csIniFileName);
|
|
|
- font.lfEscapement = GetPrivateProfileInt(csSection, _T("Escapement"), 0, m_csIniFileName);
|
|
|
- font.lfOrientation = GetPrivateProfileInt(csSection, _T("Orientation"), 0, m_csIniFileName);
|
|
|
- font.lfWeight = GetPrivateProfileInt(csSection, _T("Weight"), 0, m_csIniFileName);
|
|
|
- font.lfItalic = GetPrivateProfileInt(csSection, _T("Italic"), 0, m_csIniFileName);
|
|
|
- font.lfUnderline = GetPrivateProfileInt(csSection, _T("Underline"), 0, m_csIniFileName);
|
|
|
- font.lfStrikeOut = GetPrivateProfileInt(csSection, _T("StrikeOut"), 0, m_csIniFileName);
|
|
|
- font.lfCharSet = GetPrivateProfileInt(csSection, _T("CharSet"), 0, m_csIniFileName);
|
|
|
- font.lfOutPrecision = GetPrivateProfileInt(csSection, _T("OutPrecision"), 0, m_csIniFileName);
|
|
|
- font.lfClipPrecision = GetPrivateProfileInt(csSection, _T("ClipPrecision"), 0, m_csIniFileName);
|
|
|
- font.lfQuality = GetPrivateProfileInt(csSection, _T("Quality"), 0, m_csIniFileName);
|
|
|
- font.lfPitchAndFamily = GetPrivateProfileInt(csSection, _T("PitchAndFamily"), 0, m_csIniFileName);
|
|
|
- GetPrivateProfileString(csSection, _T("FaceName"), _T(""), font.lfFaceName, sizeof(font.lfFaceName), m_csIniFileName);
|
|
|
-
|
|
|
- return TRUE;
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::SetProfileFont(CString csSection, LOGFONT &font)
|
|
|
-{
|
|
|
- WritePrivateProfileInt(csSection, _T("Height"), font.lfHeight, m_csIniFileName);
|
|
|
- WritePrivateProfileInt(csSection, _T("Width"), font.lfWidth, m_csIniFileName);
|
|
|
- WritePrivateProfileInt(csSection, _T("Escapement"), font.lfEscapement, m_csIniFileName);
|
|
|
- WritePrivateProfileInt(csSection, _T("Orientation"), font.lfOrientation, m_csIniFileName);
|
|
|
- WritePrivateProfileInt(csSection, _T("Weight"), font.lfWeight, m_csIniFileName);
|
|
|
- WritePrivateProfileInt(csSection, _T("Italic"), font.lfItalic, m_csIniFileName);
|
|
|
- WritePrivateProfileInt(csSection, _T("Underline"), font.lfUnderline, m_csIniFileName);
|
|
|
- WritePrivateProfileInt(csSection, _T("StrikeOut"), font.lfStrikeOut, m_csIniFileName);
|
|
|
- WritePrivateProfileInt(csSection, _T("CharSet"), font.lfCharSet, m_csIniFileName);
|
|
|
- WritePrivateProfileInt(csSection, _T("OutPrecision"), font.lfOutPrecision, m_csIniFileName);
|
|
|
- WritePrivateProfileInt(csSection, _T("ClipPrecision"), font.lfClipPrecision, m_csIniFileName);
|
|
|
- WritePrivateProfileInt(csSection, _T("Quality"), font.lfQuality, m_csIniFileName);
|
|
|
- WritePrivateProfileInt(csSection, _T("PitchAndFamily"), font.lfPitchAndFamily, m_csIniFileName);
|
|
|
- WritePrivateProfileString(csSection, _T("FaceName"), font.lfFaceName, m_csIniFileName);
|
|
|
-
|
|
|
- return TRUE;
|
|
|
-}
|
|
|
-
|
|
|
-LPVOID CGetSetOptions::GetProfileData(CString csName, DWORD &dwLength)
|
|
|
-{
|
|
|
- if(m_bFromIni && !m_bInConversion)
|
|
|
- {
|
|
|
- ASSERT(!"GetProfileData not supported in .ini settings");
|
|
|
- return NULL;
|
|
|
- }
|
|
|
-
|
|
|
- HKEY hkKey;
|
|
|
-
|
|
|
- long lResult = RegOpenKeyEx(HKEY_CURRENT_USER, _T(REG_PATH),
|
|
|
- NULL, KEY_READ, &hkKey);
|
|
|
-
|
|
|
- lResult = ::RegQueryValueEx(hkKey , csName, NULL, NULL, NULL, &dwLength);
|
|
|
-
|
|
|
- if(lResult != ERROR_SUCCESS)
|
|
|
- return NULL;
|
|
|
-
|
|
|
- LPVOID lpVoid = new BYTE[dwLength];
|
|
|
-
|
|
|
- lResult = ::RegQueryValueEx(hkKey , csName, NULL, NULL, (LPBYTE)lpVoid, &dwLength);
|
|
|
-
|
|
|
- RegCloseKey(hkKey);
|
|
|
-
|
|
|
- if(lResult != ERROR_SUCCESS)
|
|
|
- return NULL;
|
|
|
-
|
|
|
- return lpVoid;
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::GetShowIconInSysTray()
|
|
|
-{
|
|
|
- return GetProfileLong("ShowIconInSystemTray", TRUE);
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::SetShowIconInSysTray(BOOL bShow)
|
|
|
-{
|
|
|
- return SetProfileLong("ShowIconInSystemTray", bShow);
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::SetEnableTransparency(BOOL bCheck)
|
|
|
-{
|
|
|
- return SetProfileLong("EnableTransparency", bCheck);
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::GetEnableTransparency()
|
|
|
-{
|
|
|
- return GetProfileLong("EnableTransparency", FALSE);
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::SetTransparencyPercent(long lPercent)
|
|
|
-{
|
|
|
-#ifdef AFTER_98
|
|
|
- if(lPercent > OPACITY_MAX)
|
|
|
- lPercent = OPACITY_MAX;
|
|
|
- if(lPercent < 0)
|
|
|
- lPercent = 0;
|
|
|
-
|
|
|
- return SetProfileLong("TransparencyPercent", lPercent);
|
|
|
-#endif
|
|
|
- return FALSE;
|
|
|
-}
|
|
|
-
|
|
|
-long CGetSetOptions::GetTransparencyPercent()
|
|
|
-{
|
|
|
-#ifdef AFTER_98
|
|
|
- long lValue = GetProfileLong("TransparencyPercent", 14);
|
|
|
-
|
|
|
- if(lValue > OPACITY_MAX) lValue = OPACITY_MAX;
|
|
|
- if(lValue < 0) lValue = 0;
|
|
|
-
|
|
|
- return lValue;
|
|
|
-#endif
|
|
|
- return 0;
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::SetLinesPerRow(long lLines)
|
|
|
-{
|
|
|
- m_nLinesPerRow = lLines;
|
|
|
- return SetProfileLong("LinesPerRow", lLines);
|
|
|
-}
|
|
|
-
|
|
|
-long CGetSetOptions::GetLinesPerRow()
|
|
|
-{
|
|
|
- return GetProfileLong("LinesPerRow", 2);
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::GetRunOnStartUp()
|
|
|
-{
|
|
|
- HKEY hkRun;
|
|
|
-
|
|
|
- LONG nResult = RegOpenKeyEx(HKEY_CURRENT_USER,
|
|
|
- _T("Software\\Microsoft\\Windows\\CurrentVersion\\Run"),
|
|
|
- NULL, KEY_READ, &hkRun);
|
|
|
-
|
|
|
- if(nResult != ERROR_SUCCESS)
|
|
|
- return FALSE;
|
|
|
-
|
|
|
- nResult = RegQueryValueEx(hkRun, GetAppName(), NULL, NULL, NULL, NULL);
|
|
|
- RegCloseKey(hkRun);
|
|
|
- return nResult == ERROR_SUCCESS;
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetRunOnStartUp(BOOL bRun)
|
|
|
-{
|
|
|
- //Can't set auto run when running from U3 device
|
|
|
- if(m_bU3)
|
|
|
- return;
|
|
|
-
|
|
|
- if(bRun == GetRunOnStartUp())
|
|
|
- return;
|
|
|
-
|
|
|
- HKEY hkRun;
|
|
|
- LONG nResult = RegOpenKeyEx(HKEY_CURRENT_USER,
|
|
|
- _T("Software\\Microsoft\\Windows\\CurrentVersion\\Run"),
|
|
|
- NULL, KEY_ALL_ACCESS, &hkRun);
|
|
|
-
|
|
|
- if(nResult != ERROR_SUCCESS)
|
|
|
- return;
|
|
|
-
|
|
|
- if(bRun)
|
|
|
- {
|
|
|
- CString sExeName = GetExeFileName();
|
|
|
- ::RegSetValueEx(hkRun, GetAppName(), NULL, REG_SZ,
|
|
|
- (BYTE*)(LPCTSTR)sExeName, sExeName.GetLength()*sizeof(TCHAR));
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- ::RegDeleteValue(hkRun, GetAppName());
|
|
|
- }
|
|
|
-
|
|
|
- ::RegCloseKey(hkRun);
|
|
|
-}
|
|
|
-
|
|
|
-CString CGetSetOptions::GetExeFileName()
|
|
|
-{
|
|
|
- CString sExeName;
|
|
|
- GetModuleFileName(NULL, sExeName.GetBuffer(_MAX_PATH),_MAX_PATH);
|
|
|
- sExeName.ReleaseBuffer();
|
|
|
- return sExeName;
|
|
|
-}
|
|
|
-
|
|
|
-CString CGetSetOptions::GetAppName()
|
|
|
-{
|
|
|
- return "Ditto";
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::SetQuickPastePosition(long lPosition)
|
|
|
-{
|
|
|
- return SetProfileLong("ShowQuickPastePosition", lPosition);
|
|
|
-}
|
|
|
-
|
|
|
-long CGetSetOptions::GetQuickPastePosition()
|
|
|
-{
|
|
|
- return GetProfileLong("ShowQuickPastePosition", POS_AT_CURSOR);
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::SetQuickPasteSize(CSize size)
|
|
|
-{
|
|
|
- BOOL bRet = SetProfileLong("QuickPasteCX", size.cx);
|
|
|
- bRet = SetProfileLong("QuickPasteCY", size.cy);
|
|
|
-
|
|
|
- return bRet;
|
|
|
-}
|
|
|
-void CGetSetOptions::GetQuickPasteSize(CSize &size)
|
|
|
-{
|
|
|
- size.cx = GetProfileLong("QuickPasteCX", 300);
|
|
|
- size.cy = GetProfileLong("QuickPasteCY", 300);
|
|
|
- if(size.cx <= 0 && size.cy <= 0)
|
|
|
- {
|
|
|
- size.cx = 300;
|
|
|
- size.cy = 300;
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::SetQuickPastePoint(CPoint point)
|
|
|
-{
|
|
|
- BOOL bRet = SetProfileLong("QuickPasteX", point.x);
|
|
|
- bRet = SetProfileLong("QuickPasteY", point.y);
|
|
|
-
|
|
|
- return bRet;
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::GetQuickPastePoint(CPoint &point)
|
|
|
-{
|
|
|
- point.x = GetProfileLong("QuickPasteX", 300);
|
|
|
- point.y = GetProfileLong("QuickPasteY", 300);
|
|
|
-
|
|
|
- if(point.x <= 0 && point.y <= 0)
|
|
|
- {
|
|
|
- point.x = 300;
|
|
|
- point.y = 300;
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::SetEditWndSize(CSize size)
|
|
|
-{
|
|
|
- BOOL bRet = SetProfileLong("EditWndCX", size.cx);
|
|
|
- bRet = SetProfileLong("EditWndCY", size.cy);
|
|
|
-
|
|
|
- return bRet;
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::GetEditWndSize(CSize &size)
|
|
|
-{
|
|
|
- size.cx = GetProfileLong("EditWndCX", 600);
|
|
|
- size.cy = GetProfileLong("EditWndCY", 600);
|
|
|
- if(size.cx <= 0 && size.cy <= 0)
|
|
|
- {
|
|
|
- size.cx = 600;
|
|
|
- size.cy = 600;
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::SetEditWndPoint(CPoint point)
|
|
|
-{
|
|
|
- BOOL bRet = SetProfileLong("EditWndX", point.x);
|
|
|
- bRet = SetProfileLong("EditWndY", point.y);
|
|
|
-
|
|
|
- return bRet;
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::GetEditWndPoint(CPoint &point)
|
|
|
-{
|
|
|
- point.x = GetProfileLong("EditWndX", 100);
|
|
|
- point.y = GetProfileLong("EditWndY", 100);
|
|
|
-
|
|
|
- if(point.x <= 0 && point.y <= 0)
|
|
|
- {
|
|
|
- point.x = 100;
|
|
|
- point.y = 100;
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-long CGetSetOptions::GetCopyGap()
|
|
|
-{
|
|
|
- return GetProfileLong("CopyGap", 150);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetCopyGap(long lGap)
|
|
|
-{
|
|
|
- SetProfileLong("CopyGap", lGap);
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::SetDBPathOld(CString csPath)
|
|
|
-{
|
|
|
- return SetProfileString("DBPath", csPath);
|
|
|
-}
|
|
|
-
|
|
|
-CString CGetSetOptions::GetDBPathOld()
|
|
|
-{
|
|
|
- return GetProfileString("DBPath", "");
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::SetDBPath(CString csPath)
|
|
|
-{
|
|
|
- return SetProfileString("DBPath3", csPath);
|
|
|
-}
|
|
|
-
|
|
|
-CString CGetSetOptions::GetDBPath()
|
|
|
-{
|
|
|
- CString csDBPath;
|
|
|
- if(m_bU3)
|
|
|
- {
|
|
|
- csDBPath = GetProfileString("DBPath3", "");
|
|
|
- if(csDBPath.IsEmpty())
|
|
|
- {
|
|
|
- csDBPath = GetDefaultDBName();
|
|
|
- }
|
|
|
-
|
|
|
- CPath ExistingPath(csDBPath);
|
|
|
- csDBPath = CGetSetOptions::GetPath(PATH_DATABASE);
|
|
|
- csDBPath += ExistingPath.GetName();
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- csDBPath = GetProfileString("DBPath3", "");
|
|
|
- }
|
|
|
-
|
|
|
- return csDBPath;
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetCheckForMaxEntries(BOOL bVal)
|
|
|
-{
|
|
|
- SetProfileLong("CheckForMaxEntries", bVal);
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::GetCheckForMaxEntries()
|
|
|
-{
|
|
|
- BOOL bDefault = FALSE;
|
|
|
- if(m_bU3)
|
|
|
- bDefault = TRUE;
|
|
|
- if(GetIsPortableDitto())
|
|
|
- bDefault = TRUE;
|
|
|
-
|
|
|
- return GetProfileLong("CheckForMaxEntries", bDefault);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetCheckForExpiredEntries(BOOL bVal)
|
|
|
-{
|
|
|
- SetProfileLong("CheckForExpiredEntries", bVal);
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::GetCheckForExpiredEntries()
|
|
|
-{
|
|
|
- return GetProfileLong("CheckForExpiredEntries", FALSE);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetMaxEntries(long lVal)
|
|
|
-{
|
|
|
- SetProfileLong("MaxEntries", lVal);
|
|
|
-}
|
|
|
-
|
|
|
-long CGetSetOptions::GetMaxEntries()
|
|
|
-{
|
|
|
- long lMax = 500;
|
|
|
- if(m_bU3)
|
|
|
- lMax = 75;
|
|
|
- if(GetIsPortableDitto())
|
|
|
- lMax = 100;
|
|
|
- return GetProfileLong("MaxEntries", lMax);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetExpiredEntries(long lVal)
|
|
|
-{
|
|
|
- SetProfileLong("ExpiredEntries", lVal);
|
|
|
-}
|
|
|
-
|
|
|
-long CGetSetOptions::GetExpiredEntries()
|
|
|
-{
|
|
|
- return GetProfileLong("ExpiredEntries", 5);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetTripCopyCount(long lVal)
|
|
|
-{
|
|
|
- // negative means a relative offset
|
|
|
- if(lVal < 0)
|
|
|
- lVal = GetTripCopyCount() - lVal; // add the absolute value
|
|
|
-
|
|
|
- if(GetTripDate() == 0)
|
|
|
- SetTripDate(-1);
|
|
|
-
|
|
|
- SetProfileLong("TripCopies", lVal);
|
|
|
-}
|
|
|
-
|
|
|
-long CGetSetOptions::GetTripCopyCount()
|
|
|
-{
|
|
|
- return GetProfileLong("TripCopies", 0);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetTripPasteCount(long lVal)
|
|
|
-{
|
|
|
- // negative means a relative offset
|
|
|
- if(lVal < 0)
|
|
|
- lVal = GetTripPasteCount() - lVal; // add the absolute value
|
|
|
-
|
|
|
- if(GetTripDate() == 0)
|
|
|
- SetTripDate(-1);
|
|
|
-
|
|
|
- SetProfileLong("TripPastes", lVal);
|
|
|
-}
|
|
|
-
|
|
|
-long CGetSetOptions::GetTripPasteCount()
|
|
|
-{
|
|
|
- return GetProfileLong("TripPastes", 0);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetTripDate(long lDate)
|
|
|
-{
|
|
|
- if(lDate == -1)
|
|
|
- lDate = (long)CTime::GetCurrentTime().GetTime();
|
|
|
-
|
|
|
- SetProfileLong("TripDate", lDate);
|
|
|
-}
|
|
|
-
|
|
|
-long CGetSetOptions::GetTripDate()
|
|
|
-{
|
|
|
- return GetProfileLong("TripDate", 0);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetTotalCopyCount(long lVal)
|
|
|
-{
|
|
|
- // negative means a relative offset
|
|
|
- if(lVal < 0)
|
|
|
- lVal = GetTotalCopyCount() - lVal; // add the absolute value
|
|
|
-
|
|
|
- if(GetTotalDate() == 0)
|
|
|
- SetTotalDate(-1);
|
|
|
-
|
|
|
- SetProfileLong("TotalCopies", lVal);
|
|
|
-}
|
|
|
-
|
|
|
-long CGetSetOptions::GetTotalCopyCount()
|
|
|
-{
|
|
|
- return GetProfileLong("TotalCopies", 0);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetTotalPasteCount(long lVal)
|
|
|
-{
|
|
|
- // negative means a relative offset
|
|
|
- if(lVal < 0)
|
|
|
- lVal = GetTotalPasteCount() - lVal; // add the absolute value
|
|
|
-
|
|
|
- if(GetTotalDate() == 0)
|
|
|
- SetTotalDate(-1);
|
|
|
-
|
|
|
- SetProfileLong("TotalPastes", lVal);
|
|
|
-}
|
|
|
-
|
|
|
-long CGetSetOptions::GetTotalPasteCount()
|
|
|
-{
|
|
|
- return GetProfileLong("TotalPastes", 0);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetTotalDate(long lDate)
|
|
|
-{
|
|
|
- if(lDate == -1)
|
|
|
- lDate = (long)CTime::GetCurrentTime().GetTime();
|
|
|
-
|
|
|
- SetProfileLong("TotalDate", lDate);
|
|
|
-}
|
|
|
-
|
|
|
-long CGetSetOptions::GetTotalDate()
|
|
|
-{
|
|
|
- return GetProfileLong("TotalDate", 0);
|
|
|
-}
|
|
|
-
|
|
|
-CString CGetSetOptions::GetUpdateFilePath()
|
|
|
-{
|
|
|
- return GetProfileString("UpdateFilePath", "");
|
|
|
-}
|
|
|
-BOOL CGetSetOptions::SetUpdateFilePath(CString cs)
|
|
|
-{
|
|
|
- return SetProfileString("UpdateFilePath", cs);
|
|
|
-}
|
|
|
-
|
|
|
-CString CGetSetOptions::GetUpdateInstallPath()
|
|
|
-{
|
|
|
- return GetProfileString("UpdateInstallPath", "");
|
|
|
-}
|
|
|
-BOOL CGetSetOptions::SetUpdateInstallPath(CString cs)
|
|
|
-{
|
|
|
- return SetProfileString("UpdateInstallPath", cs);
|
|
|
-}
|
|
|
-
|
|
|
-long CGetSetOptions::GetLastUpdate()
|
|
|
-{
|
|
|
- return GetProfileLong("LastUpdateDay", 0);
|
|
|
-}
|
|
|
-long CGetSetOptions::SetLastUpdate(long lValue)
|
|
|
-{
|
|
|
- return SetProfileLong("LastUpdateDay", lValue);
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::GetCheckForUpdates()
|
|
|
-{
|
|
|
- return GetProfileLong("CheckForUpdates", TRUE);
|
|
|
-}
|
|
|
-BOOL CGetSetOptions::SetCheckForUpdates(BOOL bCheck)
|
|
|
-{
|
|
|
- return SetProfileLong("CheckForUpdates", bCheck);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetUseCtrlNumForFirstTenHotKeys(BOOL bVal)
|
|
|
-{
|
|
|
- SetProfileLong("UseCtrlNumForFirstTenHotKeys", bVal);
|
|
|
- m_bUseCtrlNumAccel = bVal;
|
|
|
-}
|
|
|
-BOOL CGetSetOptions::GetUseCtrlNumForFirstTenHotKeys()
|
|
|
-{
|
|
|
- return GetProfileLong("UseCtrlNumForFirstTenHotKeys", 0);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetAllowDuplicates(BOOL bVal)
|
|
|
-{
|
|
|
- SetProfileLong("AllowDuplicates", bVal);
|
|
|
- m_bAllowDuplicates = bVal;
|
|
|
-}
|
|
|
-BOOL CGetSetOptions::GetAllowDuplicates()
|
|
|
-{
|
|
|
- return GetProfileLong("AllowDuplicates", 0);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetUpdateTimeOnPaste(BOOL bVal)
|
|
|
-{
|
|
|
- SetProfileLong("UpdateTimeOnPaste", bVal);
|
|
|
- m_bUpdateTimeOnPaste = bVal;
|
|
|
-}
|
|
|
-BOOL CGetSetOptions::GetUpdateTimeOnPaste()
|
|
|
-{
|
|
|
- return GetProfileLong("UpdateTimeOnPaste", TRUE);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetSaveMultiPaste(BOOL bVal)
|
|
|
-{
|
|
|
- SetProfileLong("SaveMultiPaste", bVal);
|
|
|
- m_bSaveMultiPaste = bVal;
|
|
|
-}
|
|
|
-BOOL CGetSetOptions::GetSaveMultiPaste()
|
|
|
-{
|
|
|
- return GetProfileLong("SaveMultiPaste", 0);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetShowPersistent(BOOL bVal)
|
|
|
-{
|
|
|
- SetProfileLong("ShowPersistent", bVal);
|
|
|
- m_bShowPersistent = bVal;
|
|
|
-}
|
|
|
-BOOL CGetSetOptions::GetShowPersistent()
|
|
|
-{
|
|
|
- return GetProfileLong("ShowPersistent", 0);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetShowTextForFirstTenHotKeys(BOOL bVal)
|
|
|
-{
|
|
|
- SetProfileLong("ShowTextForFirstTenHotKeys", bVal);
|
|
|
-}
|
|
|
-BOOL CGetSetOptions::GetShowTextForFirstTenHotKeys()
|
|
|
-{
|
|
|
- return GetProfileLong("ShowTextForFirstTenHotKeys", TRUE);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetMainHWND(long lhWnd)
|
|
|
-{
|
|
|
- SetProfileLong("MainhWnd", lhWnd);
|
|
|
-}
|
|
|
-BOOL CGetSetOptions::GetMainHWND()
|
|
|
-{
|
|
|
- return GetProfileLong("MainhWnd", 0);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetCaptionPos(long lPos)
|
|
|
-{
|
|
|
- SetProfileLong("CaptionPos", lPos);
|
|
|
-}
|
|
|
-long CGetSetOptions::GetCaptionPos()
|
|
|
-{
|
|
|
- return GetProfileLong("CaptionPos", CAPTION_RIGHT);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetAutoHide(BOOL bAutoHide)
|
|
|
-{
|
|
|
- SetProfileLong("AutoHide", bAutoHide);
|
|
|
-}
|
|
|
-BOOL CGetSetOptions::GetAutoHide()
|
|
|
-{
|
|
|
- return GetProfileLong("AutoHide", FALSE);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetDescTextSize(long lSize)
|
|
|
-{
|
|
|
- SetProfileLong("DescTextSize", lSize);
|
|
|
- m_bDescTextSize = lSize;
|
|
|
-}
|
|
|
-long CGetSetOptions::GetDescTextSize()
|
|
|
-{
|
|
|
- return GetProfileLong("DescTextSize", 500);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetDescShowLeadingWhiteSpace(BOOL bVal)
|
|
|
-{
|
|
|
- SetProfileLong("DescShowLeadingWhiteSpace", bVal);
|
|
|
- m_bDescShowLeadingWhiteSpace = bVal;
|
|
|
-}
|
|
|
-BOOL CGetSetOptions::GetDescShowLeadingWhiteSpace()
|
|
|
-{
|
|
|
- return GetProfileLong("DescShowLeadingWhiteSpace", FALSE);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetAllwaysShowDescription(long bShow)
|
|
|
-{
|
|
|
- SetProfileLong("AllwaysShowDescription", bShow);
|
|
|
- m_bAllwaysShowDescription = bShow;
|
|
|
-}
|
|
|
-BOOL CGetSetOptions::GetAllwaysShowDescription()
|
|
|
-{
|
|
|
- return GetProfileLong("AllwaysShowDescription", FALSE);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetDoubleClickingOnCaptionDoes(long lOption)
|
|
|
-{
|
|
|
- SetProfileLong("DoubleClickingOnCaptionDoes", lOption);
|
|
|
- m_bDoubleClickingOnCaptionDoes = lOption;
|
|
|
-}
|
|
|
-long CGetSetOptions::GetDoubleClickingOnCaptionDoes()
|
|
|
-{
|
|
|
- return GetProfileLong("DoubleClickingOnCaptionDoes", TOGGLES_ALLWAYS_ON_TOP);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetPrompForNewGroupName(BOOL bOption)
|
|
|
-{
|
|
|
- SetProfileLong("PrompForNewGroupName", bOption);
|
|
|
- m_bPrompForNewGroupName = bOption;
|
|
|
-}
|
|
|
-BOOL CGetSetOptions::GetPrompForNewGroupName()
|
|
|
-{
|
|
|
- return GetProfileLong("PrompForNewGroupName", TRUE);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetSendPasteOnFirstTenHotKeys(BOOL bOption)
|
|
|
-{
|
|
|
- SetProfileLong("SendPasteOnFirstTenHotKeys", bOption);
|
|
|
- m_bSendPasteOnFirstTenHotKeys = bOption;
|
|
|
-}
|
|
|
-BOOL CGetSetOptions::GetSendPasteOnFirstTenHotKeys()
|
|
|
-{
|
|
|
- return GetProfileLong("SendPasteOnFirstTenHotKeys", TRUE);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetSendClients(CSendClients Client, int nPos)
|
|
|
-{
|
|
|
- CString cs;
|
|
|
-
|
|
|
- cs.Format(_T("sendclient_ip_%d"), nPos);
|
|
|
- SetProfileString(cs, Client.csIP);
|
|
|
-
|
|
|
- cs.Format(_T("sendclient_autosend_%d"), nPos);
|
|
|
- SetProfileLong(cs, Client.bSendAll);
|
|
|
-
|
|
|
- cs.Format(_T("sendclient_description_%d"), nPos);
|
|
|
- SetProfileString(cs, Client.csDescription);
|
|
|
-
|
|
|
- Client.bShownFirstError = m_SendClients[nPos].bShownFirstError;
|
|
|
-
|
|
|
- m_SendClients[nPos] = Client;
|
|
|
-}
|
|
|
-
|
|
|
-CSendClients CGetSetOptions::GetSendClients(int nPos)
|
|
|
-{
|
|
|
- CSendClients Client;
|
|
|
-
|
|
|
- CString cs;
|
|
|
-
|
|
|
- cs.Format(_T("sendclient_ip_%d"), nPos);
|
|
|
- Client.csIP = GetProfileString(cs, "");
|
|
|
-
|
|
|
- cs.Format(_T("sendclient_autosend_%d"), nPos);
|
|
|
- Client.bSendAll = GetProfileLong(cs, FALSE);
|
|
|
-
|
|
|
- cs.Format(_T("sendclient_description_%d"), nPos);
|
|
|
- Client.csDescription = GetProfileString(cs, "");
|
|
|
-
|
|
|
- m_SendClients[nPos] = Client;
|
|
|
-
|
|
|
- return Client;
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::GetClientSendCount()
|
|
|
-{
|
|
|
- m_lAutoSendClientCount = 0;
|
|
|
- for(int i = 0; i < MAX_SEND_CLIENTS; i++)
|
|
|
- {
|
|
|
- if(m_SendClients[i].csIP.GetLength() > 0)
|
|
|
- {
|
|
|
- if(m_SendClients[i].bSendAll)
|
|
|
- m_lAutoSendClientCount++;
|
|
|
- }
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-CString CGetSetOptions::GetListToPutOnClipboard()
|
|
|
-{
|
|
|
- CString cs = GetProfileString("ListToPutOnClipboard", "");
|
|
|
- cs.MakeUpper();
|
|
|
- return cs;
|
|
|
-}
|
|
|
-BOOL CGetSetOptions::SetListToPutOnClipboard(CString cs)
|
|
|
-{
|
|
|
- cs.MakeUpper();
|
|
|
- m_csIPListToPutOnClipboard = cs;
|
|
|
- return SetProfileString("ListToPutOnClipboard", cs);
|
|
|
-
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetLogSendReceiveErrors(BOOL bOption)
|
|
|
-{
|
|
|
- m_bLogSendReceiveErrors = bOption;
|
|
|
-
|
|
|
- SetProfileLong("LogSendReceiveErrors", bOption);
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::GetLogSendReceiveErrors()
|
|
|
-{
|
|
|
- return GetProfileLong("LogSendReceiveErrors", FALSE);
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::GetHideDittoOnHotKeyIfAlreadyShown()
|
|
|
-{
|
|
|
- return GetProfileLong("HideDittoOnHotKeyIfAlreadyShown", TRUE);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetHideDittoOnHotKeyIfAlreadyShown(BOOL bVal)
|
|
|
-{
|
|
|
- m_HideDittoOnHotKeyIfAlreadyShown = bVal;
|
|
|
-
|
|
|
- SetProfileLong("HideDittoOnHotKeyIfAlreadyShown", bVal);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetPort(long lPort)
|
|
|
-{
|
|
|
- m_lPort = lPort;
|
|
|
- SetProfileLong("SendRecvPort", lPort);
|
|
|
-}
|
|
|
-
|
|
|
-long CGetSetOptions::GetPort()
|
|
|
-{
|
|
|
- return GetProfileLong("SendRecvPort", 23443);
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::GetDisableRecieve()
|
|
|
-{
|
|
|
- BOOL bDefault = FALSE;
|
|
|
- if(m_bU3)
|
|
|
- bDefault = TRUE;
|
|
|
- if(GetIsPortableDitto())
|
|
|
- bDefault = TRUE;
|
|
|
-
|
|
|
- return GetProfileLong("DisableRecieve", bDefault);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetDisableRecieve(BOOL bVal)
|
|
|
-{
|
|
|
- SetProfileLong("DisableRecieve", bVal);
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::GetFont(LOGFONT &font)
|
|
|
-{
|
|
|
- if(m_bFromIni && !m_bInConversion)
|
|
|
- {
|
|
|
- GetProfileFont("DisplayFont", font);
|
|
|
-
|
|
|
- //Return true if there is a font name
|
|
|
- //other wise load the default font below
|
|
|
- if(font.lfFaceName[0] != 0)
|
|
|
- {
|
|
|
- return TRUE;
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- DWORD dwLength = 0;
|
|
|
- #ifdef _UNICODE
|
|
|
- LPVOID lpVoid = GetProfileData("DisplayFont3", dwLength);
|
|
|
- #else
|
|
|
- LPVOID lpVoid = GetProfileData("DisplayFont", dwLength);
|
|
|
- #endif
|
|
|
- if(lpVoid)
|
|
|
- {
|
|
|
- if(sizeof(font) == dwLength)
|
|
|
- {
|
|
|
- memcpy(&font, lpVoid, dwLength);
|
|
|
- delete[] lpVoid;
|
|
|
- lpVoid = NULL;
|
|
|
- return TRUE;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- ASSERT(!"invalid font struct size");
|
|
|
- }
|
|
|
-
|
|
|
- delete[] lpVoid;
|
|
|
- lpVoid = NULL;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- ZeroMemory(&font, sizeof(font));
|
|
|
- font.lfHeight = -11;
|
|
|
- font.lfWeight = 400;
|
|
|
- font.lfCharSet = 1;
|
|
|
- STRCPY(font.lfFaceName, _T("Arial Unicode MS"));
|
|
|
- return TRUE;
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetFont(LOGFONT &font)
|
|
|
-{
|
|
|
- if(m_bFromIni)
|
|
|
- {
|
|
|
- SetProfileFont("DisplayFont", font);
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- #ifdef _UNICODE
|
|
|
- CString csParam = "DisplayFont3";
|
|
|
- #else
|
|
|
- CString csParam = "DisplayFont";
|
|
|
- #endif
|
|
|
-
|
|
|
- SetProfileData(csParam, &font, sizeof(LOGFONT));
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetDrawThumbnail(long bDraw)
|
|
|
-{
|
|
|
- SetProfileLong("DrawThumbnail", bDraw);
|
|
|
- m_bDrawThumbnail = bDraw;
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::GetDrawThumbnail()
|
|
|
-{
|
|
|
- BOOL bDrawThumbnails = TRUE;
|
|
|
- if(g_Opt.m_bU3)
|
|
|
- bDrawThumbnails = FALSE;
|
|
|
-
|
|
|
- return GetProfileLong("DrawThumbnail", bDrawThumbnails);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetExtraNetworkPassword(CString csPassword)
|
|
|
-{
|
|
|
- SetProfileString("NetworkExtraPassword", csPassword);
|
|
|
-}
|
|
|
-
|
|
|
-CString CGetSetOptions::GetExtraNetworkPassword(bool bFillArray)
|
|
|
-{
|
|
|
- CString cs = GetProfileString("NetworkExtraPassword", "");
|
|
|
-
|
|
|
- if(bFillArray)
|
|
|
- {
|
|
|
- m_csNetworkPasswordArray.RemoveAll();
|
|
|
-
|
|
|
- TCHAR seps[] = _T(",");
|
|
|
- TCHAR *token;
|
|
|
-
|
|
|
- TCHAR *pString = cs.GetBuffer(cs.GetLength());
|
|
|
-
|
|
|
- /* Establish string and get the first token: */
|
|
|
- token = STRTOK(pString, seps);
|
|
|
- while(token != NULL)
|
|
|
- {
|
|
|
- CString cs(token);
|
|
|
- cs.TrimLeft();
|
|
|
- cs.TrimRight();
|
|
|
-
|
|
|
- m_csNetworkPasswordArray.Add(cs);
|
|
|
-
|
|
|
- // Get next token
|
|
|
- token = STRTOK(NULL, seps);
|
|
|
- }
|
|
|
-
|
|
|
- cs.ReleaseBuffer();
|
|
|
- }
|
|
|
-
|
|
|
- return cs;
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetNetworkPassword(CString csPassword)
|
|
|
-{
|
|
|
- CTextConvert Con;
|
|
|
- Con.ConvertToUTF8(csPassword, m_csPassword);
|
|
|
-
|
|
|
- SetProfileString("NetworkStringPassword", csPassword);
|
|
|
-}
|
|
|
-
|
|
|
-CStringA CGetSetOptions::GetNetworkPassword()
|
|
|
-{
|
|
|
- CString cs = GetProfileString("NetworkStringPassword", "LetMeIn");
|
|
|
-
|
|
|
- CTextConvert Con;
|
|
|
- CStringA csReturn;
|
|
|
- Con.ConvertToUTF8(cs, csReturn);
|
|
|
-
|
|
|
- return csReturn;
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetDrawRTF(long bDraw)
|
|
|
-{
|
|
|
-//this only works under 32 bit build
|
|
|
-#ifdef _M_IX86
|
|
|
- SetProfileLong("DrawRTF", bDraw);
|
|
|
- m_bDrawRTF = bDraw;
|
|
|
-#endif
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::GetDrawRTF()
|
|
|
-{
|
|
|
-//this only works under 32 bit build
|
|
|
-#ifdef _M_IX86
|
|
|
- return GetProfileLong("DrawRTF", FALSE);
|
|
|
-#endif
|
|
|
- return FALSE;
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetMultiPasteReverse(BOOL bVal)
|
|
|
-{
|
|
|
- SetProfileLong("MultiPasteReverse", bVal);
|
|
|
- m_bMultiPasteReverse = bVal;
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::GetMultiPasteReverse()
|
|
|
-{
|
|
|
- return GetProfileLong("MultiPasteReverse", TRUE);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetPlaySoundOnCopy(CString cs)
|
|
|
-{
|
|
|
- m_csPlaySoundOnCopy = cs;
|
|
|
-
|
|
|
- SetProfileString("PlaySoundOnCopy", cs);
|
|
|
-}
|
|
|
-
|
|
|
-CString CGetSetOptions::GetPlaySoundOnCopy()
|
|
|
-{
|
|
|
- return GetProfileString("PlaySoundOnCopy", "");
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetSendPasteAfterSelection(BOOL bVal)
|
|
|
-{
|
|
|
- m_bSendPasteMessageAfterSelection = bVal;
|
|
|
-
|
|
|
- SetProfileLong("SendPasteMessageAfterSelection", bVal);
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::GetSendPasteAfterSelection()
|
|
|
-{
|
|
|
- return GetProfileLong("SendPasteMessageAfterSelection", TRUE);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetFindAsYouType(BOOL bVal)
|
|
|
-{
|
|
|
- m_bFindAsYouType = bVal;
|
|
|
- SetProfileLong("FindAsYouType", bVal);
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::GetFindAsYouType()
|
|
|
-{
|
|
|
- return GetProfileLong("FindAsYouType", TRUE);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetEnsureEntireWindowCanBeSeen(BOOL bVal)
|
|
|
-{
|
|
|
- m_bEnsureEntireWindowCanBeSeen = bVal;
|
|
|
- SetProfileLong("EnsureEntireWindowCanBeSeen", bVal);
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::GetEnsureEntireWindowCanBeSeen()
|
|
|
-{
|
|
|
- return GetProfileLong("EnsureEntireWindowCanBeSeen", TRUE);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetShowAllClipsInMainList(BOOL bVal)
|
|
|
-{
|
|
|
- m_bShowAllClipsInMainList = bVal;
|
|
|
- SetProfileLong("ShowAllClipsInMainList", bVal);
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::GetShowAllClipsInMainList()
|
|
|
-{
|
|
|
- return GetProfileLong("ShowAllClipsInMainList", TRUE);
|
|
|
-}
|
|
|
-
|
|
|
-long CGetSetOptions::GetMaxClipSizeInBytes()
|
|
|
-{
|
|
|
- return GetProfileLong("MaxClipSizeInBytes", 0);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetMaxClipSizeInBytes(long lSize)
|
|
|
-{
|
|
|
- m_lMaxClipSizeInBytes = lSize;
|
|
|
- SetProfileLong("MaxClipSizeInBytes", lSize);
|
|
|
-}
|
|
|
-
|
|
|
-CString CGetSetOptions::GetLanguageFile()
|
|
|
-{
|
|
|
- return GetProfileString("LanguageFile", "");
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetLanguageFile(CString csLanguage)
|
|
|
-{
|
|
|
- SetProfileString("LanguageFile", csLanguage);
|
|
|
-}
|
|
|
-
|
|
|
-ULONG CGetSetOptions::GetSaveClipDelay()
|
|
|
-{
|
|
|
- return (ULONG)GetProfileLong("SaveClipDelay", 500);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetSaveClipDelay(DWORD dwDelay)
|
|
|
-{
|
|
|
- m_dwSaveClipDelay = dwDelay;
|
|
|
- SetProfileLong("SaveClipDelay", dwDelay);
|
|
|
-}
|
|
|
-
|
|
|
-long CGetSetOptions::GetProcessDrawClipboardDelay()
|
|
|
-{
|
|
|
- return GetProfileLong("ProcessDrawClipboardDelay", 100);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetProcessDrawClipboardDelay(long lDelay)
|
|
|
-{
|
|
|
- m_lProcessDrawClipboardDelay = lDelay;
|
|
|
- SetProfileLong("ProcessDrawClipboardDelay", lDelay);
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::GetEnableDebugLogging()
|
|
|
-{
|
|
|
- return GetProfileLong("EnableDebugLogging", FALSE);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetEnableDebugLogging(BOOL bEnable)
|
|
|
-{
|
|
|
- m_bEnableDebugLogging = bEnable;
|
|
|
- SetProfileLong("EnableDebugLogging", bEnable);
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::GetEnsureConnectToClipboard()
|
|
|
-{
|
|
|
- return GetProfileLong("EnsureConnected", TRUE);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetEnsureConnectToClipboard(BOOL bSet)
|
|
|
-{
|
|
|
- m_bEnsureConnectToClipboard = bSet;
|
|
|
- SetProfileLong("EnsureConnected", bSet);
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::GetPromptWhenDeletingClips()
|
|
|
-{
|
|
|
- return GetProfileLong("PromptWhenDeletingClips", TRUE);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetPromptWhenDeletingClips(BOOL bSet)
|
|
|
-{
|
|
|
- SetProfileLong("PromptWhenDeletingClips", bSet);
|
|
|
-}
|
|
|
-
|
|
|
-CString CGetSetOptions::GetLastImportDir()
|
|
|
-{
|
|
|
- return GetProfileString("LastImportDir", "");
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetLastImportDir(CString csDir)
|
|
|
-{
|
|
|
- SetProfileString("LastImportDir", csDir);
|
|
|
-}
|
|
|
-
|
|
|
-CString CGetSetOptions::GetLastExportDir()
|
|
|
-{
|
|
|
- return GetProfileString("LastExportDir", "");
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetLastExportDir(CString csDir)
|
|
|
-{
|
|
|
- SetProfileString("LastExportDir", csDir);
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::GetUpdateDescWhenSavingClip()
|
|
|
-{
|
|
|
- return GetProfileLong("UpdateDescWhenSaving", TRUE);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetUpdateDescWhenSavingClip(BOOL bSet)
|
|
|
-{
|
|
|
- SetProfileLong("UpdateDescWhenSaving", bSet);
|
|
|
-}
|
|
|
-
|
|
|
-CString CGetSetOptions::GetPath(long lPathID)
|
|
|
-{
|
|
|
- CString csDir = CGetSetOptions::GetExeFileName();
|
|
|
- csDir = GetFilePath(csDir);
|
|
|
- FIX_CSTRING_PATH(csDir);
|
|
|
-
|
|
|
- //U3_APP_DATA_PATH - <U3_DEVICE_PATH>\System\Apps\{app_unique_id}\Data
|
|
|
- //U3_HOST_EXEC_PATH - %APPDATA%\U3\{device_serial_number}\{app_unique_id}\Exec
|
|
|
- //U3_DEVICE_EXEC_PATH - <U3_DEVICE_PATH>\System\Apps\{app_unique_id}\Exec
|
|
|
-
|
|
|
- switch(lPathID)
|
|
|
- {
|
|
|
- case PATH_HELP:
|
|
|
- if(m_bU3)
|
|
|
- {
|
|
|
- csDir = GETENV(_T("U3_DEVICE_EXEC_PATH"));
|
|
|
- FIX_CSTRING_PATH(csDir);
|
|
|
- }
|
|
|
-
|
|
|
- csDir += "Help\\";
|
|
|
- break;
|
|
|
-
|
|
|
- case PATH_LANGUAGE:
|
|
|
- if(m_bU3)
|
|
|
- {
|
|
|
- csDir = GETENV(_T("U3_DEVICE_EXEC_PATH"));
|
|
|
- FIX_CSTRING_PATH(csDir);
|
|
|
- }
|
|
|
-
|
|
|
- csDir += "language\\";
|
|
|
-
|
|
|
- break;
|
|
|
-
|
|
|
- case PATH_THEMES:
|
|
|
-
|
|
|
- if(m_bU3)
|
|
|
- {
|
|
|
- csDir = GETENV(_T("U3_DEVICE_EXEC_PATH"));
|
|
|
- FIX_CSTRING_PATH(csDir);
|
|
|
- }
|
|
|
-
|
|
|
- csDir += "Themes\\";
|
|
|
-
|
|
|
- break;
|
|
|
-
|
|
|
- case PATH_REMOTE_FILES:
|
|
|
- if(m_bU3)
|
|
|
- {
|
|
|
- csDir = GETENV(_T("U3_HOST_EXEC_PATH"));
|
|
|
- FIX_CSTRING_PATH(csDir);
|
|
|
- }
|
|
|
- else if(CGetSetOptions::GetIsPortableDitto() == false)
|
|
|
- {
|
|
|
- csDir = GetAppDataPath();
|
|
|
- }
|
|
|
-
|
|
|
- csDir += "ReceivedFiles\\";
|
|
|
- break;
|
|
|
-
|
|
|
- case PATH_LOG_FILE:
|
|
|
- if(m_bU3)
|
|
|
- {
|
|
|
- csDir = GETENV(_T("U3_HOST_EXEC_PATH"));
|
|
|
- FIX_CSTRING_PATH(csDir);
|
|
|
- }
|
|
|
- else if(CGetSetOptions::GetIsPortableDitto() == false)
|
|
|
- {
|
|
|
- csDir = GetAppDataPath();
|
|
|
- }
|
|
|
-
|
|
|
- break;
|
|
|
-
|
|
|
- case PATH_UPDATE_FILE:
|
|
|
- //same path as the executable
|
|
|
- break;
|
|
|
-
|
|
|
- case PATH_DATABASE:
|
|
|
- if(m_bU3)
|
|
|
- {
|
|
|
- csDir = GETENV(_T("U3_APP_DATA_PATH"));
|
|
|
- FIX_CSTRING_PATH(csDir);
|
|
|
- }
|
|
|
- break;
|
|
|
-
|
|
|
-
|
|
|
- case PATH_INI:
|
|
|
- if(m_bU3)
|
|
|
- {
|
|
|
- csDir = GETENV(_T("U3_APP_DATA_PATH"));
|
|
|
- FIX_CSTRING_PATH(csDir);
|
|
|
- }
|
|
|
- break;
|
|
|
-
|
|
|
- case PATH_U3_HWND_INI:
|
|
|
- if(m_bU3)
|
|
|
- {
|
|
|
- csDir = GETENV(_T("U3_HOST_EXEC_PATH"));
|
|
|
- FIX_CSTRING_PATH(csDir);
|
|
|
- }
|
|
|
- break;
|
|
|
-
|
|
|
- case PATH_ADDINS:
|
|
|
- if(m_bU3)
|
|
|
- {
|
|
|
- csDir = GETENV(_T("U3_DEVICE_EXEC_PATH"));
|
|
|
- FIX_CSTRING_PATH(csDir);
|
|
|
- }
|
|
|
-
|
|
|
- csDir += "Addins\\";
|
|
|
-
|
|
|
- break;
|
|
|
- }
|
|
|
-
|
|
|
- CreateDirectory(csDir, NULL);
|
|
|
-
|
|
|
- return csDir;
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::WriteU3Hwnd(HWND hWnd)
|
|
|
-{
|
|
|
- CString csIniFile = GetPath(PATH_U3_HWND_INI);
|
|
|
- csIniFile += _T("DittohWnd.ini");
|
|
|
- WritePrivateProfileInt(_T("Ditto"), _T("MainhWnd"), (int)hWnd, csIniFile);
|
|
|
-}
|
|
|
-
|
|
|
-long CGetSetOptions::GetDittoRestoreClipboardDelay()
|
|
|
-{
|
|
|
- return GetProfileLong("RestoreClipboardDelay", 750);
|
|
|
-
|
|
|
-}
|
|
|
-void CGetSetOptions::SetDittoRestoreClipboardDelay(long lDelay)
|
|
|
-{
|
|
|
- SetProfileLong("RestoreClipboardDelay", lDelay);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::GetCopyBufferItem(int nPos, CCopyBufferItem &Item)
|
|
|
-{
|
|
|
- Item.m_lCopyHotKey = GetProfileLong(StrF(_T("CopyBufferCopyHotKey_%d"), nPos), 0);
|
|
|
- Item.m_lPasteHotKey = GetProfileLong(StrF(_T("CopyBufferPasteHotKey_%d"), nPos), 0);
|
|
|
- Item.m_lCutHotKey = GetProfileLong(StrF(_T("CopyBufferCutHotKey_%d"), nPos), 0);
|
|
|
- Item.m_bPlaySoundOnCopy = GetProfileLong(StrF(_T("CopyBufferPlaySound_%d"), nPos), 0);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetCopyBufferItem(int nPos, CCopyBufferItem &Item)
|
|
|
-{
|
|
|
- SetProfileLong(StrF(_T("CopyBufferCopyHotKey_%d"), nPos), Item.m_lCopyHotKey);
|
|
|
- SetProfileLong(StrF(_T("CopyBufferPasteHotKey_%d"), nPos), Item.m_lPasteHotKey);
|
|
|
- SetProfileLong(StrF(_T("CopyBufferCutHotKey_%d"), nPos), Item.m_lCutHotKey);
|
|
|
- SetProfileLong(StrF(_T("CopyBufferPlaySound_%d"), nPos), Item.m_bPlaySoundOnCopy);
|
|
|
-}
|
|
|
-
|
|
|
-CString CGetSetOptions::GetMultiPasteSeparator(bool bConvertToLineFeeds)
|
|
|
-{
|
|
|
- CString csSep = GetProfileString(_T("MultiPasteSeparator"), _T("[LF]"));
|
|
|
- if(bConvertToLineFeeds)
|
|
|
- {
|
|
|
- CString csLineFeed(_T("\r\n"));
|
|
|
- csSep.Replace(_T("[LF]"), csLineFeed);
|
|
|
- csSep.Replace(_T("[lf]"), csLineFeed);
|
|
|
- }
|
|
|
-
|
|
|
- return csSep;
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetMultiPasteSeparator(CString csSep)
|
|
|
-{
|
|
|
- SetProfileString(_T("MultiPasteSeparator"), csSep);
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::GetSetCurrentDirectory()
|
|
|
-{
|
|
|
- if(m_portable)
|
|
|
- {
|
|
|
- CString csExePath = GetFilePath(GetExeFileName());
|
|
|
- FIX_CSTRING_PATH(csExePath);
|
|
|
- ::SetCurrentDirectory(csExePath);
|
|
|
- }
|
|
|
-
|
|
|
- return m_portable == true;
|
|
|
-}
|
|
|
-
|
|
|
-bool CGetSetOptions::GetIsPortableDitto()
|
|
|
-{
|
|
|
- return m_portable;
|
|
|
-}
|
|
|
-
|
|
|
-CString CGetSetOptions::GetPasteString(CString csAppName)
|
|
|
-{
|
|
|
- CString csString = GetProfileString(csAppName, _T(""), _T("PasteStrings"));
|
|
|
- if(csString.IsEmpty())
|
|
|
- return GetDefaultPasteString();
|
|
|
-
|
|
|
- return csString;
|
|
|
-}
|
|
|
-
|
|
|
-CString CGetSetOptions::GetDefaultPasteString()
|
|
|
-{
|
|
|
- return GetProfileString(_T("DefaultPasteString"), _T("^v"));
|
|
|
-}
|
|
|
-
|
|
|
-CString CGetSetOptions::GetCopyString(CString csAppName)
|
|
|
-{
|
|
|
- CString csString = GetProfileString(csAppName, _T(""), _T("CopyStrings"));
|
|
|
- if(csString.IsEmpty())
|
|
|
- return GetDefaultCopyString();
|
|
|
-
|
|
|
- return csString;
|
|
|
-}
|
|
|
-
|
|
|
-CString CGetSetOptions::GetDefaultCopyString()
|
|
|
-{
|
|
|
- return GetProfileString(_T("DefaultCopyString"), _T("^c"));
|
|
|
-}
|
|
|
-
|
|
|
-CString CGetSetOptions::GetCutString(CString csAppName)
|
|
|
-{
|
|
|
- CString csString = GetProfileString(csAppName, _T(""), _T("CutStrings"));
|
|
|
- if(csString.IsEmpty())
|
|
|
- return GetDefaultCutString();
|
|
|
-
|
|
|
- return csString;
|
|
|
-}
|
|
|
-
|
|
|
-CString CGetSetOptions::GetDefaultCutString()
|
|
|
-{
|
|
|
- return GetProfileString(_T("DefaultCutString"), _T("^x"));
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::GetEditWordWrap()
|
|
|
-{
|
|
|
- return GetProfileLong(_T("EditWordWrap"), TRUE);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetEditWordWrap(BOOL bSet)
|
|
|
-{
|
|
|
- SetProfileLong(_T("EditWordWrap"), bSet);
|
|
|
-}
|
|
|
-
|
|
|
-bool CGetSetOptions::GetAllowFriends()
|
|
|
-{
|
|
|
- return (GetProfileLong("AllowFriends", TRUE) == TRUE);
|
|
|
-}
|
|
|
-
|
|
|
-long CGetSetOptions::GetAutoMaxDelay()
|
|
|
-{
|
|
|
- return GetProfileLong(_T("AutoMaxDelaySeconds"), 2);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetAutoMaxDelay(long lDelay)
|
|
|
-{
|
|
|
- SetProfileLong(_T("AutoMaxDelaySeconds"), lDelay);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetTheme(CString csTheme)
|
|
|
-{
|
|
|
- SetProfileString(_T("Theme"), csTheme);
|
|
|
-}
|
|
|
-
|
|
|
-CString CGetSetOptions::GetTheme()
|
|
|
-{
|
|
|
- return GetProfileString(_T("Theme"), "");
|
|
|
-}
|
|
|
-
|
|
|
-long CGetSetOptions::GetKeyStateWaitTimerCount()
|
|
|
-{
|
|
|
- return GetProfileLong(_T("KeyStateWaitTimerCount"), 20);
|
|
|
-}
|
|
|
-
|
|
|
-long CGetSetOptions::GetKeyStatePasteDelay()
|
|
|
-{
|
|
|
- return GetProfileLong(_T("KeyStatePasteDelay"), 200);
|
|
|
-}
|
|
|
-
|
|
|
-DWORD CGetSetOptions::GetDittoHotKey()
|
|
|
-{
|
|
|
- return (DWORD)GetProfileLong(_T("DittoHotKey"), 704);
|
|
|
-}
|
|
|
-
|
|
|
-DWORD CGetSetOptions::SendKeysDelay()
|
|
|
-{
|
|
|
- return (DWORD)GetProfileLong(_T("SendKeysDelay"), 50);
|
|
|
-}
|
|
|
-
|
|
|
-DWORD CGetSetOptions::WaitForActiveWndTimeout()
|
|
|
-{
|
|
|
- return (DWORD)GetProfileLong(_T("WaitForActiveWndTimeout"), 100);
|
|
|
-}
|
|
|
-
|
|
|
-DWORD CGetSetOptions::FocusChangedDelay()
|
|
|
-{
|
|
|
- return (DWORD)GetProfileLong(_T("FocusChangedDelay"), 100);
|
|
|
-}
|
|
|
-
|
|
|
-DWORD CGetSetOptions::FocusWndTimerTimeout()
|
|
|
-{
|
|
|
- return (DWORD)GetProfileLong(_T("FocusWndTimerTimeout"), 2000);
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::GetConnectedToClipboard()
|
|
|
-{
|
|
|
- return GetProfileLong("ConnectedToClipboard", TRUE);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetConnectedToClipboard(BOOL val)
|
|
|
-{
|
|
|
- SetProfileLong("ConnectedToClipboard", val);
|
|
|
-}
|
|
|
-
|
|
|
-DWORD CGetSetOptions::GetTextOnlyRestoreDelay()
|
|
|
-{
|
|
|
- return (DWORD)GetProfileLong(_T("TextOnlyRestoreDelay"), 2000);
|
|
|
-}
|
|
|
-
|
|
|
-DWORD CGetSetOptions::GetTextOnlyPasteDelay()
|
|
|
-{
|
|
|
- return (DWORD)GetProfileLong(_T("TextOnlyPasteDelay"), 500);
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::GetSetFocusToApp(CString csAppName)
|
|
|
-{
|
|
|
- CString focusCheck;
|
|
|
- focusCheck = "SetFocus_";
|
|
|
- focusCheck += csAppName;
|
|
|
- return GetProfileLong(focusCheck, FALSE);
|
|
|
-}
|
|
|
-
|
|
|
-DWORD CGetSetOptions::SelectedIndex()
|
|
|
-{
|
|
|
- return (DWORD)GetProfileLong(_T("SelectedIndex"), 0);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetCopyAppInclude(CString csAppName)
|
|
|
-{
|
|
|
- SetProfileString(_T("CopyAppInclude"), csAppName);
|
|
|
-}
|
|
|
-
|
|
|
-CString CGetSetOptions::GetCopyAppInclude()
|
|
|
-{
|
|
|
- CString includeApp = GetProfileString(_T("CopyAppInclude"), "*");
|
|
|
- if(includeApp == "")
|
|
|
- {
|
|
|
- includeApp = "*";
|
|
|
- }
|
|
|
-
|
|
|
- return includeApp;
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetCopyAppExclude(CString csAppName)
|
|
|
-{
|
|
|
- SetProfileString(_T("CopyAppExclude"), csAppName);
|
|
|
-}
|
|
|
-
|
|
|
-CString CGetSetOptions::GetCopyAppExclude()
|
|
|
-{
|
|
|
- return GetProfileString(_T("CopyAppExclude"), "");
|
|
|
-}
|
|
|
-
|
|
|
-CString CGetSetOptions::GetCopyAppSeparator()
|
|
|
-{
|
|
|
- return GetProfileString(_T("CopyAppSeparator"), ";");
|
|
|
-}
|
|
|
-
|
|
|
-DWORD CGetSetOptions::GetNoFormatsRetryDelay()
|
|
|
-{
|
|
|
- return GetProfileLong(_T("NoFormatsRetryDelay"), 200);
|
|
|
-}
|
|
|
-
|
|
|
-DWORD CGetSetOptions::GetMainDeletesDeleteCount()
|
|
|
-{
|
|
|
- return GetProfileLong(_T("MainDeletesDeleteCount"), 100);
|
|
|
-}
|
|
|
-
|
|
|
-DWORD CGetSetOptions::GetIdleSecondsBeforeDelete()
|
|
|
-{
|
|
|
- return GetProfileLong(_T("IdleSecondsBeforeDelete"), 60*10);
|
|
|
-}
|
|
|
-
|
|
|
-DWORD CGetSetOptions::GetDbTimeout()
|
|
|
-{
|
|
|
- return GetProfileLong(_T("DbTimeout"), 5000);
|
|
|
-}
|
|
|
-
|
|
|
-DWORD CGetSetOptions::GetFunnyTickCountAdjustment()
|
|
|
-{
|
|
|
- return GetProfileLong(_T("FunnyTickCountAdjustment"), 300001);
|
|
|
-}
|
|
|
-
|
|
|
-DWORD CGetSetOptions::GetMinIdleTimeBeforeTrackFocus()
|
|
|
-{
|
|
|
- return GetProfileLong(_T("MinIdleTimeBeforeTrackFocus"), 100);
|
|
|
-}
|
|
|
-
|
|
|
-DWORD CGetSetOptions::GetTimeBeforeExpandWindow()
|
|
|
-{
|
|
|
- return GetProfileLong(_T("TimeBeforeExpandWindow"), 250);
|
|
|
-}
|
|
|
-
|
|
|
-DWORD CGetSetOptions::GetUseGuiThreadInfoForFocus()
|
|
|
-{
|
|
|
- return GetProfileLong(_T("UseGuiThreadInfoForFocus"), 1);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetSearchDescription(BOOL val)
|
|
|
-{
|
|
|
- SetProfileLong(_T("SearchDescription"), val);
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::GetSearchDescription()
|
|
|
-{
|
|
|
- return GetProfileLong(_T("SearchDescription"), 1);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetSearchFullText(BOOL val)
|
|
|
-{
|
|
|
- SetProfileLong(_T("SearchFullText"), val);
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::GetSearchFullText()
|
|
|
-{
|
|
|
- return GetProfileLong(_T("SearchFullText"), 0);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetSearchQuickPaste(BOOL val)
|
|
|
-{
|
|
|
- SetProfileLong(_T("SearchQuickPaste"), val);
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::GetSearchQuickPaste()
|
|
|
-{
|
|
|
- return GetProfileLong(_T("SearchQuickPaste"), 0);
|
|
|
-}
|
|
|
-
|
|
|
-void CGetSetOptions::SetShowScrollBar(BOOL val)
|
|
|
-{
|
|
|
- m_showScrollBar = val;
|
|
|
- SetProfileLong(_T("ShowScrollBar"), val);
|
|
|
-}
|
|
|
-
|
|
|
-BOOL CGetSetOptions::GetShowScrollBar()
|
|
|
-{
|
|
|
- return GetProfileLong(_T("ShowScrollBar"), 0);
|
|
|
+#include "stdafx.h"
|
|
|
+#include "Options.h"
|
|
|
+#include "AlphaBlend.h"
|
|
|
+#include "Misc.h"
|
|
|
+#include "shared/TextConvert.h"
|
|
|
+#include "sqlite\CppSQLite3.h"
|
|
|
+#include "Path.h"
|
|
|
+
|
|
|
+using namespace nsPath;
|
|
|
+
|
|
|
+UINT WritePrivateProfileInt(LPCTSTR lpAppName, LPCTSTR lpKeyName, INT nValue, LPCTSTR lpFileName)
|
|
|
+{
|
|
|
+ // Locals
|
|
|
+ TCHAR szBuff[25];
|
|
|
+
|
|
|
+ // Format
|
|
|
+ SPRINTF(szBuff, _T("%d"), nValue);
|
|
|
+
|
|
|
+ // Write
|
|
|
+ return WritePrivateProfileString(lpAppName, lpKeyName, szBuff, lpFileName);
|
|
|
+}
|
|
|
+
|
|
|
+long CGetSetOptions::m_nLinesPerRow;
|
|
|
+BOOL CGetSetOptions::m_bUseCtrlNumAccel;
|
|
|
+BOOL CGetSetOptions::m_bAllowDuplicates;
|
|
|
+BOOL CGetSetOptions::m_bUpdateTimeOnPaste;
|
|
|
+BOOL CGetSetOptions::m_bSaveMultiPaste;
|
|
|
+BOOL CGetSetOptions::m_bShowPersistent;
|
|
|
+long CGetSetOptions::m_bDescTextSize;
|
|
|
+BOOL CGetSetOptions::m_bDescShowLeadingWhiteSpace;
|
|
|
+BOOL CGetSetOptions::m_bAllwaysShowDescription;
|
|
|
+long CGetSetOptions::m_bDoubleClickingOnCaptionDoes;
|
|
|
+BOOL CGetSetOptions::m_bPrompForNewGroupName;
|
|
|
+BOOL CGetSetOptions::m_bSendPasteOnFirstTenHotKeys;
|
|
|
+CSendClients CGetSetOptions::m_SendClients[MAX_SEND_CLIENTS];
|
|
|
+long CGetSetOptions::m_lAutoSendClientCount;
|
|
|
+CString CGetSetOptions::m_csIPListToPutOnClipboard;
|
|
|
+BOOL CGetSetOptions::m_bLogSendReceiveErrors;
|
|
|
+BOOL CGetSetOptions::m_HideDittoOnHotKeyIfAlreadyShown;
|
|
|
+long CGetSetOptions::m_lPort;
|
|
|
+BOOL CGetSetOptions::m_bDrawThumbnail;
|
|
|
+CStringA CGetSetOptions::m_csPassword;
|
|
|
+BOOL CGetSetOptions::m_bDrawRTF;
|
|
|
+BOOL CGetSetOptions::m_bMultiPasteReverse;
|
|
|
+CString CGetSetOptions::m_csPlaySoundOnCopy;
|
|
|
+CStringArray CGetSetOptions::m_csNetworkPasswordArray;
|
|
|
+BOOL CGetSetOptions::m_bSendPasteMessageAfterSelection;
|
|
|
+BOOL CGetSetOptions::m_bFindAsYouType;
|
|
|
+BOOL CGetSetOptions::m_bEnsureEntireWindowCanBeSeen;
|
|
|
+BOOL CGetSetOptions::m_bShowAllClipsInMainList;
|
|
|
+long CGetSetOptions::m_lMaxClipSizeInBytes;
|
|
|
+DWORD CGetSetOptions::m_dwSaveClipDelay;
|
|
|
+long CGetSetOptions::m_lProcessDrawClipboardDelay;
|
|
|
+BOOL CGetSetOptions::m_bEnableDebugLogging;
|
|
|
+BOOL CGetSetOptions::m_bEnsureConnectToClipboard;
|
|
|
+bool CGetSetOptions::m_bOutputDebugString;
|
|
|
+bool CGetSetOptions::m_bU3 = false;
|
|
|
+bool CGetSetOptions::m_bInConversion = false;
|
|
|
+bool CGetSetOptions::m_bFromIni = false;
|
|
|
+bool CGetSetOptions::m_portable = false;
|
|
|
+CString CGetSetOptions::m_csIniFileName;
|
|
|
+__int64 CGetSetOptions::nLastDbWriteTime = 0;
|
|
|
+CTheme CGetSetOptions::m_Theme;
|
|
|
+BOOL CGetSetOptions::m_showScrollBar = false;
|
|
|
+CGetSetOptions g_Opt;
|
|
|
+
|
|
|
+CGetSetOptions::CGetSetOptions()
|
|
|
+{
|
|
|
+}
|
|
|
+
|
|
|
+CGetSetOptions::~CGetSetOptions()
|
|
|
+{
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::LoadSettings()
|
|
|
+{
|
|
|
+ m_csIniFileName = GetIniFileName(true);
|
|
|
+
|
|
|
+ CString portable = GetFilePath(m_csIniFileName);
|
|
|
+ portable += _T("portable");
|
|
|
+ if(FileExists(portable))
|
|
|
+ {
|
|
|
+ m_portable = true;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(m_bU3)
|
|
|
+ {
|
|
|
+ m_bFromIni = true;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ //first check if ini file is in app directory
|
|
|
+ if(m_portable || FileExists(m_csIniFileName))
|
|
|
+ {
|
|
|
+ m_bFromIni = true;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ //next check if it's in app data
|
|
|
+ m_csIniFileName = GetIniFileName(false);
|
|
|
+ if(FileExists(m_csIniFileName))
|
|
|
+ {
|
|
|
+ m_bFromIni = true;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if(m_bFromIni)
|
|
|
+ {
|
|
|
+ CString csPath = GetFilePath(m_csIniFileName);
|
|
|
+ if(FileExists(csPath) == FALSE)
|
|
|
+ CreateDirectory(csPath, NULL);
|
|
|
+ }
|
|
|
+
|
|
|
+ GetSetCurrentDirectory();
|
|
|
+
|
|
|
+ //First time we run, set some defaults
|
|
|
+ if (GetDBPath() == _T("") &&
|
|
|
+ GetTotalCopyCount() == 0)
|
|
|
+ {
|
|
|
+ SetCheckForMaxEntries(TRUE);
|
|
|
+ SetSimpleTextSearch(TRUE);
|
|
|
+ }
|
|
|
+
|
|
|
+ m_nLinesPerRow = GetLinesPerRow();
|
|
|
+ m_bUseCtrlNumAccel = GetUseCtrlNumForFirstTenHotKeys();
|
|
|
+ m_bAllowDuplicates = GetAllowDuplicates();
|
|
|
+ m_bUpdateTimeOnPaste = GetUpdateTimeOnPaste();
|
|
|
+ m_bSaveMultiPaste = GetSaveMultiPaste();
|
|
|
+ m_bShowPersistent = GetShowPersistent();
|
|
|
+ m_bDescTextSize = GetDescTextSize();
|
|
|
+ m_bDescShowLeadingWhiteSpace = GetDescShowLeadingWhiteSpace();
|
|
|
+ m_bAllwaysShowDescription = GetAllwaysShowDescription();
|
|
|
+ m_bDoubleClickingOnCaptionDoes = GetDoubleClickingOnCaptionDoes();
|
|
|
+ m_bPrompForNewGroupName = GetPrompForNewGroupName();
|
|
|
+ m_bSendPasteOnFirstTenHotKeys = GetSendPasteOnFirstTenHotKeys();
|
|
|
+ m_csIPListToPutOnClipboard = GetListToPutOnClipboard();
|
|
|
+ m_bLogSendReceiveErrors = GetLogSendReceiveErrors();
|
|
|
+ m_HideDittoOnHotKeyIfAlreadyShown = GetHideDittoOnHotKeyIfAlreadyShown();
|
|
|
+ m_lPort = GetPort();
|
|
|
+ m_bDrawThumbnail = GetDrawThumbnail();
|
|
|
+ m_csPassword = GetNetworkPassword();
|
|
|
+ m_bDrawRTF = GetDrawRTF();
|
|
|
+ m_bMultiPasteReverse = GetMultiPasteReverse();
|
|
|
+ m_csPlaySoundOnCopy = GetPlaySoundOnCopy();
|
|
|
+ m_bSendPasteMessageAfterSelection = GetSendPasteAfterSelection();
|
|
|
+ m_bFindAsYouType = GetFindAsYouType();
|
|
|
+ m_bEnsureEntireWindowCanBeSeen = GetEnsureEntireWindowCanBeSeen();
|
|
|
+ m_bShowAllClipsInMainList = GetShowAllClipsInMainList();
|
|
|
+ m_lMaxClipSizeInBytes = GetMaxClipSizeInBytes();
|
|
|
+ m_dwSaveClipDelay = GetSaveClipDelay();
|
|
|
+ m_lProcessDrawClipboardDelay = GetProcessDrawClipboardDelay();
|
|
|
+ m_bEnableDebugLogging = GetEnableDebugLogging();
|
|
|
+ m_bEnsureConnectToClipboard = GetEnsureConnectToClipboard();
|
|
|
+ m_bOutputDebugString = false;
|
|
|
+ m_showScrollBar = GetShowScrollBar();
|
|
|
+
|
|
|
+ GetExtraNetworkPassword(true);
|
|
|
+
|
|
|
+ for(int i = 0; i < MAX_SEND_CLIENTS; i++)
|
|
|
+ {
|
|
|
+ GetSendClients(i);
|
|
|
+ }
|
|
|
+
|
|
|
+ GetClientSendCount();
|
|
|
+
|
|
|
+
|
|
|
+ //If running from a U3 device and no language file as been asigned
|
|
|
+ //then use the language defined by the U3 launcher
|
|
|
+ if(m_bU3)
|
|
|
+ {
|
|
|
+ CString csLanguage = GetLanguageFile();
|
|
|
+ if(csLanguage.IsEmpty())
|
|
|
+ {
|
|
|
+ CString csLanguage = GETENV(_T("U3_ENV_LANGUAGE"));
|
|
|
+ long lLanguage = ATOI(csLanguage);
|
|
|
+ csLanguage.Empty();
|
|
|
+ switch(lLanguage)
|
|
|
+ {
|
|
|
+ case 1036: //French
|
|
|
+ csLanguage = _T("Français");
|
|
|
+ break;
|
|
|
+
|
|
|
+ case 1040: //Italian
|
|
|
+ csLanguage = _T("Italiano");
|
|
|
+ break;
|
|
|
+
|
|
|
+ case 1031: //German
|
|
|
+ csLanguage = _T("German");
|
|
|
+ break;
|
|
|
+
|
|
|
+ case 3082: //German
|
|
|
+ csLanguage = _T("Español");
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ if(csLanguage.IsEmpty() == FALSE)
|
|
|
+ {
|
|
|
+ SetLanguageFile(csLanguage);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ m_Theme.Load(GetTheme());
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::ConverSettingsToIni()
|
|
|
+{
|
|
|
+ m_bInConversion = true;
|
|
|
+
|
|
|
+ CSize sz;
|
|
|
+ CPoint pt;
|
|
|
+
|
|
|
+ GetQuickPasteSize(sz);
|
|
|
+ SetQuickPasteSize(sz);
|
|
|
+
|
|
|
+ GetQuickPastePoint(pt);
|
|
|
+ SetQuickPastePoint(pt);
|
|
|
+
|
|
|
+ GetEditWndSize(sz);
|
|
|
+ SetEditWndSize(sz);
|
|
|
+
|
|
|
+ GetEditWndPoint(pt);
|
|
|
+ SetEditWndPoint(pt);
|
|
|
+
|
|
|
+ SetShowIconInSysTray(GetShowIconInSysTray());
|
|
|
+ SetRunOnStartUp(GetRunOnStartUp());
|
|
|
+ SetEnableTransparency(GetEnableTransparency());
|
|
|
+ SetTransparencyPercent(GetTransparencyPercent());
|
|
|
+ SetLinesPerRow(GetLinesPerRow());
|
|
|
+ SetQuickPastePosition(GetQuickPastePosition());
|
|
|
+ SetCopyGap(GetCopyGap());
|
|
|
+ SetDBPath(GetDBPath());
|
|
|
+ SetCheckForMaxEntries(GetCheckForMaxEntries());
|
|
|
+ SetCheckForExpiredEntries(GetCheckForExpiredEntries());
|
|
|
+ SetMaxEntries(GetMaxEntries());
|
|
|
+ SetExpiredEntries(GetExpiredEntries());
|
|
|
+ SetTripCopyCount(GetTripCopyCount());
|
|
|
+ SetTripPasteCount(GetTripPasteCount());
|
|
|
+ SetTripDate(GetTripDate());
|
|
|
+ SetTotalCopyCount(GetTotalCopyCount());
|
|
|
+ SetTotalPasteCount(GetTotalPasteCount());
|
|
|
+ SetTotalDate(GetTotalDate());
|
|
|
+ SetUpdateFilePath(GetUpdateFilePath());
|
|
|
+ SetUpdateInstallPath(GetUpdateInstallPath());
|
|
|
+ SetLastUpdate(GetLastUpdate());
|
|
|
+ SetCheckForUpdates(GetCheckForUpdates());
|
|
|
+ SetUseCtrlNumForFirstTenHotKeys(GetUseCtrlNumForFirstTenHotKeys());
|
|
|
+ SetAllowDuplicates(GetAllowDuplicates());
|
|
|
+ SetUpdateTimeOnPaste(GetUpdateTimeOnPaste());
|
|
|
+ SetSaveMultiPaste(GetSaveMultiPaste());
|
|
|
+ SetShowPersistent(GetShowPersistent());
|
|
|
+ SetShowTextForFirstTenHotKeys(GetShowTextForFirstTenHotKeys());
|
|
|
+ SetMainHWND(GetMainHWND());
|
|
|
+ SetCaptionPos(GetCaptionPos());
|
|
|
+ SetAutoHide(GetAutoHide());
|
|
|
+ SetDescTextSize(GetDescTextSize());
|
|
|
+ SetDescShowLeadingWhiteSpace(GetDescShowLeadingWhiteSpace());
|
|
|
+ SetAllwaysShowDescription(GetAllwaysShowDescription());
|
|
|
+ SetDoubleClickingOnCaptionDoes(GetDoubleClickingOnCaptionDoes());
|
|
|
+ SetPrompForNewGroupName(GetPrompForNewGroupName());
|
|
|
+ SetSendPasteOnFirstTenHotKeys(GetSendPasteOnFirstTenHotKeys());
|
|
|
+
|
|
|
+ for(int i = 0; i < MAX_SEND_CLIENTS; i++)
|
|
|
+ {
|
|
|
+ GetSendClients(i);
|
|
|
+ SetSendClients(m_SendClients[i], i);
|
|
|
+ }
|
|
|
+
|
|
|
+ SetListToPutOnClipboard(GetListToPutOnClipboard());
|
|
|
+ SetLogSendReceiveErrors(GetLogSendReceiveErrors());
|
|
|
+ SetHideDittoOnHotKeyIfAlreadyShown(GetHideDittoOnHotKeyIfAlreadyShown());
|
|
|
+ SetPort(GetPort());
|
|
|
+ SetDisableRecieve(GetDisableRecieve());
|
|
|
+
|
|
|
+ LOGFONT font;
|
|
|
+ GetFont(font);
|
|
|
+ SetFont(font);
|
|
|
+
|
|
|
+ SetDrawThumbnail(GetDrawThumbnail());
|
|
|
+
|
|
|
+ CStringA PassA = GetNetworkPassword();
|
|
|
+ CString PassW = PassA;
|
|
|
+ SetNetworkPassword(PassW);
|
|
|
+
|
|
|
+ SetDrawRTF(GetDrawRTF());
|
|
|
+ SetMultiPasteReverse(GetMultiPasteReverse());
|
|
|
+ SetPlaySoundOnCopy(GetPlaySoundOnCopy());
|
|
|
+ SetSendPasteAfterSelection(GetSendPasteAfterSelection());
|
|
|
+ SetFindAsYouType(GetFindAsYouType());
|
|
|
+ SetEnsureEntireWindowCanBeSeen(GetEnsureEntireWindowCanBeSeen());
|
|
|
+ SetShowAllClipsInMainList(GetShowAllClipsInMainList());
|
|
|
+ SetExtraNetworkPassword(GetExtraNetworkPassword(false));
|
|
|
+ SetMaxClipSizeInBytes(GetMaxClipSizeInBytes());
|
|
|
+ SetLanguageFile(GetLanguageFile());
|
|
|
+ SetSaveClipDelay(GetSaveClipDelay());
|
|
|
+ SetProcessDrawClipboardDelay(GetProcessDrawClipboardDelay());
|
|
|
+ SetEnableDebugLogging(GetEnableDebugLogging());
|
|
|
+ SetEnsureConnectToClipboard(GetEnsureConnectToClipboard());
|
|
|
+ SetPromptWhenDeletingClips(GetPromptWhenDeletingClips());
|
|
|
+ SetLastImportDir(GetLastImportDir());
|
|
|
+ SetLastExportDir(GetLastExportDir());
|
|
|
+ SetUpdateDescWhenSavingClip(GetUpdateDescWhenSavingClip());
|
|
|
+
|
|
|
+ m_bInConversion = false;
|
|
|
+}
|
|
|
+
|
|
|
+CString CGetSetOptions::GetIniFileName(bool bLocalIniFile)
|
|
|
+{
|
|
|
+ CString csPath = _T("c:\\program files\\Ditto\\");
|
|
|
+
|
|
|
+ if(m_bU3)
|
|
|
+ {
|
|
|
+ csPath = CGetSetOptions::GetPath(PATH_INI);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if(bLocalIniFile)
|
|
|
+ {
|
|
|
+ csPath = GetFilePath(GetExeFileName());
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ csPath = GetAppDataPath();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ csPath += "Ditto.Settings";
|
|
|
+
|
|
|
+ return csPath;
|
|
|
+}
|
|
|
+
|
|
|
+CString CGetSetOptions::GetAppDataPath()
|
|
|
+{
|
|
|
+ CString csPath;
|
|
|
+ LPMALLOC pMalloc;
|
|
|
+
|
|
|
+ if(SUCCEEDED(::SHGetMalloc(&pMalloc)))
|
|
|
+ {
|
|
|
+ LPITEMIDLIST pidlPrograms;
|
|
|
+
|
|
|
+ SHGetSpecialFolderLocation(NULL, CSIDL_APPDATA, &pidlPrograms);
|
|
|
+
|
|
|
+ TCHAR string[MAX_PATH];
|
|
|
+ SHGetPathFromIDList(pidlPrograms, string);
|
|
|
+
|
|
|
+ pMalloc->Free(pidlPrograms);
|
|
|
+ pMalloc->Release();
|
|
|
+
|
|
|
+ csPath = string;
|
|
|
+ }
|
|
|
+ FIX_CSTRING_PATH(csPath);
|
|
|
+ csPath += "Ditto\\";
|
|
|
+
|
|
|
+ return csPath;
|
|
|
+}
|
|
|
+
|
|
|
+long CGetSetOptions::GetProfileLong(CString csName, long lDefaultValue, CString csNewPath)
|
|
|
+{
|
|
|
+ if(m_bFromIni && !m_bInConversion)
|
|
|
+ {
|
|
|
+ CString csApp(_T("Ditto"));
|
|
|
+
|
|
|
+ if(csNewPath.IsEmpty() == FALSE)
|
|
|
+ {
|
|
|
+ csApp = csNewPath;
|
|
|
+ }
|
|
|
+
|
|
|
+ return GetPrivateProfileInt(csApp, csName, lDefaultValue, m_csIniFileName);
|
|
|
+ }
|
|
|
+
|
|
|
+ CString csPath(_T(REG_PATH));
|
|
|
+ if(csNewPath.IsEmpty() == FALSE)
|
|
|
+ {
|
|
|
+ csPath += "\\" + csNewPath;
|
|
|
+ }
|
|
|
+
|
|
|
+ HKEY hkKey;
|
|
|
+
|
|
|
+ long lResult = RegOpenKeyEx(HKEY_CURRENT_USER, csPath, NULL, KEY_READ, &hkKey);
|
|
|
+
|
|
|
+ if(lResult != ERROR_SUCCESS)
|
|
|
+ return lDefaultValue;
|
|
|
+
|
|
|
+ DWORD buffer;
|
|
|
+ DWORD len = sizeof(buffer);
|
|
|
+ DWORD type;
|
|
|
+
|
|
|
+ lResult = ::RegQueryValueEx(hkKey, csName, 0, &type, (LPBYTE)&buffer, &len);
|
|
|
+
|
|
|
+ RegCloseKey(hkKey);
|
|
|
+
|
|
|
+ if(lResult == ERROR_SUCCESS)
|
|
|
+ return (long)buffer;
|
|
|
+
|
|
|
+ return lDefaultValue;
|
|
|
+}
|
|
|
+
|
|
|
+CString CGetSetOptions::GetProfileString(CString csName, CString csDefault, CString csNewPath)
|
|
|
+{
|
|
|
+ if(m_bFromIni && !m_bInConversion)
|
|
|
+ {
|
|
|
+ CString csApp(_T("Ditto"));
|
|
|
+
|
|
|
+ if(csNewPath.IsEmpty() == FALSE)
|
|
|
+ {
|
|
|
+ csApp = csNewPath;
|
|
|
+ }
|
|
|
+
|
|
|
+ TCHAR cString[MAX_PATH];
|
|
|
+ GetPrivateProfileString(csApp, csName, csDefault, cString, sizeof(cString), m_csIniFileName);
|
|
|
+
|
|
|
+ return cString;
|
|
|
+ }
|
|
|
+
|
|
|
+ CString csPath(_T(REG_PATH));
|
|
|
+ if(csNewPath.IsEmpty() == FALSE)
|
|
|
+ {
|
|
|
+ csPath += "\\" + csNewPath;
|
|
|
+ }
|
|
|
+
|
|
|
+ HKEY hkKey;
|
|
|
+ long lResult = RegOpenKeyEx(HKEY_CURRENT_USER, csPath, NULL, KEY_READ, &hkKey);
|
|
|
+
|
|
|
+ TCHAR szString[256];
|
|
|
+ ZeroMemory(szString, sizeof(szString));
|
|
|
+ DWORD dwBufLen = 256;
|
|
|
+
|
|
|
+ lResult = ::RegQueryValueEx(hkKey , csName, NULL, NULL, (LPBYTE)szString, &dwBufLen);
|
|
|
+
|
|
|
+ RegCloseKey(hkKey);
|
|
|
+
|
|
|
+ if(lResult != ERROR_SUCCESS)
|
|
|
+ return csDefault;
|
|
|
+
|
|
|
+ return szString;
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::SetProfileLong(CString csName, long lValue)
|
|
|
+{
|
|
|
+ if(m_bFromIni)
|
|
|
+ {
|
|
|
+ return WritePrivateProfileInt(_T("Ditto"), csName, lValue, m_csIniFileName);
|
|
|
+ }
|
|
|
+
|
|
|
+ HKEY hkKey;
|
|
|
+ DWORD dWord;
|
|
|
+ long lResult = RegCreateKeyEx(HKEY_CURRENT_USER, _T(REG_PATH), NULL,
|
|
|
+ NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS,
|
|
|
+ NULL, &hkKey, &dWord);
|
|
|
+
|
|
|
+ if(lResult != ERROR_SUCCESS)
|
|
|
+ return FALSE;
|
|
|
+
|
|
|
+ DWORD val = (DWORD)lValue;
|
|
|
+ lResult = ::RegSetValueEx(hkKey, csName, 0, REG_DWORD, (LPBYTE)&val, sizeof(DWORD));
|
|
|
+
|
|
|
+ RegCloseKey(hkKey);
|
|
|
+
|
|
|
+ return lResult == ERROR_SUCCESS;
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::SetProfileString(CString csName, CString csValue)
|
|
|
+{
|
|
|
+ if(m_bFromIni)
|
|
|
+ {
|
|
|
+ return WritePrivateProfileString(_T("Ditto"), csName, csValue, m_csIniFileName);
|
|
|
+ }
|
|
|
+
|
|
|
+ HKEY hkKey;
|
|
|
+ DWORD dWord;
|
|
|
+ long lResult = RegCreateKeyEx(HKEY_CURRENT_USER, _T(REG_PATH), NULL,
|
|
|
+ NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS,
|
|
|
+ NULL, &hkKey, &dWord);
|
|
|
+
|
|
|
+ if(lResult != ERROR_SUCCESS)
|
|
|
+ return FALSE;
|
|
|
+
|
|
|
+ ::RegSetValueEx(hkKey, csName, NULL, REG_SZ,
|
|
|
+ (BYTE*)(LPCTSTR)csValue, csValue.GetLength()*sizeof(TCHAR));
|
|
|
+
|
|
|
+ RegCloseKey(hkKey);
|
|
|
+
|
|
|
+ return lResult == ERROR_SUCCESS;
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::SetProfileData(CString csName, LPVOID lpData, DWORD dwLength)
|
|
|
+{
|
|
|
+ if(m_bFromIni)
|
|
|
+ {
|
|
|
+ ASSERT(!"SetProfileData not supported in .ini settings");
|
|
|
+ return FALSE;
|
|
|
+ }
|
|
|
+
|
|
|
+ HKEY hkKey;
|
|
|
+ DWORD dWord;
|
|
|
+ long lResult = RegCreateKeyEx(HKEY_CURRENT_USER, _T(REG_PATH), NULL,
|
|
|
+ NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS,
|
|
|
+ NULL, &hkKey, &dWord);
|
|
|
+
|
|
|
+ if(lResult != ERROR_SUCCESS)
|
|
|
+ return FALSE;
|
|
|
+
|
|
|
+ ::RegSetValueEx(hkKey, csName, NULL, REG_BINARY,
|
|
|
+ (BYTE*)lpData, dwLength);
|
|
|
+
|
|
|
+ RegCloseKey(hkKey);
|
|
|
+
|
|
|
+ return lResult == ERROR_SUCCESS;
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::GetProfileFont(CString csSection, LOGFONT &font)
|
|
|
+{
|
|
|
+ font.lfHeight = GetPrivateProfileInt(csSection, _T("Height"), 0, m_csIniFileName);
|
|
|
+ font.lfWidth = GetPrivateProfileInt(csSection, _T("Width"), 0, m_csIniFileName);
|
|
|
+ font.lfEscapement = GetPrivateProfileInt(csSection, _T("Escapement"), 0, m_csIniFileName);
|
|
|
+ font.lfOrientation = GetPrivateProfileInt(csSection, _T("Orientation"), 0, m_csIniFileName);
|
|
|
+ font.lfWeight = GetPrivateProfileInt(csSection, _T("Weight"), 0, m_csIniFileName);
|
|
|
+ font.lfItalic = GetPrivateProfileInt(csSection, _T("Italic"), 0, m_csIniFileName);
|
|
|
+ font.lfUnderline = GetPrivateProfileInt(csSection, _T("Underline"), 0, m_csIniFileName);
|
|
|
+ font.lfStrikeOut = GetPrivateProfileInt(csSection, _T("StrikeOut"), 0, m_csIniFileName);
|
|
|
+ font.lfCharSet = GetPrivateProfileInt(csSection, _T("CharSet"), 0, m_csIniFileName);
|
|
|
+ font.lfOutPrecision = GetPrivateProfileInt(csSection, _T("OutPrecision"), 0, m_csIniFileName);
|
|
|
+ font.lfClipPrecision = GetPrivateProfileInt(csSection, _T("ClipPrecision"), 0, m_csIniFileName);
|
|
|
+ font.lfQuality = GetPrivateProfileInt(csSection, _T("Quality"), 0, m_csIniFileName);
|
|
|
+ font.lfPitchAndFamily = GetPrivateProfileInt(csSection, _T("PitchAndFamily"), 0, m_csIniFileName);
|
|
|
+ GetPrivateProfileString(csSection, _T("FaceName"), _T(""), font.lfFaceName, sizeof(font.lfFaceName), m_csIniFileName);
|
|
|
+
|
|
|
+ return TRUE;
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::SetProfileFont(CString csSection, LOGFONT &font)
|
|
|
+{
|
|
|
+ WritePrivateProfileInt(csSection, _T("Height"), font.lfHeight, m_csIniFileName);
|
|
|
+ WritePrivateProfileInt(csSection, _T("Width"), font.lfWidth, m_csIniFileName);
|
|
|
+ WritePrivateProfileInt(csSection, _T("Escapement"), font.lfEscapement, m_csIniFileName);
|
|
|
+ WritePrivateProfileInt(csSection, _T("Orientation"), font.lfOrientation, m_csIniFileName);
|
|
|
+ WritePrivateProfileInt(csSection, _T("Weight"), font.lfWeight, m_csIniFileName);
|
|
|
+ WritePrivateProfileInt(csSection, _T("Italic"), font.lfItalic, m_csIniFileName);
|
|
|
+ WritePrivateProfileInt(csSection, _T("Underline"), font.lfUnderline, m_csIniFileName);
|
|
|
+ WritePrivateProfileInt(csSection, _T("StrikeOut"), font.lfStrikeOut, m_csIniFileName);
|
|
|
+ WritePrivateProfileInt(csSection, _T("CharSet"), font.lfCharSet, m_csIniFileName);
|
|
|
+ WritePrivateProfileInt(csSection, _T("OutPrecision"), font.lfOutPrecision, m_csIniFileName);
|
|
|
+ WritePrivateProfileInt(csSection, _T("ClipPrecision"), font.lfClipPrecision, m_csIniFileName);
|
|
|
+ WritePrivateProfileInt(csSection, _T("Quality"), font.lfQuality, m_csIniFileName);
|
|
|
+ WritePrivateProfileInt(csSection, _T("PitchAndFamily"), font.lfPitchAndFamily, m_csIniFileName);
|
|
|
+ WritePrivateProfileString(csSection, _T("FaceName"), font.lfFaceName, m_csIniFileName);
|
|
|
+
|
|
|
+ return TRUE;
|
|
|
+}
|
|
|
+
|
|
|
+LPVOID CGetSetOptions::GetProfileData(CString csName, DWORD &dwLength)
|
|
|
+{
|
|
|
+ if(m_bFromIni && !m_bInConversion)
|
|
|
+ {
|
|
|
+ ASSERT(!"GetProfileData not supported in .ini settings");
|
|
|
+ return NULL;
|
|
|
+ }
|
|
|
+
|
|
|
+ HKEY hkKey;
|
|
|
+
|
|
|
+ long lResult = RegOpenKeyEx(HKEY_CURRENT_USER, _T(REG_PATH),
|
|
|
+ NULL, KEY_READ, &hkKey);
|
|
|
+
|
|
|
+ lResult = ::RegQueryValueEx(hkKey , csName, NULL, NULL, NULL, &dwLength);
|
|
|
+
|
|
|
+ if(lResult != ERROR_SUCCESS)
|
|
|
+ return NULL;
|
|
|
+
|
|
|
+ LPVOID lpVoid = new BYTE[dwLength];
|
|
|
+
|
|
|
+ lResult = ::RegQueryValueEx(hkKey , csName, NULL, NULL, (LPBYTE)lpVoid, &dwLength);
|
|
|
+
|
|
|
+ RegCloseKey(hkKey);
|
|
|
+
|
|
|
+ if(lResult != ERROR_SUCCESS)
|
|
|
+ return NULL;
|
|
|
+
|
|
|
+ return lpVoid;
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::GetShowIconInSysTray()
|
|
|
+{
|
|
|
+ return GetProfileLong("ShowIconInSystemTray", TRUE);
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::SetShowIconInSysTray(BOOL bShow)
|
|
|
+{
|
|
|
+ return SetProfileLong("ShowIconInSystemTray", bShow);
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::SetEnableTransparency(BOOL bCheck)
|
|
|
+{
|
|
|
+ return SetProfileLong("EnableTransparency", bCheck);
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::GetEnableTransparency()
|
|
|
+{
|
|
|
+ return GetProfileLong("EnableTransparency", FALSE);
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::SetTransparencyPercent(long lPercent)
|
|
|
+{
|
|
|
+#ifdef AFTER_98
|
|
|
+ if(lPercent > OPACITY_MAX)
|
|
|
+ lPercent = OPACITY_MAX;
|
|
|
+ if(lPercent < 0)
|
|
|
+ lPercent = 0;
|
|
|
+
|
|
|
+ return SetProfileLong("TransparencyPercent", lPercent);
|
|
|
+#endif
|
|
|
+ return FALSE;
|
|
|
+}
|
|
|
+
|
|
|
+long CGetSetOptions::GetTransparencyPercent()
|
|
|
+{
|
|
|
+#ifdef AFTER_98
|
|
|
+ long lValue = GetProfileLong("TransparencyPercent", 14);
|
|
|
+
|
|
|
+ if(lValue > OPACITY_MAX) lValue = OPACITY_MAX;
|
|
|
+ if(lValue < 0) lValue = 0;
|
|
|
+
|
|
|
+ return lValue;
|
|
|
+#endif
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::SetLinesPerRow(long lLines)
|
|
|
+{
|
|
|
+ m_nLinesPerRow = lLines;
|
|
|
+ return SetProfileLong("LinesPerRow", lLines);
|
|
|
+}
|
|
|
+
|
|
|
+long CGetSetOptions::GetLinesPerRow()
|
|
|
+{
|
|
|
+ return GetProfileLong("LinesPerRow", 2);
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::GetRunOnStartUp()
|
|
|
+{
|
|
|
+ HKEY hkRun;
|
|
|
+
|
|
|
+ LONG nResult = RegOpenKeyEx(HKEY_CURRENT_USER,
|
|
|
+ _T("Software\\Microsoft\\Windows\\CurrentVersion\\Run"),
|
|
|
+ NULL, KEY_READ, &hkRun);
|
|
|
+
|
|
|
+ if(nResult != ERROR_SUCCESS)
|
|
|
+ return FALSE;
|
|
|
+
|
|
|
+ nResult = RegQueryValueEx(hkRun, GetAppName(), NULL, NULL, NULL, NULL);
|
|
|
+ RegCloseKey(hkRun);
|
|
|
+ return nResult == ERROR_SUCCESS;
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetRunOnStartUp(BOOL bRun)
|
|
|
+{
|
|
|
+ //Can't set auto run when running from U3 device
|
|
|
+ if(m_bU3)
|
|
|
+ return;
|
|
|
+
|
|
|
+ if(bRun == GetRunOnStartUp())
|
|
|
+ return;
|
|
|
+
|
|
|
+ HKEY hkRun;
|
|
|
+ LONG nResult = RegOpenKeyEx(HKEY_CURRENT_USER,
|
|
|
+ _T("Software\\Microsoft\\Windows\\CurrentVersion\\Run"),
|
|
|
+ NULL, KEY_ALL_ACCESS, &hkRun);
|
|
|
+
|
|
|
+ if(nResult != ERROR_SUCCESS)
|
|
|
+ return;
|
|
|
+
|
|
|
+ if(bRun)
|
|
|
+ {
|
|
|
+ CString sExeName = GetExeFileName();
|
|
|
+ ::RegSetValueEx(hkRun, GetAppName(), NULL, REG_SZ,
|
|
|
+ (BYTE*)(LPCTSTR)sExeName, sExeName.GetLength()*sizeof(TCHAR));
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ::RegDeleteValue(hkRun, GetAppName());
|
|
|
+ }
|
|
|
+
|
|
|
+ ::RegCloseKey(hkRun);
|
|
|
+}
|
|
|
+
|
|
|
+CString CGetSetOptions::GetExeFileName()
|
|
|
+{
|
|
|
+ CString sExeName;
|
|
|
+ GetModuleFileName(NULL, sExeName.GetBuffer(_MAX_PATH),_MAX_PATH);
|
|
|
+ sExeName.ReleaseBuffer();
|
|
|
+ return sExeName;
|
|
|
+}
|
|
|
+
|
|
|
+CString CGetSetOptions::GetAppName()
|
|
|
+{
|
|
|
+ return "Ditto";
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::SetQuickPastePosition(long lPosition)
|
|
|
+{
|
|
|
+ return SetProfileLong("ShowQuickPastePosition", lPosition);
|
|
|
+}
|
|
|
+
|
|
|
+long CGetSetOptions::GetQuickPastePosition()
|
|
|
+{
|
|
|
+ return GetProfileLong("ShowQuickPastePosition", POS_AT_CURSOR);
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::SetQuickPasteSize(CSize size)
|
|
|
+{
|
|
|
+ BOOL bRet = SetProfileLong("QuickPasteCX", size.cx);
|
|
|
+ bRet = SetProfileLong("QuickPasteCY", size.cy);
|
|
|
+
|
|
|
+ return bRet;
|
|
|
+}
|
|
|
+void CGetSetOptions::GetQuickPasteSize(CSize &size)
|
|
|
+{
|
|
|
+ size.cx = GetProfileLong("QuickPasteCX", 300);
|
|
|
+ size.cy = GetProfileLong("QuickPasteCY", 300);
|
|
|
+ if(size.cx <= 0 && size.cy <= 0)
|
|
|
+ {
|
|
|
+ size.cx = 300;
|
|
|
+ size.cy = 300;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::SetQuickPastePoint(CPoint point)
|
|
|
+{
|
|
|
+ BOOL bRet = SetProfileLong("QuickPasteX", point.x);
|
|
|
+ bRet = SetProfileLong("QuickPasteY", point.y);
|
|
|
+
|
|
|
+ return bRet;
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::GetQuickPastePoint(CPoint &point)
|
|
|
+{
|
|
|
+ point.x = GetProfileLong("QuickPasteX", 300);
|
|
|
+ point.y = GetProfileLong("QuickPasteY", 300);
|
|
|
+
|
|
|
+ if(point.x <= 0 && point.y <= 0)
|
|
|
+ {
|
|
|
+ point.x = 300;
|
|
|
+ point.y = 300;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::SetEditWndSize(CSize size)
|
|
|
+{
|
|
|
+ BOOL bRet = SetProfileLong("EditWndCX", size.cx);
|
|
|
+ bRet = SetProfileLong("EditWndCY", size.cy);
|
|
|
+
|
|
|
+ return bRet;
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::GetEditWndSize(CSize &size)
|
|
|
+{
|
|
|
+ size.cx = GetProfileLong("EditWndCX", 600);
|
|
|
+ size.cy = GetProfileLong("EditWndCY", 600);
|
|
|
+ if(size.cx <= 0 && size.cy <= 0)
|
|
|
+ {
|
|
|
+ size.cx = 600;
|
|
|
+ size.cy = 600;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::SetEditWndPoint(CPoint point)
|
|
|
+{
|
|
|
+ BOOL bRet = SetProfileLong("EditWndX", point.x);
|
|
|
+ bRet = SetProfileLong("EditWndY", point.y);
|
|
|
+
|
|
|
+ return bRet;
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::GetEditWndPoint(CPoint &point)
|
|
|
+{
|
|
|
+ point.x = GetProfileLong("EditWndX", 100);
|
|
|
+ point.y = GetProfileLong("EditWndY", 100);
|
|
|
+
|
|
|
+ if(point.x <= 0 && point.y <= 0)
|
|
|
+ {
|
|
|
+ point.x = 100;
|
|
|
+ point.y = 100;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+long CGetSetOptions::GetCopyGap()
|
|
|
+{
|
|
|
+ return GetProfileLong("CopyGap", 150);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetCopyGap(long lGap)
|
|
|
+{
|
|
|
+ SetProfileLong("CopyGap", lGap);
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::SetDBPathOld(CString csPath)
|
|
|
+{
|
|
|
+ return SetProfileString("DBPath", csPath);
|
|
|
+}
|
|
|
+
|
|
|
+CString CGetSetOptions::GetDBPathOld()
|
|
|
+{
|
|
|
+ return GetProfileString("DBPath", "");
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::SetDBPath(CString csPath)
|
|
|
+{
|
|
|
+ return SetProfileString("DBPath3", csPath);
|
|
|
+}
|
|
|
+
|
|
|
+CString CGetSetOptions::GetDBPath()
|
|
|
+{
|
|
|
+ CString csDBPath;
|
|
|
+ if(m_bU3)
|
|
|
+ {
|
|
|
+ csDBPath = GetProfileString("DBPath3", "");
|
|
|
+ if(csDBPath.IsEmpty())
|
|
|
+ {
|
|
|
+ csDBPath = GetDefaultDBName();
|
|
|
+ }
|
|
|
+
|
|
|
+ CPath ExistingPath(csDBPath);
|
|
|
+ csDBPath = CGetSetOptions::GetPath(PATH_DATABASE);
|
|
|
+ csDBPath += ExistingPath.GetName();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ csDBPath = GetProfileString("DBPath3", "");
|
|
|
+ }
|
|
|
+
|
|
|
+ return csDBPath;
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetCheckForMaxEntries(BOOL bVal)
|
|
|
+{
|
|
|
+ SetProfileLong("CheckForMaxEntries", bVal);
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::GetCheckForMaxEntries()
|
|
|
+{
|
|
|
+ BOOL bDefault = FALSE;
|
|
|
+ if(m_bU3)
|
|
|
+ bDefault = TRUE;
|
|
|
+ if(GetIsPortableDitto())
|
|
|
+ bDefault = TRUE;
|
|
|
+
|
|
|
+ return GetProfileLong("CheckForMaxEntries", bDefault);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetCheckForExpiredEntries(BOOL bVal)
|
|
|
+{
|
|
|
+ SetProfileLong("CheckForExpiredEntries", bVal);
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::GetCheckForExpiredEntries()
|
|
|
+{
|
|
|
+ return GetProfileLong("CheckForExpiredEntries", FALSE);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetMaxEntries(long lVal)
|
|
|
+{
|
|
|
+ SetProfileLong("MaxEntries", lVal);
|
|
|
+}
|
|
|
+
|
|
|
+long CGetSetOptions::GetMaxEntries()
|
|
|
+{
|
|
|
+ long lMax = 500;
|
|
|
+ if(m_bU3)
|
|
|
+ lMax = 75;
|
|
|
+ if(GetIsPortableDitto())
|
|
|
+ lMax = 100;
|
|
|
+ return GetProfileLong("MaxEntries", lMax);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetExpiredEntries(long lVal)
|
|
|
+{
|
|
|
+ SetProfileLong("ExpiredEntries", lVal);
|
|
|
+}
|
|
|
+
|
|
|
+long CGetSetOptions::GetExpiredEntries()
|
|
|
+{
|
|
|
+ return GetProfileLong("ExpiredEntries", 5);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetTripCopyCount(long lVal)
|
|
|
+{
|
|
|
+ // negative means a relative offset
|
|
|
+ if(lVal < 0)
|
|
|
+ lVal = GetTripCopyCount() - lVal; // add the absolute value
|
|
|
+
|
|
|
+ if(GetTripDate() == 0)
|
|
|
+ SetTripDate(-1);
|
|
|
+
|
|
|
+ SetProfileLong("TripCopies", lVal);
|
|
|
+}
|
|
|
+
|
|
|
+long CGetSetOptions::GetTripCopyCount()
|
|
|
+{
|
|
|
+ return GetProfileLong("TripCopies", 0);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetTripPasteCount(long lVal)
|
|
|
+{
|
|
|
+ // negative means a relative offset
|
|
|
+ if(lVal < 0)
|
|
|
+ lVal = GetTripPasteCount() - lVal; // add the absolute value
|
|
|
+
|
|
|
+ if(GetTripDate() == 0)
|
|
|
+ SetTripDate(-1);
|
|
|
+
|
|
|
+ SetProfileLong("TripPastes", lVal);
|
|
|
+}
|
|
|
+
|
|
|
+long CGetSetOptions::GetTripPasteCount()
|
|
|
+{
|
|
|
+ return GetProfileLong("TripPastes", 0);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetTripDate(long lDate)
|
|
|
+{
|
|
|
+ if(lDate == -1)
|
|
|
+ lDate = (long)CTime::GetCurrentTime().GetTime();
|
|
|
+
|
|
|
+ SetProfileLong("TripDate", lDate);
|
|
|
+}
|
|
|
+
|
|
|
+long CGetSetOptions::GetTripDate()
|
|
|
+{
|
|
|
+ return GetProfileLong("TripDate", 0);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetTotalCopyCount(long lVal)
|
|
|
+{
|
|
|
+ // negative means a relative offset
|
|
|
+ if(lVal < 0)
|
|
|
+ lVal = GetTotalCopyCount() - lVal; // add the absolute value
|
|
|
+
|
|
|
+ if(GetTotalDate() == 0)
|
|
|
+ SetTotalDate(-1);
|
|
|
+
|
|
|
+ SetProfileLong("TotalCopies", lVal);
|
|
|
+}
|
|
|
+
|
|
|
+long CGetSetOptions::GetTotalCopyCount()
|
|
|
+{
|
|
|
+ return GetProfileLong("TotalCopies", 0);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetTotalPasteCount(long lVal)
|
|
|
+{
|
|
|
+ // negative means a relative offset
|
|
|
+ if(lVal < 0)
|
|
|
+ lVal = GetTotalPasteCount() - lVal; // add the absolute value
|
|
|
+
|
|
|
+ if(GetTotalDate() == 0)
|
|
|
+ SetTotalDate(-1);
|
|
|
+
|
|
|
+ SetProfileLong("TotalPastes", lVal);
|
|
|
+}
|
|
|
+
|
|
|
+long CGetSetOptions::GetTotalPasteCount()
|
|
|
+{
|
|
|
+ return GetProfileLong("TotalPastes", 0);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetTotalDate(long lDate)
|
|
|
+{
|
|
|
+ if(lDate == -1)
|
|
|
+ lDate = (long)CTime::GetCurrentTime().GetTime();
|
|
|
+
|
|
|
+ SetProfileLong("TotalDate", lDate);
|
|
|
+}
|
|
|
+
|
|
|
+long CGetSetOptions::GetTotalDate()
|
|
|
+{
|
|
|
+ return GetProfileLong("TotalDate", 0);
|
|
|
+}
|
|
|
+
|
|
|
+CString CGetSetOptions::GetUpdateFilePath()
|
|
|
+{
|
|
|
+ return GetProfileString("UpdateFilePath", "");
|
|
|
+}
|
|
|
+BOOL CGetSetOptions::SetUpdateFilePath(CString cs)
|
|
|
+{
|
|
|
+ return SetProfileString("UpdateFilePath", cs);
|
|
|
+}
|
|
|
+
|
|
|
+CString CGetSetOptions::GetUpdateInstallPath()
|
|
|
+{
|
|
|
+ return GetProfileString("UpdateInstallPath", "");
|
|
|
+}
|
|
|
+BOOL CGetSetOptions::SetUpdateInstallPath(CString cs)
|
|
|
+{
|
|
|
+ return SetProfileString("UpdateInstallPath", cs);
|
|
|
+}
|
|
|
+
|
|
|
+long CGetSetOptions::GetLastUpdate()
|
|
|
+{
|
|
|
+ return GetProfileLong("LastUpdateDay", 0);
|
|
|
+}
|
|
|
+long CGetSetOptions::SetLastUpdate(long lValue)
|
|
|
+{
|
|
|
+ return SetProfileLong("LastUpdateDay", lValue);
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::GetCheckForUpdates()
|
|
|
+{
|
|
|
+ return GetProfileLong("CheckForUpdates", TRUE);
|
|
|
+}
|
|
|
+BOOL CGetSetOptions::SetCheckForUpdates(BOOL bCheck)
|
|
|
+{
|
|
|
+ return SetProfileLong("CheckForUpdates", bCheck);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetUseCtrlNumForFirstTenHotKeys(BOOL bVal)
|
|
|
+{
|
|
|
+ SetProfileLong("UseCtrlNumForFirstTenHotKeys", bVal);
|
|
|
+ m_bUseCtrlNumAccel = bVal;
|
|
|
+}
|
|
|
+BOOL CGetSetOptions::GetUseCtrlNumForFirstTenHotKeys()
|
|
|
+{
|
|
|
+ return GetProfileLong("UseCtrlNumForFirstTenHotKeys", 0);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetAllowDuplicates(BOOL bVal)
|
|
|
+{
|
|
|
+ SetProfileLong("AllowDuplicates", bVal);
|
|
|
+ m_bAllowDuplicates = bVal;
|
|
|
+}
|
|
|
+BOOL CGetSetOptions::GetAllowDuplicates()
|
|
|
+{
|
|
|
+ return GetProfileLong("AllowDuplicates", 0);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetUpdateTimeOnPaste(BOOL bVal)
|
|
|
+{
|
|
|
+ SetProfileLong("UpdateTimeOnPaste", bVal);
|
|
|
+ m_bUpdateTimeOnPaste = bVal;
|
|
|
+}
|
|
|
+BOOL CGetSetOptions::GetUpdateTimeOnPaste()
|
|
|
+{
|
|
|
+ return GetProfileLong("UpdateTimeOnPaste", TRUE);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetSaveMultiPaste(BOOL bVal)
|
|
|
+{
|
|
|
+ SetProfileLong("SaveMultiPaste", bVal);
|
|
|
+ m_bSaveMultiPaste = bVal;
|
|
|
+}
|
|
|
+BOOL CGetSetOptions::GetSaveMultiPaste()
|
|
|
+{
|
|
|
+ return GetProfileLong("SaveMultiPaste", 0);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetShowPersistent(BOOL bVal)
|
|
|
+{
|
|
|
+ SetProfileLong("ShowPersistent", bVal);
|
|
|
+ m_bShowPersistent = bVal;
|
|
|
+}
|
|
|
+BOOL CGetSetOptions::GetShowPersistent()
|
|
|
+{
|
|
|
+ return GetProfileLong("ShowPersistent", 0);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetShowTextForFirstTenHotKeys(BOOL bVal)
|
|
|
+{
|
|
|
+ SetProfileLong("ShowTextForFirstTenHotKeys", bVal);
|
|
|
+}
|
|
|
+BOOL CGetSetOptions::GetShowTextForFirstTenHotKeys()
|
|
|
+{
|
|
|
+ return GetProfileLong("ShowTextForFirstTenHotKeys", TRUE);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetMainHWND(long lhWnd)
|
|
|
+{
|
|
|
+ SetProfileLong("MainhWnd", lhWnd);
|
|
|
+}
|
|
|
+BOOL CGetSetOptions::GetMainHWND()
|
|
|
+{
|
|
|
+ return GetProfileLong("MainhWnd", 0);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetCaptionPos(long lPos)
|
|
|
+{
|
|
|
+ SetProfileLong("CaptionPos", lPos);
|
|
|
+}
|
|
|
+long CGetSetOptions::GetCaptionPos()
|
|
|
+{
|
|
|
+ return GetProfileLong("CaptionPos", CAPTION_RIGHT);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetAutoHide(BOOL bAutoHide)
|
|
|
+{
|
|
|
+ SetProfileLong("AutoHide", bAutoHide);
|
|
|
+}
|
|
|
+BOOL CGetSetOptions::GetAutoHide()
|
|
|
+{
|
|
|
+ return GetProfileLong("AutoHide", FALSE);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetDescTextSize(long lSize)
|
|
|
+{
|
|
|
+ SetProfileLong("DescTextSize", lSize);
|
|
|
+ m_bDescTextSize = lSize;
|
|
|
+}
|
|
|
+long CGetSetOptions::GetDescTextSize()
|
|
|
+{
|
|
|
+ return GetProfileLong("DescTextSize", 500);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetDescShowLeadingWhiteSpace(BOOL bVal)
|
|
|
+{
|
|
|
+ SetProfileLong("DescShowLeadingWhiteSpace", bVal);
|
|
|
+ m_bDescShowLeadingWhiteSpace = bVal;
|
|
|
+}
|
|
|
+BOOL CGetSetOptions::GetDescShowLeadingWhiteSpace()
|
|
|
+{
|
|
|
+ return GetProfileLong("DescShowLeadingWhiteSpace", FALSE);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetAllwaysShowDescription(long bShow)
|
|
|
+{
|
|
|
+ SetProfileLong("AllwaysShowDescription", bShow);
|
|
|
+ m_bAllwaysShowDescription = bShow;
|
|
|
+}
|
|
|
+BOOL CGetSetOptions::GetAllwaysShowDescription()
|
|
|
+{
|
|
|
+ return GetProfileLong("AllwaysShowDescription", FALSE);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetDoubleClickingOnCaptionDoes(long lOption)
|
|
|
+{
|
|
|
+ SetProfileLong("DoubleClickingOnCaptionDoes", lOption);
|
|
|
+ m_bDoubleClickingOnCaptionDoes = lOption;
|
|
|
+}
|
|
|
+long CGetSetOptions::GetDoubleClickingOnCaptionDoes()
|
|
|
+{
|
|
|
+ return GetProfileLong("DoubleClickingOnCaptionDoes", TOGGLES_ALLWAYS_ON_TOP);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetPrompForNewGroupName(BOOL bOption)
|
|
|
+{
|
|
|
+ SetProfileLong("PrompForNewGroupName", bOption);
|
|
|
+ m_bPrompForNewGroupName = bOption;
|
|
|
+}
|
|
|
+BOOL CGetSetOptions::GetPrompForNewGroupName()
|
|
|
+{
|
|
|
+ return GetProfileLong("PrompForNewGroupName", TRUE);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetSendPasteOnFirstTenHotKeys(BOOL bOption)
|
|
|
+{
|
|
|
+ SetProfileLong("SendPasteOnFirstTenHotKeys", bOption);
|
|
|
+ m_bSendPasteOnFirstTenHotKeys = bOption;
|
|
|
+}
|
|
|
+BOOL CGetSetOptions::GetSendPasteOnFirstTenHotKeys()
|
|
|
+{
|
|
|
+ return GetProfileLong("SendPasteOnFirstTenHotKeys", TRUE);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetSendClients(CSendClients Client, int nPos)
|
|
|
+{
|
|
|
+ CString cs;
|
|
|
+
|
|
|
+ cs.Format(_T("sendclient_ip_%d"), nPos);
|
|
|
+ SetProfileString(cs, Client.csIP);
|
|
|
+
|
|
|
+ cs.Format(_T("sendclient_autosend_%d"), nPos);
|
|
|
+ SetProfileLong(cs, Client.bSendAll);
|
|
|
+
|
|
|
+ cs.Format(_T("sendclient_description_%d"), nPos);
|
|
|
+ SetProfileString(cs, Client.csDescription);
|
|
|
+
|
|
|
+ Client.bShownFirstError = m_SendClients[nPos].bShownFirstError;
|
|
|
+
|
|
|
+ m_SendClients[nPos] = Client;
|
|
|
+}
|
|
|
+
|
|
|
+CSendClients CGetSetOptions::GetSendClients(int nPos)
|
|
|
+{
|
|
|
+ CSendClients Client;
|
|
|
+
|
|
|
+ CString cs;
|
|
|
+
|
|
|
+ cs.Format(_T("sendclient_ip_%d"), nPos);
|
|
|
+ Client.csIP = GetProfileString(cs, "");
|
|
|
+
|
|
|
+ cs.Format(_T("sendclient_autosend_%d"), nPos);
|
|
|
+ Client.bSendAll = GetProfileLong(cs, FALSE);
|
|
|
+
|
|
|
+ cs.Format(_T("sendclient_description_%d"), nPos);
|
|
|
+ Client.csDescription = GetProfileString(cs, "");
|
|
|
+
|
|
|
+ m_SendClients[nPos] = Client;
|
|
|
+
|
|
|
+ return Client;
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::GetClientSendCount()
|
|
|
+{
|
|
|
+ m_lAutoSendClientCount = 0;
|
|
|
+ for(int i = 0; i < MAX_SEND_CLIENTS; i++)
|
|
|
+ {
|
|
|
+ if(m_SendClients[i].csIP.GetLength() > 0)
|
|
|
+ {
|
|
|
+ if(m_SendClients[i].bSendAll)
|
|
|
+ m_lAutoSendClientCount++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+CString CGetSetOptions::GetListToPutOnClipboard()
|
|
|
+{
|
|
|
+ CString cs = GetProfileString("ListToPutOnClipboard", "");
|
|
|
+ cs.MakeUpper();
|
|
|
+ return cs;
|
|
|
+}
|
|
|
+BOOL CGetSetOptions::SetListToPutOnClipboard(CString cs)
|
|
|
+{
|
|
|
+ cs.MakeUpper();
|
|
|
+ m_csIPListToPutOnClipboard = cs;
|
|
|
+ return SetProfileString("ListToPutOnClipboard", cs);
|
|
|
+
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetLogSendReceiveErrors(BOOL bOption)
|
|
|
+{
|
|
|
+ m_bLogSendReceiveErrors = bOption;
|
|
|
+
|
|
|
+ SetProfileLong("LogSendReceiveErrors", bOption);
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::GetLogSendReceiveErrors()
|
|
|
+{
|
|
|
+ return GetProfileLong("LogSendReceiveErrors", FALSE);
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::GetHideDittoOnHotKeyIfAlreadyShown()
|
|
|
+{
|
|
|
+ return GetProfileLong("HideDittoOnHotKeyIfAlreadyShown", TRUE);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetHideDittoOnHotKeyIfAlreadyShown(BOOL bVal)
|
|
|
+{
|
|
|
+ m_HideDittoOnHotKeyIfAlreadyShown = bVal;
|
|
|
+
|
|
|
+ SetProfileLong("HideDittoOnHotKeyIfAlreadyShown", bVal);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetPort(long lPort)
|
|
|
+{
|
|
|
+ m_lPort = lPort;
|
|
|
+ SetProfileLong("SendRecvPort", lPort);
|
|
|
+}
|
|
|
+
|
|
|
+long CGetSetOptions::GetPort()
|
|
|
+{
|
|
|
+ return GetProfileLong("SendRecvPort", 23443);
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::GetDisableRecieve()
|
|
|
+{
|
|
|
+ BOOL bDefault = FALSE;
|
|
|
+ if(m_bU3)
|
|
|
+ bDefault = TRUE;
|
|
|
+ if(GetIsPortableDitto())
|
|
|
+ bDefault = TRUE;
|
|
|
+
|
|
|
+ return GetProfileLong("DisableRecieve", bDefault);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetDisableRecieve(BOOL bVal)
|
|
|
+{
|
|
|
+ SetProfileLong("DisableRecieve", bVal);
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::GetFont(LOGFONT &font)
|
|
|
+{
|
|
|
+ if(m_bFromIni && !m_bInConversion)
|
|
|
+ {
|
|
|
+ GetProfileFont("DisplayFont", font);
|
|
|
+
|
|
|
+ //Return true if there is a font name
|
|
|
+ //other wise load the default font below
|
|
|
+ if(font.lfFaceName[0] != 0)
|
|
|
+ {
|
|
|
+ return TRUE;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ DWORD dwLength = 0;
|
|
|
+ #ifdef _UNICODE
|
|
|
+ LPVOID lpVoid = GetProfileData("DisplayFont3", dwLength);
|
|
|
+ #else
|
|
|
+ LPVOID lpVoid = GetProfileData("DisplayFont", dwLength);
|
|
|
+ #endif
|
|
|
+ if(lpVoid)
|
|
|
+ {
|
|
|
+ if(sizeof(font) == dwLength)
|
|
|
+ {
|
|
|
+ memcpy(&font, lpVoid, dwLength);
|
|
|
+ delete[] lpVoid;
|
|
|
+ lpVoid = NULL;
|
|
|
+ return TRUE;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ ASSERT(!"invalid font struct size");
|
|
|
+ }
|
|
|
+
|
|
|
+ delete[] lpVoid;
|
|
|
+ lpVoid = NULL;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ ZeroMemory(&font, sizeof(font));
|
|
|
+ font.lfHeight = -11;
|
|
|
+ font.lfWeight = 400;
|
|
|
+ font.lfCharSet = 1;
|
|
|
+ STRCPY(font.lfFaceName, _T("Arial Unicode MS"));
|
|
|
+ return TRUE;
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetFont(LOGFONT &font)
|
|
|
+{
|
|
|
+ if(m_bFromIni)
|
|
|
+ {
|
|
|
+ SetProfileFont("DisplayFont", font);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ #ifdef _UNICODE
|
|
|
+ CString csParam = "DisplayFont3";
|
|
|
+ #else
|
|
|
+ CString csParam = "DisplayFont";
|
|
|
+ #endif
|
|
|
+
|
|
|
+ SetProfileData(csParam, &font, sizeof(LOGFONT));
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetDrawThumbnail(long bDraw)
|
|
|
+{
|
|
|
+ SetProfileLong("DrawThumbnail", bDraw);
|
|
|
+ m_bDrawThumbnail = bDraw;
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::GetDrawThumbnail()
|
|
|
+{
|
|
|
+ BOOL bDrawThumbnails = TRUE;
|
|
|
+ if(g_Opt.m_bU3)
|
|
|
+ bDrawThumbnails = FALSE;
|
|
|
+
|
|
|
+ return GetProfileLong("DrawThumbnail", bDrawThumbnails);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetExtraNetworkPassword(CString csPassword)
|
|
|
+{
|
|
|
+ SetProfileString("NetworkExtraPassword", csPassword);
|
|
|
+}
|
|
|
+
|
|
|
+CString CGetSetOptions::GetExtraNetworkPassword(bool bFillArray)
|
|
|
+{
|
|
|
+ CString cs = GetProfileString("NetworkExtraPassword", "");
|
|
|
+
|
|
|
+ if(bFillArray)
|
|
|
+ {
|
|
|
+ m_csNetworkPasswordArray.RemoveAll();
|
|
|
+
|
|
|
+ TCHAR seps[] = _T(",");
|
|
|
+ TCHAR *token;
|
|
|
+
|
|
|
+ TCHAR *pString = cs.GetBuffer(cs.GetLength());
|
|
|
+
|
|
|
+ /* Establish string and get the first token: */
|
|
|
+ token = STRTOK(pString, seps);
|
|
|
+ while(token != NULL)
|
|
|
+ {
|
|
|
+ CString cs(token);
|
|
|
+ cs.TrimLeft();
|
|
|
+ cs.TrimRight();
|
|
|
+
|
|
|
+ m_csNetworkPasswordArray.Add(cs);
|
|
|
+
|
|
|
+ // Get next token
|
|
|
+ token = STRTOK(NULL, seps);
|
|
|
+ }
|
|
|
+
|
|
|
+ cs.ReleaseBuffer();
|
|
|
+ }
|
|
|
+
|
|
|
+ return cs;
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetNetworkPassword(CString csPassword)
|
|
|
+{
|
|
|
+ CTextConvert Con;
|
|
|
+ Con.ConvertToUTF8(csPassword, m_csPassword);
|
|
|
+
|
|
|
+ SetProfileString("NetworkStringPassword", csPassword);
|
|
|
+}
|
|
|
+
|
|
|
+CStringA CGetSetOptions::GetNetworkPassword()
|
|
|
+{
|
|
|
+ CString cs = GetProfileString("NetworkStringPassword", "LetMeIn");
|
|
|
+
|
|
|
+ CTextConvert Con;
|
|
|
+ CStringA csReturn;
|
|
|
+ Con.ConvertToUTF8(cs, csReturn);
|
|
|
+
|
|
|
+ return csReturn;
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetDrawRTF(long bDraw)
|
|
|
+{
|
|
|
+//this only works under 32 bit build
|
|
|
+#ifdef _M_IX86
|
|
|
+ SetProfileLong("DrawRTF", bDraw);
|
|
|
+ m_bDrawRTF = bDraw;
|
|
|
+#endif
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::GetDrawRTF()
|
|
|
+{
|
|
|
+//this only works under 32 bit build
|
|
|
+#ifdef _M_IX86
|
|
|
+ return GetProfileLong("DrawRTF", FALSE);
|
|
|
+#endif
|
|
|
+ return FALSE;
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetMultiPasteReverse(BOOL bVal)
|
|
|
+{
|
|
|
+ SetProfileLong("MultiPasteReverse", bVal);
|
|
|
+ m_bMultiPasteReverse = bVal;
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::GetMultiPasteReverse()
|
|
|
+{
|
|
|
+ return GetProfileLong("MultiPasteReverse", TRUE);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetPlaySoundOnCopy(CString cs)
|
|
|
+{
|
|
|
+ m_csPlaySoundOnCopy = cs;
|
|
|
+
|
|
|
+ SetProfileString("PlaySoundOnCopy", cs);
|
|
|
+}
|
|
|
+
|
|
|
+CString CGetSetOptions::GetPlaySoundOnCopy()
|
|
|
+{
|
|
|
+ return GetProfileString("PlaySoundOnCopy", "");
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetSendPasteAfterSelection(BOOL bVal)
|
|
|
+{
|
|
|
+ m_bSendPasteMessageAfterSelection = bVal;
|
|
|
+
|
|
|
+ SetProfileLong("SendPasteMessageAfterSelection", bVal);
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::GetSendPasteAfterSelection()
|
|
|
+{
|
|
|
+ return GetProfileLong("SendPasteMessageAfterSelection", TRUE);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetFindAsYouType(BOOL bVal)
|
|
|
+{
|
|
|
+ m_bFindAsYouType = bVal;
|
|
|
+ SetProfileLong("FindAsYouType", bVal);
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::GetFindAsYouType()
|
|
|
+{
|
|
|
+ return GetProfileLong("FindAsYouType", TRUE);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetEnsureEntireWindowCanBeSeen(BOOL bVal)
|
|
|
+{
|
|
|
+ m_bEnsureEntireWindowCanBeSeen = bVal;
|
|
|
+ SetProfileLong("EnsureEntireWindowCanBeSeen", bVal);
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::GetEnsureEntireWindowCanBeSeen()
|
|
|
+{
|
|
|
+ return GetProfileLong("EnsureEntireWindowCanBeSeen", TRUE);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetShowAllClipsInMainList(BOOL bVal)
|
|
|
+{
|
|
|
+ m_bShowAllClipsInMainList = bVal;
|
|
|
+ SetProfileLong("ShowAllClipsInMainList", bVal);
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::GetShowAllClipsInMainList()
|
|
|
+{
|
|
|
+ return GetProfileLong("ShowAllClipsInMainList", TRUE);
|
|
|
+}
|
|
|
+
|
|
|
+long CGetSetOptions::GetMaxClipSizeInBytes()
|
|
|
+{
|
|
|
+ return GetProfileLong("MaxClipSizeInBytes", 0);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetMaxClipSizeInBytes(long lSize)
|
|
|
+{
|
|
|
+ m_lMaxClipSizeInBytes = lSize;
|
|
|
+ SetProfileLong("MaxClipSizeInBytes", lSize);
|
|
|
+}
|
|
|
+
|
|
|
+CString CGetSetOptions::GetLanguageFile()
|
|
|
+{
|
|
|
+ return GetProfileString("LanguageFile", "");
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetLanguageFile(CString csLanguage)
|
|
|
+{
|
|
|
+ SetProfileString("LanguageFile", csLanguage);
|
|
|
+}
|
|
|
+
|
|
|
+ULONG CGetSetOptions::GetSaveClipDelay()
|
|
|
+{
|
|
|
+ return (ULONG)GetProfileLong("SaveClipDelay", 500);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetSaveClipDelay(DWORD dwDelay)
|
|
|
+{
|
|
|
+ m_dwSaveClipDelay = dwDelay;
|
|
|
+ SetProfileLong("SaveClipDelay", dwDelay);
|
|
|
+}
|
|
|
+
|
|
|
+long CGetSetOptions::GetProcessDrawClipboardDelay()
|
|
|
+{
|
|
|
+ return GetProfileLong("ProcessDrawClipboardDelay", 100);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetProcessDrawClipboardDelay(long lDelay)
|
|
|
+{
|
|
|
+ m_lProcessDrawClipboardDelay = lDelay;
|
|
|
+ SetProfileLong("ProcessDrawClipboardDelay", lDelay);
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::GetEnableDebugLogging()
|
|
|
+{
|
|
|
+ return GetProfileLong("EnableDebugLogging", FALSE);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetEnableDebugLogging(BOOL bEnable)
|
|
|
+{
|
|
|
+ m_bEnableDebugLogging = bEnable;
|
|
|
+ SetProfileLong("EnableDebugLogging", bEnable);
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::GetEnsureConnectToClipboard()
|
|
|
+{
|
|
|
+ return GetProfileLong("EnsureConnected", TRUE);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetEnsureConnectToClipboard(BOOL bSet)
|
|
|
+{
|
|
|
+ m_bEnsureConnectToClipboard = bSet;
|
|
|
+ SetProfileLong("EnsureConnected", bSet);
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::GetPromptWhenDeletingClips()
|
|
|
+{
|
|
|
+ return GetProfileLong("PromptWhenDeletingClips", TRUE);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetPromptWhenDeletingClips(BOOL bSet)
|
|
|
+{
|
|
|
+ SetProfileLong("PromptWhenDeletingClips", bSet);
|
|
|
+}
|
|
|
+
|
|
|
+CString CGetSetOptions::GetLastImportDir()
|
|
|
+{
|
|
|
+ return GetProfileString("LastImportDir", "");
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetLastImportDir(CString csDir)
|
|
|
+{
|
|
|
+ SetProfileString("LastImportDir", csDir);
|
|
|
+}
|
|
|
+
|
|
|
+CString CGetSetOptions::GetLastExportDir()
|
|
|
+{
|
|
|
+ return GetProfileString("LastExportDir", "");
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetLastExportDir(CString csDir)
|
|
|
+{
|
|
|
+ SetProfileString("LastExportDir", csDir);
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::GetUpdateDescWhenSavingClip()
|
|
|
+{
|
|
|
+ return GetProfileLong("UpdateDescWhenSaving", TRUE);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetUpdateDescWhenSavingClip(BOOL bSet)
|
|
|
+{
|
|
|
+ SetProfileLong("UpdateDescWhenSaving", bSet);
|
|
|
+}
|
|
|
+
|
|
|
+CString CGetSetOptions::GetPath(long lPathID)
|
|
|
+{
|
|
|
+ CString csDir = CGetSetOptions::GetExeFileName();
|
|
|
+ csDir = GetFilePath(csDir);
|
|
|
+ FIX_CSTRING_PATH(csDir);
|
|
|
+
|
|
|
+ //U3_APP_DATA_PATH - <U3_DEVICE_PATH>\System\Apps\{app_unique_id}\Data
|
|
|
+ //U3_HOST_EXEC_PATH - %APPDATA%\U3\{device_serial_number}\{app_unique_id}\Exec
|
|
|
+ //U3_DEVICE_EXEC_PATH - <U3_DEVICE_PATH>\System\Apps\{app_unique_id}\Exec
|
|
|
+
|
|
|
+ switch(lPathID)
|
|
|
+ {
|
|
|
+ case PATH_HELP:
|
|
|
+ if(m_bU3)
|
|
|
+ {
|
|
|
+ csDir = GETENV(_T("U3_DEVICE_EXEC_PATH"));
|
|
|
+ FIX_CSTRING_PATH(csDir);
|
|
|
+ }
|
|
|
+
|
|
|
+ csDir += "Help\\";
|
|
|
+ break;
|
|
|
+
|
|
|
+ case PATH_LANGUAGE:
|
|
|
+ if(m_bU3)
|
|
|
+ {
|
|
|
+ csDir = GETENV(_T("U3_DEVICE_EXEC_PATH"));
|
|
|
+ FIX_CSTRING_PATH(csDir);
|
|
|
+ }
|
|
|
+
|
|
|
+ csDir += "language\\";
|
|
|
+
|
|
|
+ break;
|
|
|
+
|
|
|
+ case PATH_THEMES:
|
|
|
+
|
|
|
+ if(m_bU3)
|
|
|
+ {
|
|
|
+ csDir = GETENV(_T("U3_DEVICE_EXEC_PATH"));
|
|
|
+ FIX_CSTRING_PATH(csDir);
|
|
|
+ }
|
|
|
+
|
|
|
+ csDir += "Themes\\";
|
|
|
+
|
|
|
+ break;
|
|
|
+
|
|
|
+ case PATH_REMOTE_FILES:
|
|
|
+ if(m_bU3)
|
|
|
+ {
|
|
|
+ csDir = GETENV(_T("U3_HOST_EXEC_PATH"));
|
|
|
+ FIX_CSTRING_PATH(csDir);
|
|
|
+ }
|
|
|
+ else if(CGetSetOptions::GetIsPortableDitto() == false)
|
|
|
+ {
|
|
|
+ csDir = GetAppDataPath();
|
|
|
+ }
|
|
|
+
|
|
|
+ csDir += "ReceivedFiles\\";
|
|
|
+ break;
|
|
|
+
|
|
|
+ case PATH_LOG_FILE:
|
|
|
+ if(m_bU3)
|
|
|
+ {
|
|
|
+ csDir = GETENV(_T("U3_HOST_EXEC_PATH"));
|
|
|
+ FIX_CSTRING_PATH(csDir);
|
|
|
+ }
|
|
|
+ else if(CGetSetOptions::GetIsPortableDitto() == false)
|
|
|
+ {
|
|
|
+ csDir = GetAppDataPath();
|
|
|
+ }
|
|
|
+
|
|
|
+ break;
|
|
|
+
|
|
|
+ case PATH_UPDATE_FILE:
|
|
|
+ //same path as the executable
|
|
|
+ break;
|
|
|
+
|
|
|
+ case PATH_DATABASE:
|
|
|
+ if(m_bU3)
|
|
|
+ {
|
|
|
+ csDir = GETENV(_T("U3_APP_DATA_PATH"));
|
|
|
+ FIX_CSTRING_PATH(csDir);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+
|
|
|
+
|
|
|
+ case PATH_INI:
|
|
|
+ if(m_bU3)
|
|
|
+ {
|
|
|
+ csDir = GETENV(_T("U3_APP_DATA_PATH"));
|
|
|
+ FIX_CSTRING_PATH(csDir);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+
|
|
|
+ case PATH_U3_HWND_INI:
|
|
|
+ if(m_bU3)
|
|
|
+ {
|
|
|
+ csDir = GETENV(_T("U3_HOST_EXEC_PATH"));
|
|
|
+ FIX_CSTRING_PATH(csDir);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+
|
|
|
+ case PATH_ADDINS:
|
|
|
+ if(m_bU3)
|
|
|
+ {
|
|
|
+ csDir = GETENV(_T("U3_DEVICE_EXEC_PATH"));
|
|
|
+ FIX_CSTRING_PATH(csDir);
|
|
|
+ }
|
|
|
+
|
|
|
+ csDir += "Addins\\";
|
|
|
+
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ CreateDirectory(csDir, NULL);
|
|
|
+
|
|
|
+ return csDir;
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::WriteU3Hwnd(HWND hWnd)
|
|
|
+{
|
|
|
+ CString csIniFile = GetPath(PATH_U3_HWND_INI);
|
|
|
+ csIniFile += _T("DittohWnd.ini");
|
|
|
+ WritePrivateProfileInt(_T("Ditto"), _T("MainhWnd"), (int)hWnd, csIniFile);
|
|
|
+}
|
|
|
+
|
|
|
+long CGetSetOptions::GetDittoRestoreClipboardDelay()
|
|
|
+{
|
|
|
+ return GetProfileLong("RestoreClipboardDelay", 750);
|
|
|
+
|
|
|
+}
|
|
|
+void CGetSetOptions::SetDittoRestoreClipboardDelay(long lDelay)
|
|
|
+{
|
|
|
+ SetProfileLong("RestoreClipboardDelay", lDelay);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::GetCopyBufferItem(int nPos, CCopyBufferItem &Item)
|
|
|
+{
|
|
|
+ Item.m_lCopyHotKey = GetProfileLong(StrF(_T("CopyBufferCopyHotKey_%d"), nPos), 0);
|
|
|
+ Item.m_lPasteHotKey = GetProfileLong(StrF(_T("CopyBufferPasteHotKey_%d"), nPos), 0);
|
|
|
+ Item.m_lCutHotKey = GetProfileLong(StrF(_T("CopyBufferCutHotKey_%d"), nPos), 0);
|
|
|
+ Item.m_bPlaySoundOnCopy = GetProfileLong(StrF(_T("CopyBufferPlaySound_%d"), nPos), 0);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetCopyBufferItem(int nPos, CCopyBufferItem &Item)
|
|
|
+{
|
|
|
+ SetProfileLong(StrF(_T("CopyBufferCopyHotKey_%d"), nPos), Item.m_lCopyHotKey);
|
|
|
+ SetProfileLong(StrF(_T("CopyBufferPasteHotKey_%d"), nPos), Item.m_lPasteHotKey);
|
|
|
+ SetProfileLong(StrF(_T("CopyBufferCutHotKey_%d"), nPos), Item.m_lCutHotKey);
|
|
|
+ SetProfileLong(StrF(_T("CopyBufferPlaySound_%d"), nPos), Item.m_bPlaySoundOnCopy);
|
|
|
+}
|
|
|
+
|
|
|
+CString CGetSetOptions::GetMultiPasteSeparator(bool bConvertToLineFeeds)
|
|
|
+{
|
|
|
+ CString csSep = GetProfileString(_T("MultiPasteSeparator"), _T("[LF]"));
|
|
|
+ if(bConvertToLineFeeds)
|
|
|
+ {
|
|
|
+ CString csLineFeed(_T("\r\n"));
|
|
|
+ csSep.Replace(_T("[LF]"), csLineFeed);
|
|
|
+ csSep.Replace(_T("[lf]"), csLineFeed);
|
|
|
+ }
|
|
|
+
|
|
|
+ return csSep;
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetMultiPasteSeparator(CString csSep)
|
|
|
+{
|
|
|
+ SetProfileString(_T("MultiPasteSeparator"), csSep);
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::GetSetCurrentDirectory()
|
|
|
+{
|
|
|
+ if(m_portable)
|
|
|
+ {
|
|
|
+ CString csExePath = GetFilePath(GetExeFileName());
|
|
|
+ FIX_CSTRING_PATH(csExePath);
|
|
|
+ ::SetCurrentDirectory(csExePath);
|
|
|
+ }
|
|
|
+
|
|
|
+ return m_portable == true;
|
|
|
+}
|
|
|
+
|
|
|
+bool CGetSetOptions::GetIsPortableDitto()
|
|
|
+{
|
|
|
+ return m_portable;
|
|
|
+}
|
|
|
+
|
|
|
+CString CGetSetOptions::GetPasteString(CString csAppName)
|
|
|
+{
|
|
|
+ CString csString = GetProfileString(csAppName, _T(""), _T("PasteStrings"));
|
|
|
+ if(csString.IsEmpty())
|
|
|
+ return GetDefaultPasteString();
|
|
|
+
|
|
|
+ return csString;
|
|
|
+}
|
|
|
+
|
|
|
+CString CGetSetOptions::GetDefaultPasteString()
|
|
|
+{
|
|
|
+ return GetProfileString(_T("DefaultPasteString"), _T("^v"));
|
|
|
+}
|
|
|
+
|
|
|
+CString CGetSetOptions::GetCopyString(CString csAppName)
|
|
|
+{
|
|
|
+ CString csString = GetProfileString(csAppName, _T(""), _T("CopyStrings"));
|
|
|
+ if(csString.IsEmpty())
|
|
|
+ return GetDefaultCopyString();
|
|
|
+
|
|
|
+ return csString;
|
|
|
+}
|
|
|
+
|
|
|
+CString CGetSetOptions::GetDefaultCopyString()
|
|
|
+{
|
|
|
+ return GetProfileString(_T("DefaultCopyString"), _T("^c"));
|
|
|
+}
|
|
|
+
|
|
|
+CString CGetSetOptions::GetCutString(CString csAppName)
|
|
|
+{
|
|
|
+ CString csString = GetProfileString(csAppName, _T(""), _T("CutStrings"));
|
|
|
+ if(csString.IsEmpty())
|
|
|
+ return GetDefaultCutString();
|
|
|
+
|
|
|
+ return csString;
|
|
|
+}
|
|
|
+
|
|
|
+CString CGetSetOptions::GetDefaultCutString()
|
|
|
+{
|
|
|
+ return GetProfileString(_T("DefaultCutString"), _T("^x"));
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::GetEditWordWrap()
|
|
|
+{
|
|
|
+ return GetProfileLong(_T("EditWordWrap"), TRUE);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetEditWordWrap(BOOL bSet)
|
|
|
+{
|
|
|
+ SetProfileLong(_T("EditWordWrap"), bSet);
|
|
|
+}
|
|
|
+
|
|
|
+bool CGetSetOptions::GetAllowFriends()
|
|
|
+{
|
|
|
+ return (GetProfileLong("AllowFriends", TRUE) == TRUE);
|
|
|
+}
|
|
|
+
|
|
|
+long CGetSetOptions::GetAutoMaxDelay()
|
|
|
+{
|
|
|
+ return GetProfileLong(_T("AutoMaxDelaySeconds"), 2);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetAutoMaxDelay(long lDelay)
|
|
|
+{
|
|
|
+ SetProfileLong(_T("AutoMaxDelaySeconds"), lDelay);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetTheme(CString csTheme)
|
|
|
+{
|
|
|
+ SetProfileString(_T("Theme"), csTheme);
|
|
|
+}
|
|
|
+
|
|
|
+CString CGetSetOptions::GetTheme()
|
|
|
+{
|
|
|
+ return GetProfileString(_T("Theme"), "");
|
|
|
+}
|
|
|
+
|
|
|
+long CGetSetOptions::GetKeyStateWaitTimerCount()
|
|
|
+{
|
|
|
+ return GetProfileLong(_T("KeyStateWaitTimerCount"), 20);
|
|
|
+}
|
|
|
+
|
|
|
+long CGetSetOptions::GetKeyStatePasteDelay()
|
|
|
+{
|
|
|
+ return GetProfileLong(_T("KeyStatePasteDelay"), 200);
|
|
|
+}
|
|
|
+
|
|
|
+DWORD CGetSetOptions::GetDittoHotKey()
|
|
|
+{
|
|
|
+ return (DWORD)GetProfileLong(_T("DittoHotKey"), 704);
|
|
|
+}
|
|
|
+
|
|
|
+DWORD CGetSetOptions::SendKeysDelay()
|
|
|
+{
|
|
|
+ return (DWORD)GetProfileLong(_T("SendKeysDelay"), 50);
|
|
|
+}
|
|
|
+
|
|
|
+DWORD CGetSetOptions::WaitForActiveWndTimeout()
|
|
|
+{
|
|
|
+ return (DWORD)GetProfileLong(_T("WaitForActiveWndTimeout"), 100);
|
|
|
+}
|
|
|
+
|
|
|
+DWORD CGetSetOptions::FocusChangedDelay()
|
|
|
+{
|
|
|
+ return (DWORD)GetProfileLong(_T("FocusChangedDelay"), 100);
|
|
|
+}
|
|
|
+
|
|
|
+DWORD CGetSetOptions::FocusWndTimerTimeout()
|
|
|
+{
|
|
|
+ return (DWORD)GetProfileLong(_T("FocusWndTimerTimeout"), 2000);
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::GetConnectedToClipboard()
|
|
|
+{
|
|
|
+ return GetProfileLong("ConnectedToClipboard", TRUE);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetConnectedToClipboard(BOOL val)
|
|
|
+{
|
|
|
+ SetProfileLong("ConnectedToClipboard", val);
|
|
|
+}
|
|
|
+
|
|
|
+DWORD CGetSetOptions::GetTextOnlyRestoreDelay()
|
|
|
+{
|
|
|
+ return (DWORD)GetProfileLong(_T("TextOnlyRestoreDelay"), 2000);
|
|
|
+}
|
|
|
+
|
|
|
+DWORD CGetSetOptions::GetTextOnlyPasteDelay()
|
|
|
+{
|
|
|
+ return (DWORD)GetProfileLong(_T("TextOnlyPasteDelay"), 500);
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::GetSetFocusToApp(CString csAppName)
|
|
|
+{
|
|
|
+ CString focusCheck;
|
|
|
+ focusCheck = "SetFocus_";
|
|
|
+ focusCheck += csAppName;
|
|
|
+ return GetProfileLong(focusCheck, FALSE);
|
|
|
+}
|
|
|
+
|
|
|
+DWORD CGetSetOptions::SelectedIndex()
|
|
|
+{
|
|
|
+ return (DWORD)GetProfileLong(_T("SelectedIndex"), 0);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetCopyAppInclude(CString csAppName)
|
|
|
+{
|
|
|
+ SetProfileString(_T("CopyAppInclude"), csAppName);
|
|
|
+}
|
|
|
+
|
|
|
+CString CGetSetOptions::GetCopyAppInclude()
|
|
|
+{
|
|
|
+ CString includeApp = GetProfileString(_T("CopyAppInclude"), "*");
|
|
|
+ if(includeApp == "")
|
|
|
+ {
|
|
|
+ includeApp = "*";
|
|
|
+ }
|
|
|
+
|
|
|
+ return includeApp;
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetCopyAppExclude(CString csAppName)
|
|
|
+{
|
|
|
+ SetProfileString(_T("CopyAppExclude"), csAppName);
|
|
|
+}
|
|
|
+
|
|
|
+CString CGetSetOptions::GetCopyAppExclude()
|
|
|
+{
|
|
|
+ return GetProfileString(_T("CopyAppExclude"), "");
|
|
|
+}
|
|
|
+
|
|
|
+CString CGetSetOptions::GetCopyAppSeparator()
|
|
|
+{
|
|
|
+ return GetProfileString(_T("CopyAppSeparator"), ";");
|
|
|
+}
|
|
|
+
|
|
|
+DWORD CGetSetOptions::GetNoFormatsRetryDelay()
|
|
|
+{
|
|
|
+ return GetProfileLong(_T("NoFormatsRetryDelay"), 200);
|
|
|
+}
|
|
|
+
|
|
|
+DWORD CGetSetOptions::GetMainDeletesDeleteCount()
|
|
|
+{
|
|
|
+ return GetProfileLong(_T("MainDeletesDeleteCount"), 100);
|
|
|
+}
|
|
|
+
|
|
|
+DWORD CGetSetOptions::GetIdleSecondsBeforeDelete()
|
|
|
+{
|
|
|
+ return GetProfileLong(_T("IdleSecondsBeforeDelete"), 60*10);
|
|
|
+}
|
|
|
+
|
|
|
+DWORD CGetSetOptions::GetDbTimeout()
|
|
|
+{
|
|
|
+ return GetProfileLong(_T("DbTimeout"), 5000);
|
|
|
+}
|
|
|
+
|
|
|
+DWORD CGetSetOptions::GetFunnyTickCountAdjustment()
|
|
|
+{
|
|
|
+ return GetProfileLong(_T("FunnyTickCountAdjustment"), 300001);
|
|
|
+}
|
|
|
+
|
|
|
+DWORD CGetSetOptions::GetMinIdleTimeBeforeTrackFocus()
|
|
|
+{
|
|
|
+ return GetProfileLong(_T("MinIdleTimeBeforeTrackFocus"), 100);
|
|
|
+}
|
|
|
+
|
|
|
+DWORD CGetSetOptions::GetTimeBeforeExpandWindow()
|
|
|
+{
|
|
|
+ return GetProfileLong(_T("TimeBeforeExpandWindow"), 250);
|
|
|
+}
|
|
|
+
|
|
|
+DWORD CGetSetOptions::GetUseGuiThreadInfoForFocus()
|
|
|
+{
|
|
|
+ return GetProfileLong(_T("UseGuiThreadInfoForFocus"), 1);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetSearchDescription(BOOL val)
|
|
|
+{
|
|
|
+ SetProfileLong(_T("SearchDescription"), val);
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::GetSearchDescription()
|
|
|
+{
|
|
|
+ return GetProfileLong(_T("SearchDescription"), 1);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetSearchFullText(BOOL val)
|
|
|
+{
|
|
|
+ SetProfileLong(_T("SearchFullText"), val);
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::GetSearchFullText()
|
|
|
+{
|
|
|
+ return GetProfileLong(_T("SearchFullText"), 0);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetSearchQuickPaste(BOOL val)
|
|
|
+{
|
|
|
+ SetProfileLong(_T("SearchQuickPaste"), val);
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::GetSearchQuickPaste()
|
|
|
+{
|
|
|
+ return GetProfileLong(_T("SearchQuickPaste"), 0);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetSimpleTextSearch(BOOL val)
|
|
|
+{
|
|
|
+ SetProfileLong(_T("SimpleTextSearch"), val);
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::GetSimpleTextSearch()
|
|
|
+{
|
|
|
+ return GetProfileLong(_T("SimpleTextSearch"), 0);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetMoveClipsOnGlobal10(BOOL val)
|
|
|
+{
|
|
|
+ SetProfileLong(_T("MoveClipsOnGlobal10"), val);
|
|
|
+}
|
|
|
+BOOL CGetSetOptions::GetMoveClipsOnGlobal10()
|
|
|
+{
|
|
|
+ return GetProfileLong(_T("MoveClipsOnGlobal10"), 0);
|
|
|
+}
|
|
|
+
|
|
|
+void CGetSetOptions::SetShowScrollBar(BOOL val)
|
|
|
+{
|
|
|
+ m_showScrollBar = val;
|
|
|
+ SetProfileLong(_T("ShowScrollBar"), val);
|
|
|
+}
|
|
|
+
|
|
|
+BOOL CGetSetOptions::GetShowScrollBar()
|
|
|
+{
|
|
|
+ return GetProfileLong(_T("ShowScrollBar"), 0);
|
|
|
}
|