Module: wine Branch: master Commit: a45c2484e08046653ec8cab077f802a574b82114 URL: http://source.winehq.org/git/wine.git/?a=commit;h=a45c2484e08046653ec8cab077...
Author: Juan Lang juan.lang@gmail.com Date: Thu Dec 18 14:02:53 2008 -0800
cryptui: Redraw purposes list based on purpose selection.
---
dlls/cryptui/main.c | 40 +++++++++++++++++++++++++++++++++++++--- 1 files changed, 37 insertions(+), 3 deletions(-)
diff --git a/dlls/cryptui/main.c b/dlls/cryptui/main.c index f5e0a9a..00a0389 100644 --- a/dlls/cryptui/main.c +++ b/dlls/cryptui/main.c @@ -1665,6 +1665,31 @@ static void redraw_states(HWND list, BOOL enabled) } }
+typedef enum { + PurposeEnableAll = 0, + PurposeDisableAll, + PurposeEnableSelected +} PurposeSelection; + +static void select_purposes(HWND hwnd, PurposeSelection selection) +{ + HWND lv = GetDlgItem(hwnd, IDC_CERTIFICATE_USAGES); + + switch (selection) + { + case PurposeEnableAll: + case PurposeDisableAll: + EnableWindow(lv, FALSE); + redraw_states(lv, FALSE); + EnableWindow(GetDlgItem(hwnd, IDC_ADD_PURPOSE), FALSE); + break; + case PurposeEnableSelected: + EnableWindow(lv, TRUE); + redraw_states(lv, TRUE); + EnableWindow(GetDlgItem(hwnd, IDC_ADD_PURPOSE), TRUE); + } +} + extern BOOL WINAPI WTHelperGetKnownUsages(DWORD action, PCCRYPT_OID_INFO **usages);
@@ -1754,8 +1779,7 @@ static void show_cert_usages(HWND hwnd, struct detail_data *data) WTHelperGetKnownUsages(2, &usages); } } - EnableWindow(lv, FALSE); - redraw_states(lv, FALSE); + select_purposes(hwnd, PurposeEnableAll); }
static void set_general_cert_properties(HWND hwnd, struct detail_data *data) @@ -1776,7 +1800,6 @@ static void set_general_cert_properties(HWND hwnd, struct detail_data *data) HeapFree(GetProcessHeap(), 0, str); } show_cert_usages(hwnd, data); - EnableWindow(GetDlgItem(hwnd, IDC_ADD_PURPOSE), FALSE); SendMessageW(GetDlgItem(hwnd, IDC_ENABLE_ALL_PURPOSES), BM_CLICK, 0, 0); }
@@ -1823,6 +1846,17 @@ static LRESULT CALLBACK cert_properties_general_dlg_proc(HWND hwnd, UINT msg, ShowScrollBar(description, SB_VERT, lines > 1); } break; + case BN_CLICKED: + switch (LOWORD(wp)) + { + case IDC_ENABLE_ALL_PURPOSES: + case IDC_DISABLE_ALL_PURPOSES: + case IDC_ENABLE_SELECTED_PURPOSES: + SendMessageW(GetParent(hwnd), PSM_CHANGED, (WPARAM)hwnd, 0); + select_purposes(hwnd, LOWORD(wp) - IDC_ENABLE_ALL_PURPOSES); + break; + } + break; } break; }