#pragma once #include #include "voice_desc.h" #include "Subject.h" class ConfigDatabase : public Subject { public: ConfigDatabase(void); ~ConfigDatabase(void); enum ActiveFlag { ActiveFlag_Online = 1, ActiveFlag_Away, ActiveFlag_Dnd, ActiveFlag_Na, ActiveFlag_Occupied, ActiveFlag_Invisible }; struct act { bool status; bool message; }; typedef std::map ActiveUsersMap; //-------------------------------------------------------------------------- // Description : get/set the voice description //-------------------------------------------------------------------------- VoiceDesc getVoiceDesc() const { return m_voice_desc; } void setVoiceDesc(const VoiceDesc &desc) { m_voice_desc = desc; } //-------------------------------------------------------------------------- // Description : get/set the welcome message //-------------------------------------------------------------------------- const std::wstring & getWelcomeMessage() const { return m_welcome_msg; } void setWelcomeMessage(const std::wstring &msg) { m_welcome_msg = msg; } //-------------------------------------------------------------------------- // Description : get/set an status flags //-------------------------------------------------------------------------- bool getActiveFlag(ActiveFlag flag) const; void setActiveFlag(ActiveFlag flag, bool state); //-------------------------------------------------------------------------- // Description : get/set the user active flag //-------------------------------------------------------------------------- act getActiveUser(MCONTACT user) const; void setActiveUser(MCONTACT user, act state); ActiveUsersMap getActiveUsers() const { return m_active_users; } //-------------------------------------------------------------------------- // Description : load/save the settings from the miranda database //-------------------------------------------------------------------------- void load(); void save(); private: //-------------------------------------------------------------------------- // Description : For some reason this isn't implemented in miranda yet // Just get a string from the db // Parameters : szModule - the entrys' module // szSetting - the entrys' setting // def - default string if entry doesn't exist //-------------------------------------------------------------------------- static std::wstring DBGetContactSettingString(const char *szModule, const char *szSetting, const WCHAR *def); VoiceDesc m_voice_desc; unsigned int m_active_flags; std::wstring m_welcome_msg; //std::string m_welcome_msg; ActiveUsersMap m_active_users; };