Juan Lang : cryptui: Redraw purposes list based on purpose selection.
Alexandre Julliard
julliard at winehq.org
Fri Dec 19 11:19:23 CST 2008
Module: wine
Branch: master
Commit: a45c2484e08046653ec8cab077f802a574b82114
URL: http://source.winehq.org/git/wine.git/?a=commit;h=a45c2484e08046653ec8cab077f802a574b82114
Author: Juan Lang <juan.lang at 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;
}
More information about the wine-cvs
mailing list