summaryrefslogtreecommitdiff
path: root/protocols/ICQ-WIM/src/userinfo.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'protocols/ICQ-WIM/src/userinfo.cpp')
-rw-r--r--protocols/ICQ-WIM/src/userinfo.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/protocols/ICQ-WIM/src/userinfo.cpp b/protocols/ICQ-WIM/src/userinfo.cpp
index a48b2d0c58..b909c2ea5e 100644
--- a/protocols/ICQ-WIM/src/userinfo.cpp
+++ b/protocols/ICQ-WIM/src/userinfo.cpp
@@ -23,6 +23,7 @@
struct IcqUserInfoDlg : public CUserInfoPageDlg
{
CIcqProto *ppro;
+ HANDLE hEvent = 0;
IcqUserInfoDlg(CIcqProto *_ppro) :
CUserInfoPageDlg(g_plugin, IDD_INFO_ICQ),
@@ -30,6 +31,28 @@ struct IcqUserInfoDlg : public CUserInfoPageDlg
{
}
+ bool OnInitDialog() override
+ {
+ hEvent = HookEventMessage(ME_DB_CONTACT_SETTINGCHANGED, m_hwnd, WM_USER);
+ return true;
+ }
+
+ void OnDestroy() override
+ {
+ UnhookEvent(hEvent);
+ }
+
+ UI_MESSAGE_MAP(IcqUserInfoDlg, CUserInfoPageDlg);
+ UI_MESSAGE(WM_USER, OnSettingChanged);
+ UI_MESSAGE_MAP_END();
+
+ LRESULT OnSettingChanged(UINT, WPARAM hContact, LPARAM)
+ {
+ if (hContact == m_hContact)
+ OnRefresh();
+ return 0;
+ }
+
bool OnRefresh() override
{
SetDlgItemTextW(m_hwnd, IDC_UIN, ppro->GetUserId(m_hContact));