Module: wine Branch: master Commit: c33dfc2d41c7f19cb5130130f44d12d764a0d87f URL: http://source.winehq.org/git/wine.git/?a=commit;h=c33dfc2d41c7f19cb5130130f4...
Author: Juan Lang juan.lang@gmail.com Date: Wed Jan 7 17:45:41 2009 -0800
cryptui: Enable/disable controls based on selection in certificate manager dialog.
---
dlls/cryptui/main.c | 32 ++++++++++++++++++++++++++++++-- 1 files changed, 30 insertions(+), 2 deletions(-)
diff --git a/dlls/cryptui/main.c b/dlls/cryptui/main.c index 6383e0c..00f87ca 100644 --- a/dlls/cryptui/main.c +++ b/dlls/cryptui/main.c @@ -767,6 +767,18 @@ static LRESULT CALLBACK cert_mgr_advanced_dlg_proc(HWND hwnd, UINT msg, return 0; }
+static void cert_mgr_clear_cert_selection(HWND hwnd) +{ + WCHAR empty[] = { 0 }; + + EnableWindow(GetDlgItem(hwnd, IDC_MGR_EXPORT), FALSE); + EnableWindow(GetDlgItem(hwnd, IDC_MGR_REMOVE), FALSE); + EnableWindow(GetDlgItem(hwnd, IDC_MGR_VIEW), FALSE); + SendMessageW(GetDlgItem(hwnd, IDC_MGR_PURPOSES), WM_SETTEXT, 0, + (LPARAM)empty); + refresh_store_certs(hwnd); +} + static LRESULT CALLBACK cert_mgr_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, LPARAM lp) { @@ -809,8 +821,24 @@ static LRESULT CALLBACK cert_mgr_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, switch (hdr->code) { case TCN_SELCHANGE: - refresh_store_certs(hwnd); + cert_mgr_clear_cert_selection(hwnd); break; + case LVN_ITEMCHANGED: + { + NMITEMACTIVATE *nm; + HWND lv = GetDlgItem(hwnd, IDC_MGR_CERTS); + + nm = (NMITEMACTIVATE*)lp; + if (nm->uNewState & LVN_ITEMACTIVATE) + { + int numSelected = SendMessageW(lv, LVM_GETSELECTEDCOUNT, 0, 0); + + EnableWindow(GetDlgItem(hwnd, IDC_MGR_EXPORT), numSelected > 0); + EnableWindow(GetDlgItem(hwnd, IDC_MGR_REMOVE), numSelected > 0); + EnableWindow(GetDlgItem(hwnd, IDC_MGR_VIEW), numSelected == 1); + } + break; + } } break; } @@ -818,7 +846,7 @@ static LRESULT CALLBACK cert_mgr_dlg_proc(HWND hwnd, UINT msg, WPARAM wp, switch (wp) { case ((CBN_SELCHANGE << 16) | IDC_MGR_PURPOSE_SELECTION): - refresh_store_certs(hwnd); + cert_mgr_clear_cert_selection(hwnd); break; case IDC_MGR_ADVANCED: if (DialogBoxW(hInstance, MAKEINTRESOURCEW(IDD_CERT_MGR_ADVANCED),