#ifndef __E211E4D9_383C_43BE_A787_7EF1D585B90D_SettingsDlg_h__ #define __E211E4D9_383C_43BE_A787_7EF1D585B90D_SettingsDlg_h__ class ICurrencyRatesProvider; class CPopupSettings { public: enum EColourMode { colourDefault, colourUserDefined, }; enum EDelayMode { delayFromPopup, delayCustom, delayPermanent }; public: CPopupSettings(const ICurrencyRatesProvider* pCurrencyRatesProvider); static COLORREF GetDefColourBk(); static COLORREF GetDefColourText(); void InitForContact(MCONTACT hContact); void SaveForContact(MCONTACT hContact)const; EColourMode GetColourMode()const; void SetColourMode(EColourMode nMode); COLORREF GetColourBk()const; void SetColourBk(COLORREF rgb); COLORREF GetColourText()const; void SetColourText(COLORREF rgb); EDelayMode GetDelayMode()const; void SetDelayMode(EDelayMode nMode); WORD GetDelayTimeout()const; void SetDelayTimeout(WORD delay); bool GetHistoryFlag()const; void SetHistoryFlag(bool flag); private: EColourMode m_modeColour; EDelayMode m_modeDelay; COLORREF m_rgbBkg; COLORREF m_rgbText; WORD m_wDelay; bool m_bUseHistory; }; class CAdvProviderSettings { public: CAdvProviderSettings(const ICurrencyRatesProvider* pCurrencyRatesProvider); ~CAdvProviderSettings(); void SaveToDb()const; const ICurrencyRatesProvider* GetProviderPtr()const; WORD GetLogMode()const; void SetLogMode(WORD wMode); tstring GetHistoryFormat()const; void SetHistoryFormat(const tstring& rsFormat); bool GetHistoryOnlyChangedFlag()const; void SetHistoryOnlyChangedFlag(bool bMode); tstring GetLogFileName()const; void SetLogFileName(const tstring& rsFile); tstring GetLogFormat()const; void SetLogFormat(const tstring& rsFormat); bool GetLogOnlyChangedFlag()const; void SetLogOnlyChangedFlag(bool bMode); const tstring& GetPopupFormat() const; void SetPopupFormat(const tstring& val); bool GetShowPopupIfValueChangedFlag() const; void SetShowPopupIfValueChangedFlag(bool val); CPopupSettings* GetPopupSettingsPtr()const; private: const ICurrencyRatesProvider* m_pCurrencyRatesProvider; WORD m_wLogMode; tstring m_sFormatHistory; bool m_bIsOnlyChangedHistory; tstring m_sLogFileName; tstring m_sFormatLogFile; bool m_bIsOnlyChangedLogFile; tstring m_sPopupFormat; bool m_bShowPopupIfValueChanged; mutable CPopupSettings* m_pPopupSettings; }; void ShowSettingsDlg(MCONTACT hContact); bool ShowSettingsDlg(HWND hWndParent, CAdvProviderSettings* pAdvSettings); enum { glfnResolveCurrencyRateName = 0x0001, glfnResolveUserProfile = 0x0002, glfnResolveAll = glfnResolveCurrencyRateName | glfnResolveUserProfile, }; tstring GenerateLogFileName(const tstring& rsLogFilePattern, const tstring& rsCurrencyRateSymbol, int nFlags = glfnResolveAll); tstring GetContactLogFileName(MCONTACT hContact); tstring GetContactName(MCONTACT hContact); #endif //__E211E4D9_383C_43BE_A787_7EF1D585B90D_SettingsDlg_h__