From f2b19e75ca2d8381eb501b7a39c30fc94b796ad4 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Sun, 12 Jun 2022 16:05:08 +0300 Subject: StdUserInfo: custom resizers for the predefined dialogs --- src/core/stduserinfo/src/contactinfo.cpp | 36 ++++++++++++++++++++++++-------- src/core/stduserinfo/src/stdinfo.cpp | 24 +++++++++++++++++++++ 2 files changed, 51 insertions(+), 9 deletions(-) diff --git a/src/core/stduserinfo/src/contactinfo.cpp b/src/core/stduserinfo/src/contactinfo.cpp index df0895005b..475c0d3de0 100644 --- a/src/core/stduserinfo/src/contactinfo.cpp +++ b/src/core/stduserinfo/src/contactinfo.cpp @@ -241,22 +241,15 @@ public: if (hHandCursor == nullptr) hHandCursor = LoadCursor(nullptr, IDC_HAND); - RECT rc; - GetClientRect(m_emails.GetHwnd(), &rc); - rc.right -= GetSystemMetrics(SM_CXVSCROLL); - LVCOLUMN lvc; lvc.mask = LVCF_WIDTH; m_emails.SetExtendedListViewStyleEx(LVS_EX_FULLROWSELECT | LVS_EX_INFOTIP, LVS_EX_FULLROWSELECT | LVS_EX_INFOTIP); m_phones.SetExtendedListViewStyleEx(LVS_EX_FULLROWSELECT | LVS_EX_INFOTIP, LVS_EX_FULLROWSELECT | LVS_EX_INFOTIP); - lvc.cx = rc.right / 4; + lvc.cx = 50; m_emails.InsertColumn(0, &lvc); m_phones.InsertColumn(0, &lvc); - lvc.cx = rc.right - rc.right / 4 - 40; m_emails.InsertColumn(1, &lvc); - lvc.cx = rc.right - rc.right / 4 - 90; m_phones.InsertColumn(1, &lvc); - lvc.cx = 50; m_phones.InsertColumn(2, &lvc); lvc.cx = 20; m_emails.InsertColumn(2, &lvc); @@ -266,6 +259,17 @@ public: return true; } + int Resizer(UTILRESIZECONTROL *urc) override + { + switch (urc->wId) { + case IDC_EMAILS: + case IDC_PHONES: + return RD_ANCHORX_WIDTH | RD_ANCHORY_TOP; + } + + return RD_ANCHORX_LEFT | RD_ANCHORY_TOP; + } + bool OnRefresh() override { if (m_hContact == 0) @@ -524,7 +528,21 @@ public: } } - return CDlgBase::DlgProc(msg, wParam, lParam); + INT_PTR res = CDlgBase::DlgProc(msg, wParam, lParam); + + if (msg == WM_SIZE) { + RECT rc; + GetClientRect(m_emails.GetHwnd(), &rc); + rc.right -= GetSystemMetrics(SM_CXVSCROLL); + + m_emails.SetColumnWidth(0, rc.right / 4); + m_emails.SetColumnWidth(1, rc.right - rc.right / 4 - 40); + + m_phones.SetColumnWidth(0, rc.right / 4); + m_phones.SetColumnWidth(1, rc.right - rc.right / 4 - 90); + } + + return res; } }; diff --git a/src/core/stduserinfo/src/stdinfo.cpp b/src/core/stduserinfo/src/stdinfo.cpp index da987d8039..0a81dd8d3e 100644 --- a/src/core/stduserinfo/src/stdinfo.cpp +++ b/src/core/stduserinfo/src/stdinfo.cpp @@ -386,6 +386,17 @@ public: return true; } + int Resizer(UTILRESIZECONTROL *urc) override + { + switch (urc->wId) { + case IDC_PAST: + case IDC_INTERESTS: + return RD_ANCHORX_WIDTH | RD_ANCHORY_TOP; + } + + return RD_ANCHORX_LEFT | RD_ANCHORY_TOP; + } + bool OnRefresh() override { char *szProto = Proto_GetBaseAccountName(m_hContact); @@ -519,6 +530,19 @@ public: DeleteObject((HFONT)SendDlgItemMessage(m_hwnd, IDC_ABOUT, WM_GETFONT, 0, 0)); } + int Resizer(UTILRESIZECONTROL *urc) override + { + switch (urc->wId) { + case IDC_ABOUT: + return RD_ANCHORX_WIDTH | RD_ANCHORY_TOP; + + case IDC_MYNOTES: + return RD_ANCHORX_WIDTH | RD_ANCHORY_HEIGHT; + } + + return RD_ANCHORX_LEFT | RD_ANCHORY_TOP; + } + bool OnRefresh() override { char *szProto = Proto_GetBaseAccountName(m_hContact); -- cgit v1.2.3