summaryrefslogtreecommitdiffstats
path: root/src/windows
diff options
context:
space:
mode:
authorJeffrey Altman <jaltman@secure-endpoints.com>2007-10-01 05:29:38 +0000
committerJeffrey Altman <jaltman@secure-endpoints.com>2007-10-01 05:29:38 +0000
commit8e0a75a949a75ba5b33016ac096a8791b316c213 (patch)
treea4462c62457738fc1fa9e802ecba3e0a947dd8f4 /src/windows
parent9234b5edeab0d0ef2c3aec2998b1013c1e7fef48 (diff)
downloadkrb5-8e0a75a949a75ba5b33016ac096a8791b316c213.tar.gz
krb5-8e0a75a949a75ba5b33016ac096a8791b316c213.tar.xz
krb5-8e0a75a949a75ba5b33016ac096a8791b316c213.zip
The credentials display in Network Identity Manager colors the
background of identity headings based on the expiration state of the credentials that belong to the identity. This patch changes the behavior to color these headings based on the existence and expiration state of identity credentials. With this change, only identities that have valid identity credentials will appear in green. The same logic is used when drawing the menu items in the "Set default" sub-menu in the notification icon. ticket: 5783 git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@20032 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src/windows')
-rw-r--r--src/windows/identity/ui/credwnd.c33
1 files changed, 19 insertions, 14 deletions
diff --git a/src/windows/identity/ui/credwnd.c b/src/windows/identity/ui/credwnd.c
index 913503f04c..5b275eb1cc 100644
--- a/src/windows/identity/ui/credwnd.c
+++ b/src/windows/identity/ui/credwnd.c
@@ -2498,6 +2498,7 @@ cw_draw_header(HDC hdc,
khui_credwnd_outline * o;
int selected = 0;
khm_int32 idf = 0;
+ khui_credwnd_ident * cwi = NULL;
/* each header consists of a couple of widgets and some text */
/* we need to figure out the background color first */
@@ -2511,6 +2512,7 @@ cw_draw_header(HDC hdc,
khm_handle ident = o->data;
kcdb_identity_get_flags(ident, &idf);
+ cwi = cw_find_ident(tbl, ident);
}
selected = o->flags & KHUI_CW_O_SELECTED;
@@ -2525,7 +2527,8 @@ cw_draw_header(HDC hdc,
hbr = tbl->hb_hdr_bg_crit_s;
else if ((o->flags & CW_EXPSTATE_MASK) == CW_EXPSTATE_WARN)
hbr = tbl->hb_hdr_bg_warn_s;
- else if ((colattr == KCDB_ATTR_ID_NAME) && !(o->flags & KHUI_CW_O_EMPTY))
+ else if ((colattr == KCDB_ATTR_ID_NAME) && !(o->flags & KHUI_CW_O_EMPTY) &&
+ cwi && cwi->id_credcount > 0)
hbr = tbl->hb_hdr_bg_cred_s;
else
hbr = tbl->hb_hdr_bg_s;
@@ -2536,7 +2539,8 @@ cw_draw_header(HDC hdc,
hbr = tbl->hb_hdr_bg_crit;
else if ((o->flags & CW_EXPSTATE_MASK) == CW_EXPSTATE_WARN)
hbr = tbl->hb_hdr_bg_warn;
- else if ((colattr == KCDB_ATTR_ID_NAME) && !(o->flags & KHUI_CW_O_EMPTY))
+ else if ((colattr == KCDB_ATTR_ID_NAME) && !(o->flags & KHUI_CW_O_EMPTY) &&
+ cwi && cwi->id_credcount > 0)
hbr = tbl->hb_hdr_bg_cred;
else
hbr = tbl->hb_hdr_bg;
@@ -2613,7 +2617,8 @@ cw_draw_header(HDC hdc,
} else {
khui_ilist_draw_id(tbl->ilist,
- ((o->flags & KHUI_CW_O_EMPTY)?
+ (((o->flags & KHUI_CW_O_EMPTY) ||
+ cwi == NULL || cwi->id_credcount == 0)?
IDB_ID_DIS_SM:
IDB_ID_SM),
hdc,
@@ -2658,15 +2663,12 @@ cw_draw_header(HDC hdc,
wchar_t typestr[128];
int cx_id;
SIZE size;
- khui_credwnd_ident * cwi;
/* expanded view */
#ifdef DEBUG
assert(colattr == KCDB_ATTR_ID_NAME);
#endif
- cwi = cw_find_ident(tbl, o->data);
-
CopyRect(&tr, r);
tr.bottom -= (tr.bottom - tr.top) / 2; /* drawing two lines of text */
@@ -5791,7 +5793,6 @@ khm_draw_identity_menu_item(HWND hwnd, LPDRAWITEMSTRUCT lpd, khui_action * act)
{
khui_credwnd_tbl * tbl;
khm_handle ident;
- khm_size i;
size_t count = 0;
COLORREF old_clr;
wchar_t * cap;
@@ -5814,10 +5815,14 @@ khm_draw_identity_menu_item(HWND hwnd, LPDRAWITEMSTRUCT lpd, khui_action * act)
assert(cap != NULL);
#endif
- for (i=0; i < tbl->n_idents; i++) {
- if (kcdb_identity_is_equal(tbl->idents[i].ident, ident)) {
- count = tbl->idents[i].credcount;
- break;
+ {
+ khui_credwnd_ident * cwi;
+
+ cwi = cw_find_ident(tbl, ident);
+ if (cwi) {
+ count = cwi->id_credcount;
+ } else {
+ count = 0;
}
}
@@ -5828,16 +5833,16 @@ khm_draw_identity_menu_item(HWND hwnd, LPDRAWITEMSTRUCT lpd, khui_action * act)
if (lpd->itemState & (ODS_HOTLIGHT | ODS_SELECTED)) {
hbr = GetSysColorBrush(COLOR_HIGHLIGHT);
text_clr = GetSysColor(COLOR_HIGHLIGHTTEXT);
- } else if (count == 0) {
- hbr = tbl->hb_hdr_bg;
} else if (expflags == CW_EXPSTATE_EXPIRED) {
hbr = tbl->hb_hdr_bg_exp;
} else if (expflags == CW_EXPSTATE_WARN) {
hbr = tbl->hb_hdr_bg_warn;
} else if (expflags == CW_EXPSTATE_CRITICAL) {
hbr = tbl->hb_hdr_bg_crit;
- } else {
+ } else if (count > 0) {
hbr = tbl->hb_hdr_bg_cred;
+ } else {
+ hbr = tbl->hb_hdr_bg;
}
FillRect(lpd->hDC, &lpd->rcItem, hbr);