From: Tom Yu Date: Fri, 28 Sep 2007 23:36:43 +0000 (+0000) Subject: pull up r19855 from trunk X-Git-Tag: krb5-1.6.3-beta2~75 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=3f127ed3303fe5aceb1aa950869f2a58f0fdde2c;p=krb5.git pull up r19855 from trunk r19855@cathode-dark-space: jaltman | 2007-08-24 10:28:21 -0400 ticket: new subject: NIM: Color Schemas component: windows The default color scheme used by the Network Identity Manager credentials display can sometimes cause the text to be difficult to read. In addition, since some of the colors are derived from colors used by the current Windows theme, the selection, window background and text colors may be mismatched with the colors that are hardcoded into the application. To rememdy this problem, this patch defines a new set of colors that will be used with the credentials display. The new scheme doesn't use a special color to distinguish the default identity which is already indicated with the text "(Default)" displayed alongside it. Instead the colors are used to denote the remaining lifetime of credentials and identities. Also, the color scheme defines all the colors that it uses instead of deriving some of them from the Windows color scheme. All the color information is now kept in the Network Identity Manager UI schema. The schema automatically maps to the registry, so users (and deployers) can override the colors by creating the necessary registry keys and values. The registry keys containing color information are: Software\MIT\NetIDMgr\CredWindow\Themes and Software\MIT\NetIDMgr\CredWindow\Themes\Default The "Default" key contains the default color scheme. The color value names are defined in ui\uiconfig.csv under Themes\_Schema configuration subspace. Each color is represented by a 32-bit number. The low-order 24 bits contain a COLORREF value. The high-order 8 bits contain an alpha value which, if non-zero, will be used to blend the color with the selection color (color value named ClrSelection). ticket: 5676 version_fixed: 1.6.3 git-svn-id: svn://anonsvn.mit.edu/krb5/branches/krb5-1-6@19990 dc483132-0cff-0310-8789-dd5450dbe970 --- diff --git a/src/windows/identity/ui/credwnd.c b/src/windows/identity/ui/credwnd.c index acbd46e67..b8d159ac4 100644 --- a/src/windows/identity/ui/credwnd.c +++ b/src/windows/identity/ui/credwnd.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2005 Massachusetts Institute of Technology + * Copyright (c) 2007 Secure Endpoints Inc. * * Permission is hereby granted, free of charge, to any person * obtaining a copy of this software and associated documentation @@ -435,6 +435,24 @@ cw_mix_colors(COLORREF c1, COLORREF c2, int alpha) { return RGB(r,g,b); } +static COLORREF +cw_get_theme_color(khm_handle hc, const wchar_t * name, COLORREF ref_color) { + khm_int32 t; + COLORREF c; + int alpha; + + if (KHM_FAILED(khc_read_int32(hc, name, &t))) { +#ifdef DEBUG + assert(FALSE); +#endif + return ref_color; + } + + alpha = ((t >> 24) & 0xff); + c = (COLORREF) (t & 0xffffff); + return cw_mix_colors(ref_color, c, alpha); +} + void cw_load_view(khui_credwnd_tbl * tbl, wchar_t * view, HWND hwnd) { khm_handle hc_cw = NULL; @@ -649,8 +667,6 @@ _skip_col: tbl->flags |= KHUI_CW_TBL_INITIALIZED | KHUI_CW_TBL_COL_DIRTY | KHUI_CW_TBL_ACTIVE; - /*TODO: the graphics objects should be customizable */ - hdc = GetWindowDC(hwnd); khm_get_cw_element_font(hdc, L"FontHeader", FALSE, &log_font); @@ -680,24 +696,64 @@ _skip_col: LR_DEFAULTCOLOR)); { + #define SEL_ALPHA 50 - COLORREF bg_s = GetSysColor(COLOR_HIGHLIGHT); - COLORREF bg_normal = GetSysColor(COLOR_WINDOW); - COLORREF bg_gray = RGB(240,240,240); - COLORREF bg_hdr = RGB(240,240,240); - COLORREF bg_hdr_warn = RGB(235,235,134); - COLORREF bg_hdr_crit = RGB(235,184,134); - COLORREF bg_hdr_exp = RGB(235,134,134); - COLORREF bg_hdr_def = GetSysColor(COLOR_WINDOW); - - tbl->cr_normal = GetSysColor(COLOR_WINDOWTEXT); - tbl->cr_s = GetSysColor(COLOR_WINDOWTEXT); - tbl->cr_hdr_outline = RGB(0,0,0); - tbl->cr_hdr_normal = GetSysColor(COLOR_WINDOWTEXT); - tbl->cr_hdr_s = GetSysColor(COLOR_WINDOWTEXT); - tbl->cr_hdr_gray = GetSysColor(COLOR_GRAYTEXT); - tbl->cr_hdr_gray_s = GetSysColor(COLOR_HIGHLIGHTTEXT); + khm_handle hc_themes = NULL; + khm_handle hc_theme = NULL; + + COLORREF bg_s; + COLORREF bg_normal; + COLORREF bg_gray; + COLORREF bg_hdr; + COLORREF bg_hdr_cred; + COLORREF bg_hdr_warn; + COLORREF bg_hdr_crit; + COLORREF bg_hdr_exp; + + COLORREF bg_hdr_s; + COLORREF bg_hdr_cred_s; + COLORREF bg_hdr_warn_s; + COLORREF bg_hdr_crit_s; + COLORREF bg_hdr_exp_s; + + cbsize = sizeof(buf); + if (KHM_SUCCEEDED(khc_read_string(hc_cw, L"DefaultTheme", buf, &cbsize)) && + KHM_SUCCEEDED(khc_open_space(hc_cw, L"Themes", KHM_PERM_READ, &hc_themes)) && + KHM_SUCCEEDED(khc_open_space(hc_themes, buf, KHM_PERM_READ, &hc_theme))) { + + bg_s = cw_get_theme_color(hc_theme, L"ClrSelection", 0); + bg_normal = cw_get_theme_color(hc_theme, L"ClrBackground", 0); + bg_gray = cw_get_theme_color(hc_theme, L"ClrGray", 0); + bg_hdr = cw_get_theme_color(hc_theme, L"ClrHeader", 0); + bg_hdr_cred = cw_get_theme_color(hc_theme, L"ClrHeaderCred", 0); + bg_hdr_warn = cw_get_theme_color(hc_theme, L"ClrHeaderWarn", 0); + bg_hdr_crit = cw_get_theme_color(hc_theme, L"ClrHeaderCrit", 0); + bg_hdr_exp = cw_get_theme_color(hc_theme, L"ClrHeaderExp", 0); + bg_hdr_s = cw_get_theme_color(hc_theme, L"ClrHeaderSel", bg_s); + bg_hdr_cred_s = cw_get_theme_color(hc_theme, L"ClrHeaderCredSel", bg_s); + bg_hdr_warn_s = cw_get_theme_color(hc_theme, L"ClrHeaderWarnSel", bg_s); + bg_hdr_crit_s = cw_get_theme_color(hc_theme, L"ClrHeaderCritSel", bg_s); + bg_hdr_exp_s = cw_get_theme_color(hc_theme, L"ClrHeaderExpSel", bg_s); + + tbl->cr_normal = cw_get_theme_color(hc_theme, L"ClrText", 0); + tbl->cr_s = cw_get_theme_color(hc_theme, L"ClrTextSel", bg_s); + tbl->cr_hdr_outline = cw_get_theme_color(hc_theme, L"ClrHeaderOutline", 0); + tbl->cr_hdr_normal = cw_get_theme_color(hc_theme, L"ClrTextHeader", 0); + tbl->cr_hdr_s = cw_get_theme_color(hc_theme, L"ClrTextHeaderSel", bg_s); + tbl->cr_hdr_gray = cw_get_theme_color(hc_theme, L"ClrTextHeaderGray", 0); + tbl->cr_hdr_gray_s = cw_get_theme_color(hc_theme, L"ClrTextHeaderGraySel", bg_s); + } else { +#ifdef DEBUG + assert(FALSE); +#endif + } + + if (hc_theme) + khc_close_space(hc_theme); + if (hc_themes) + khc_close_space(hc_themes); + hc_theme = hc_themes = NULL; if (khm_main_wnd_mode == KHM_MAIN_WND_MINI) { bg_hdr = bg_normal; @@ -709,16 +765,16 @@ _skip_col: tbl->hb_s = CreateSolidBrush(cw_mix_colors(bg_s, bg_normal, SEL_ALPHA)); tbl->hb_hdr_bg = CreateSolidBrush(bg_hdr); + tbl->hb_hdr_bg_cred = CreateSolidBrush(bg_hdr_cred); tbl->hb_hdr_bg_warn = CreateSolidBrush(bg_hdr_warn); tbl->hb_hdr_bg_crit = CreateSolidBrush(bg_hdr_crit); tbl->hb_hdr_bg_exp = CreateSolidBrush(bg_hdr_exp); - tbl->hb_hdr_bg_def = CreateSolidBrush(bg_hdr_def); - tbl->hb_hdr_bg_s = CreateSolidBrush(cw_mix_colors(bg_s, bg_hdr, SEL_ALPHA)); - tbl->hb_hdr_bg_warn_s = CreateSolidBrush(cw_mix_colors(bg_s, bg_hdr_warn, SEL_ALPHA)); - tbl->hb_hdr_bg_crit_s = CreateSolidBrush(cw_mix_colors(bg_s, bg_hdr_crit, SEL_ALPHA)); - tbl->hb_hdr_bg_exp_s = CreateSolidBrush(cw_mix_colors(bg_s, bg_hdr_exp, SEL_ALPHA)); - tbl->hb_hdr_bg_def_s = CreateSolidBrush(cw_mix_colors(bg_s, bg_hdr_def, SEL_ALPHA)); + tbl->hb_hdr_bg_s = CreateSolidBrush(bg_s); + tbl->hb_hdr_bg_cred_s = CreateSolidBrush(bg_hdr_cred_s); + tbl->hb_hdr_bg_warn_s = CreateSolidBrush(bg_hdr_warn_s); + tbl->hb_hdr_bg_crit_s = CreateSolidBrush(bg_hdr_crit_s); + tbl->hb_hdr_bg_exp_s = CreateSolidBrush(bg_hdr_exp_s); } tbl->ilist = khui_create_ilist(KHUI_SMICON_CX, KHUI_SMICON_CY-1, 20, 8, 0); @@ -1887,13 +1943,13 @@ cw_unload_view(khui_credwnd_tbl * tbl) SafeDeleteObject(tbl->hb_hdr_bg_crit); SafeDeleteObject(tbl->hb_hdr_bg_exp); SafeDeleteObject(tbl->hb_hdr_bg_warn); - SafeDeleteObject(tbl->hb_hdr_bg_def); + SafeDeleteObject(tbl->hb_hdr_bg_cred); SafeDeleteObject(tbl->hb_hdr_bg_s); SafeDeleteObject(tbl->hb_hdr_bg_crit_s); SafeDeleteObject(tbl->hb_hdr_bg_exp_s); SafeDeleteObject(tbl->hb_hdr_bg_warn_s); - SafeDeleteObject(tbl->hb_hdr_bg_def_s); + SafeDeleteObject(tbl->hb_hdr_bg_cred_s); #undef SafeDeleteObject @@ -2363,8 +2419,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 (idf & KCDB_IDENT_FLAG_DEFAULT) - hbr = tbl->hb_hdr_bg_def_s; + else if ((colattr == KCDB_ATTR_ID_NAME) && !(o->flags & KHUI_CW_O_EMPTY)) + hbr = tbl->hb_hdr_bg_cred_s; else hbr = tbl->hb_hdr_bg_s; } else { @@ -2374,8 +2430,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 (idf & KCDB_IDENT_FLAG_DEFAULT) - hbr = tbl->hb_hdr_bg_def; + else if ((colattr == KCDB_ATTR_ID_NAME) && !(o->flags & KHUI_CW_O_EMPTY)) + hbr = tbl->hb_hdr_bg_cred; else hbr = tbl->hb_hdr_bg; } @@ -2550,9 +2606,9 @@ cw_draw_header(HDC hdc, tr.left = max(tr.right - cx_str, tr.left + cx_id + KHUI_SMICON_CX * 2); if (selected) - SetTextColor(hdc, tbl->cr_hdr_gray_s); + SetTextColor(hdc, tbl->cr_hdr_s); else - SetTextColor(hdc, tbl->cr_hdr_gray); + SetTextColor(hdc, tbl->cr_hdr_normal); DrawText(hdc, typestr, len, &tr, DT_LEFT | DT_VCENTER | DT_SINGLELINE | DT_END_ELLIPSIS); } @@ -2609,9 +2665,9 @@ cw_draw_header(HDC hdc, len = (int) wcslen(buf); if (selected) - SetTextColor(hdc, tbl->cr_hdr_gray_s); + SetTextColor(hdc, tbl->cr_hdr_s); else - SetTextColor(hdc, tbl->cr_hdr_gray); + SetTextColor(hdc, tbl->cr_hdr_normal); DrawText(hdc, buf, len, &tr, DT_LEFT | DT_VCENTER | DT_SINGLELINE | DT_END_ELLIPSIS); } } diff --git a/src/windows/identity/ui/credwnd.h b/src/windows/identity/ui/credwnd.h index 47f8a745e..f47f62f65 100644 --- a/src/windows/identity/ui/credwnd.h +++ b/src/windows/identity/ui/credwnd.h @@ -198,16 +198,16 @@ typedef struct khui_credwnd_tbl_t { HBRUSH hb_s; /* normal background brush (selected) */ HBRUSH hb_hdr_bg; /* header background brush (normal) */ + HBRUSH hb_hdr_bg_cred; /* header background brush (valid creds) */ HBRUSH hb_hdr_bg_exp; /* header background brush (expired) */ HBRUSH hb_hdr_bg_warn; /* header background brush (warn) */ HBRUSH hb_hdr_bg_crit; /* header background brush (critical) */ - HBRUSH hb_hdr_bg_def; /* header background brush (default) */ HBRUSH hb_hdr_bg_s; /* header background brush (selected) */ + HBRUSH hb_hdr_bg_cred_s;/* header background brush (valid creds) */ HBRUSH hb_hdr_bg_exp_s; /* header background brush (expired,selected) */ HBRUSH hb_hdr_bg_warn_s;/* header background brush (warn,selected) */ HBRUSH hb_hdr_bg_crit_s;/* header background brush (critical,selected) */ - HBRUSH hb_hdr_bg_def_s; /* header background brush (default,selected) */ COLORREF cr_normal; /* text color (normal) */ COLORREF cr_s; /* text color (selected) */ diff --git a/src/windows/identity/ui/uiconfig.csv b/src/windows/identity/ui/uiconfig.csv index 0c76dc065..6fb931dfd 100644 --- a/src/windows/identity/ui/uiconfig.csv +++ b/src/windows/identity/ui/uiconfig.csv @@ -1,211 +1,272 @@ -Name,Type,Value,Description -CredWindow,KC_SPACE,0,"Options for the credentials window as well as the Network Identity Manager application." - AutoInit,KC_INT32,0,"Boolean. Prompt for new credentials if no credentials are present during startup." - AutoStart,KC_INT32,0,"[PRIVATE] Boolean. Start Network Identity Manager automatically when the current user logs in." - AutoImport,KC_INT32,1,"Boolean. Import credentials from the LSA cache when Network Identity Manager starts." - AutoDetectNet,KC_INT32,1,"Boolean. Automatically detect network connectivity changes." - HideWatermark,KC_INT32,0,"Boolean. Suppress watermark in Credentials display. NOTE: there is no guarantee that this value will exist in future versions." - KeepRunning,KC_INT32,1,"Boolean. Run from the system notification area after the main window is closed." - DefaultView,KC_STRING,ByIdentity,"[PRIVATE] Name of the default view in Advanced mode." - DefaultViewMini,KC_STRING,CompactIdentity,"[PRIVATE] Name of the default view in Basic mode." - PaddingHorizontal,KC_INT32,4,"[PRIVATE]" - PaddingVertical,KC_INT32,2,"[PRIVATE]" - PaddingHeader,KC_INT32,16,"[PRIVATE]" - Monitor,KC_INT32,1,"Boolean. Monitor credentials for expiration and renewal." - DefaultMonitor,KC_INT32,1,"Boolean. This is the default Monitor value that is assigned for new identities." - RefreshTimeout,KC_INT32,60,"Number of seconds between credentials window refreshes. The credentials window automatically triggers a refresh operation. This value specifies the number of seconds that must elapse between two refreshes. During the refresh, all the credentials provider plug-ins will need to re-enumerate their respective credentials." - WarnThreshold,KC_INT32,900,In seconds - AllowWarn,KC_INT32,1,"Boolean. Enables warning." - CriticalThreshold,KC_INT32,300,In seconds - AllowCritical,KC_INT32,1,Boolean. Enables critical. - AutoRenewThreshold,KC_INT32,600,In seconds - AllowAutoRenew,KC_INT32,1,Boolean. - RenewAtHalfLife,KC_INT32,1,Boolean. Use half-life algorithm for renewals. - DefaultAllowAutoRenew,KC_INT32,1,Default AllowAutoRenew value for new identities - DefaultSticky,KC_INT32,0,Default Sticky value for new identities - MaxThreshold,KC_INT32,86400,Max value for a threshold (1 day) - MinThreshold,KC_INT32,10,Min value for a threshold (0) - LogToFile,KC_INT32,0,Boolean. If true logs trace events to a nidmdbg.log in the temp folder - DestroyCredsOnExit,KC_INT32,0,Boolean. If true; all credentials will be destroyed when NetIDMgr exits. - NotificationAction,KC_INT32,50025,Action to perform when the user clicks on the notification icon. - DefaultWindowMode,KC_INT32,1,(0-normal; 1-mini) - Windows,KC_SPACE,0,Window parameters - _Schema,KC_SPACE,0,Schema - Width,KC_INT32,0, - Height,KC_INT32,0, - XPos,KC_INT32,0, - YPos,KC_INT32,0, - Dock,KC_INT32,0,Dock on window corner (0-none; 1-top left; 2-top right; 3-bottom right; 4-bottom left) - _Schema,KC_ENDSPACE,0, - Main,KC_SPACE,0,Main window - Main,KC_ENDSPACE,0, - MainMini,KC_SPACE,0,Main window (mini mode) - Width,KC_INT32,470, - Height,KC_INT32,500, - Dock,KC_INT32,3, - MainMini,KC_ENDSPACE,0, - NewCred,KC_SPACE,0,New credentials window - ForceToTop,KC_INT32,1,Force new creds window to the top - AnimateSizeChanges,KC_INT32,1,Animate the new creds window when the size needs changing. - AnimationSteps,KC_INT32,7,Number of steps in size-change animation - AnimationStepTimeout,KC_INT32,40,Number of milliseconds to wait between each step of the size-change animation - NewCred,KC_ENDSPACE,0, - Windows,KC_ENDSPACE,0, - Views,KC_SPACE,0,Preconfigured views for credentials - Custom_0,KC_SPACE,0,First custom view. Additional views have names of the form Custom_N - Description,KC_STRING,Custom view, - ColumnList,KC_STRING,"_CWFlags,IdentityName,TypeName,Name,TimeLeft", - Columns,KC_SPACE,0,Columns - _CWFlags,KC_SPACE,0, - Width,KC_INT32,20, - Flags,KC_INT32,112, - _CWFlags,KC_ENDSPACE,0, - IdentityName,KC_SPACE,0, - Width,KC_INT32,100, - SortIndex,KC_INT32,0, - Flags,KC_INT32,11, - IdentityName,KC_ENDSPACE,0 - TypeName,KC_SPACE,0 - Width,KC_INT32,100 - SortIndex,KC_INT32,1 - Flags,KC_INT32,11 - TypeName,KC_ENDSPACE,0 - Name,KC_SPACE,0 - Width,KC_INT32,200 - SortIndex,KC_INT32,2 - Flags,KC_INT32,3 - Name,KC_ENDSPACE,0 - TimeLeft,KC_SPACE,0 - Width,KC_INT32,200 - Flags,KC_INT32,1 - TimeLeft,KC_ENDSPACE,0 - Columns,KC_ENDSPACE,0 - Custom_0,KC_ENDSPACE,0, - ByIdentity,KC_SPACE,0,The default view - Description,KC_STRING,View grouped by identity and credential type, - ColumnList,KC_STRING,"_CWFlags,IdentityName,TypeName,Location,Name,TimeLeft", - Columns,KC_SPACE,0,Columns - _CWFlags,KC_SPACE,0, - Width,KC_INT32,20, - Flags,KC_INT32,112, - _CWFlags,KC_ENDSPACE,0, - IdentityName,KC_SPACE,0, - Width,KC_INT32,100, - SortIndex,KC_INT32,0, - Flags,KC_INT32,11, - IdentityName,KC_ENDSPACE,0 - TypeName,KC_SPACE,0 - Width,KC_INT32,100 - SortIndex,KC_INT32,1 - Flags,KC_INT32,11 - TypeName,KC_ENDSPACE,0 - Location,KC_SPACE,0, - Width,KC_INT32,50 - SortIndex,KC_INT32,2 - Flags,KC_INT32,11 - Location,KC_ENDSPACE,0, - Name,KC_SPACE,0 - Width,KC_INT32,200 - SortIndex,KC_INT32,3 - Flags,KC_INT32,3 - Name,KC_ENDSPACE,0 - TimeLeft,KC_SPACE,0 - Width,KC_INT32,200 - Flags,KC_INT32,1 - TimeLeft,KC_ENDSPACE,0 - Columns,KC_ENDSPACE,0 - ByIdentity,KC_ENDSPACE,0 - ByType,KC_SPACE,0,The default view - Description,KC_STRING,View grouped by type and identity, - ColumnList,KC_STRING,"_CWFlags,TypeName,IdentityName,Name,TimeLeft", - Columns,KC_SPACE,0,Columns - _CWFlags,KC_SPACE,0, - Width,KC_INT32,20, - Flags,KC_INT32,112, - _CWFlags,KC_ENDSPACE,0, - TypeName,KC_SPACE,0 - Width,KC_INT32,100 - SortIndex,KC_INT32,0 - Flags,KC_INT32,11 - TypeName,KC_ENDSPACE,0 - IdentityName,KC_SPACE,0, - Width,KC_INT32,100, - SortIndex,KC_INT32,1, - Flags,KC_INT32,11, - IdentityName,KC_ENDSPACE,0 - Name,KC_SPACE,0 - Width,KC_INT32,200 - SortIndex,KC_INT32,2 - Flags,KC_INT32,3 - Name,KC_ENDSPACE,0 - TimeLeft,KC_SPACE,0 - Width,KC_INT32,200 - Flags,KC_INT32,1 - TimeLeft,KC_ENDSPACE,0 - Columns,KC_ENDSPACE,0 - ByType,KC_ENDSPACE,0 - ByLocation,KC_SPACE,0,View by location - Description,KC_STRING,View grouped by location, - ColumnList,KC_STRING,"_CWFlags,Location,IdentityName,TypeName,Name,TimeLeft", - Columns,KC_SPACE,0,Columns - _CWFlags,KC_SPACE,0, - Width,KC_INT32,20, - Flags,KC_INT32,112, - _CWFlags,KC_ENDSPACE,0, - Location,KC_SPACE,0, - Width,KC_INT32,100, - SortIndex,KC_INT32,0, - Flags,KC_INT32,11, - Location,KC_ENDSPACE,0, - IdentityName,KC_SPACE,0, - Width,KC_INT32,100, - SortIndex,KC_INT32,1, - Flags,KC_INT32,11, - IdentityName,KC_ENDSPACE,0 - TypeName,KC_SPACE,0 - Width,KC_INT32,100 - SortIndex,KC_INT32,2 - Flags,KC_INT32,11 - TypeName,KC_ENDSPACE,0 - Name,KC_SPACE,0 - Width,KC_INT32,200 - SortIndex,KC_INT32,3 - Flags,KC_INT32,3 - Name,KC_ENDSPACE,0 - TimeLeft,KC_SPACE,0 - Width,KC_INT32,200 - Flags,KC_INT32,1 - TimeLeft,KC_ENDSPACE,0 - Columns,KC_ENDSPACE,0 - ByLocation,KC_ENDSPACE,0 - CompactIdentity,KC_SPACE,0,Default Compact View by Identity - Description,KC_STRING,Compact view of identities - ColumnList,KC_STRING,"IdentityName", - ExpandedIdentity,KC_INT32,1,Use expanded display of identity headers - NoHeader,KC_INT32,1,Suppress the column header - Columns,KC_SPACE,0, - IdentityName,KC_SPACE,0, - Width,KC_INT32,415, - SortIndex,KC_INT32,0, - Flags,KC_INT32,171 - IdentityName,KC_ENDSPACE,0, - Columns,KC_ENDSPACE,0, - CompactIdentity,KC_ENDSPACE,0 - Custom_1,KC_SPACE,0,Default Compact View by Identity - Description,KC_STRING,Compact view of identities - ColumnList,KC_STRING,"IdentityName", - ExpandedIdentity,KC_INT32,1,Use expanded display of identity headers - NoHeader,KC_INT32,1,Suppress the column header - Columns,KC_SPACE,0, - IdentityName,KC_SPACE,0, - Width,KC_INT32,415, - SortIndex,KC_INT32,0, - Flags,KC_INT32,171 - IdentityName,KC_ENDSPACE,0, - Columns,KC_ENDSPACE,0, - Custom_1,KC_ENDSPACE,0 - Views,KC_ENDSPACE,0 - Notices,KC_SPACE,0,Notices and alerts - MinimizeWarning,KC_INT32,1,Show the minimize warning? - Notices,KC_ENDSPACE,0 -CredWindow,KC_ENDSPACE,0 +#@#include +#@#define RGBA(r,g,b,a) ((((DWORD) ((a) & 0xff)) << 24) | RGB(r,g,b)) +Name,Type,Value,Description +CredWindow,KC_SPACE,0,"Options for the credentials window as well as the Network Identity Manager application." + AutoInit,KC_INT32,0,"Boolean. Prompt for new credentials if no credentials are present during startup." + AutoStart,KC_INT32,0,"[PRIVATE] Boolean. Start Network Identity Manager automatically when the current user logs in." + AutoImport,KC_INT32,1,"Boolean. Import credentials from the LSA cache when Network Identity Manager starts." + AutoDetectNet,KC_INT32,1,"Boolean. Automatically detect network connectivity changes." + HideWatermark,KC_INT32,0,"Boolean. Suppress watermark in Credentials display. NOTE: there is no guarantee that this value will exist in future versions." + KeepRunning,KC_INT32,1,"Boolean. Run from the system notification area after the main window is closed." + DefaultView,KC_STRING,ByIdentity,"[PRIVATE] Name of the default view in Advanced mode." + DefaultViewMini,KC_STRING,CompactIdentity,"[PRIVATE] Name of the default view in Basic mode." + PaddingHorizontal,KC_INT32,4,"[PRIVATE]" + PaddingVertical,KC_INT32,2,"[PRIVATE]" + PaddingHeader,KC_INT32,16,"[PRIVATE]" + Monitor,KC_INT32,1,"Boolean. Monitor credentials for expiration and renewal." + DefaultMonitor,KC_INT32,1,"Boolean. This is the default Monitor value that is assigned for new identities." + RefreshTimeout,KC_INT32,60,"Number of seconds between credentials window refreshes. The credentials window automatically triggers a refresh operation. This value specifies the number of seconds that must elapse between two refreshes. During the refresh, all the credentials provider plug-ins will need to re-enumerate their respective credentials." + WarnThreshold,KC_INT32,900,In seconds + AllowWarn,KC_INT32,1,"Boolean. Enables warning." + CriticalThreshold,KC_INT32,300,In seconds + AllowCritical,KC_INT32,1,Boolean. Enables critical. + AutoRenewThreshold,KC_INT32,600,In seconds + AllowAutoRenew,KC_INT32,1,Boolean. + RenewAtHalfLife,KC_INT32,1,Boolean. Use half-life algorithm for renewals. + DefaultAllowAutoRenew,KC_INT32,1,Default AllowAutoRenew value for new identities + DefaultSticky,KC_INT32,0,Default Sticky value for new identities + MaxThreshold,KC_INT32,86400,Max value for a threshold (1 day) + MinThreshold,KC_INT32,10,Min value for a threshold (0) + LogToFile,KC_INT32,0,Boolean. If true logs trace events to a nidmdbg.log in the temp folder + DestroyCredsOnExit,KC_INT32,0,Boolean. If true; all credentials will be destroyed when NetIDMgr exits. + NotificationAction,KC_INT32,50025,Action to perform when the user clicks on the notification icon. + DefaultWindowMode,KC_INT32,1,(0-normal; 1-mini) + DefaultTheme,KC_STRING,Default,Default theme. The name should correspond to a subspace in Themes + Windows,KC_SPACE,0,Window parameters + _Schema,KC_SPACE,0,Schema + Width,KC_INT32,0, + Height,KC_INT32,0, + XPos,KC_INT32,0, + YPos,KC_INT32,0, + Dock,KC_INT32,0,Dock on window corner (0-none; 1-top left; 2-top right; 3-bottom right; 4-bottom left) + _Schema,KC_ENDSPACE,0, + Main,KC_SPACE,0,Main window + Main,KC_ENDSPACE,0, + MainMini,KC_SPACE,0,Main window (mini mode) + Width,KC_INT32,470, + Height,KC_INT32,500, + Dock,KC_INT32,3, + MainMini,KC_ENDSPACE,0, + NewCred,KC_SPACE,0,New credentials window + ForceToTop,KC_INT32,1,Force new creds window to the top + AnimateSizeChanges,KC_INT32,1,Animate the new creds window when the size needs changing. + AnimationSteps,KC_INT32,7,Number of steps in size-change animation + AnimationStepTimeout,KC_INT32,40,Number of milliseconds to wait between each step of the size-change animation + NewCred,KC_ENDSPACE,0, + Windows,KC_ENDSPACE,0, + Views,KC_SPACE,0,Preconfigured views for credentials + _Schema,KC_SPACE,0,Schema for view definitions + Description,KC_STRING,"",Description of the view + ColumnList,KC_STRING,"","List of columns for the view, in order" + _AppVersion,KC_BINARY,0,Binary version stamp + Columns,KC_SPACE,0,"Column definitions. Each column name should have a corresponding subspace here. The name of the column should be a property or field name, unless it is a pseudo column like _CWFlags." + _Schema,KC_SPACE,0,Column definition schema + Width,KC_INT32,0,Width of the column + SortIndex,KC_INT32,0,Sort index + Flags,KC_INT32,0,Flags (See KHUI_CW_COL_* values) + _Schema,KC_ENDSPACE,0 + Columns,KC_ENDSPACE,0 + _Schema,KC_ENDSPACE,0, + Custom_0,KC_SPACE,0,First custom view. Additional views have names of the form Custom_N + Description,KC_STRING,Custom view, + ColumnList,KC_STRING,"_CWFlags,IdentityName,TypeName,Name,TimeLeft", + Columns,KC_SPACE,0,Columns + _CWFlags,KC_SPACE,0, + Width,KC_INT32,20, + Flags,KC_INT32,112, + _CWFlags,KC_ENDSPACE,0, + IdentityName,KC_SPACE,0, + Width,KC_INT32,100, + SortIndex,KC_INT32,0, + Flags,KC_INT32,11, + IdentityName,KC_ENDSPACE,0 + TypeName,KC_SPACE,0 + Width,KC_INT32,100 + SortIndex,KC_INT32,1 + Flags,KC_INT32,11 + TypeName,KC_ENDSPACE,0 + Name,KC_SPACE,0 + Width,KC_INT32,200 + SortIndex,KC_INT32,2 + Flags,KC_INT32,3 + Name,KC_ENDSPACE,0 + TimeLeft,KC_SPACE,0 + Width,KC_INT32,200 + Flags,KC_INT32,1 + TimeLeft,KC_ENDSPACE,0 + Columns,KC_ENDSPACE,0 + Custom_0,KC_ENDSPACE,0, + ByIdentity,KC_SPACE,0,The default view + Description,KC_STRING,View grouped by identity and credential type, + ColumnList,KC_STRING,"_CWFlags,IdentityName,TypeName,Location,Name,TimeLeft", + Columns,KC_SPACE,0,Columns + _CWFlags,KC_SPACE,0, + Width,KC_INT32,20, + Flags,KC_INT32,112, + _CWFlags,KC_ENDSPACE,0, + IdentityName,KC_SPACE,0, + Width,KC_INT32,100, + SortIndex,KC_INT32,0, + Flags,KC_INT32,11, + IdentityName,KC_ENDSPACE,0 + TypeName,KC_SPACE,0 + Width,KC_INT32,100 + SortIndex,KC_INT32,1 + Flags,KC_INT32,11 + TypeName,KC_ENDSPACE,0 + Location,KC_SPACE,0, + Width,KC_INT32,50 + SortIndex,KC_INT32,2 + Flags,KC_INT32,11 + Location,KC_ENDSPACE,0, + Name,KC_SPACE,0 + Width,KC_INT32,200 + SortIndex,KC_INT32,3 + Flags,KC_INT32,3 + Name,KC_ENDSPACE,0 + TimeLeft,KC_SPACE,0 + Width,KC_INT32,200 + Flags,KC_INT32,1 + TimeLeft,KC_ENDSPACE,0 + Columns,KC_ENDSPACE,0 + ByIdentity,KC_ENDSPACE,0 + ByType,KC_SPACE,0,The default view + Description,KC_STRING,View grouped by type and identity, + ColumnList,KC_STRING,"_CWFlags,TypeName,IdentityName,Name,TimeLeft", + Columns,KC_SPACE,0,Columns + _CWFlags,KC_SPACE,0, + Width,KC_INT32,20, + Flags,KC_INT32,112, + _CWFlags,KC_ENDSPACE,0, + TypeName,KC_SPACE,0 + Width,KC_INT32,100 + SortIndex,KC_INT32,0 + Flags,KC_INT32,11 + TypeName,KC_ENDSPACE,0 + IdentityName,KC_SPACE,0, + Width,KC_INT32,100, + SortIndex,KC_INT32,1, + Flags,KC_INT32,11, + IdentityName,KC_ENDSPACE,0 + Name,KC_SPACE,0 + Width,KC_INT32,200 + SortIndex,KC_INT32,2 + Flags,KC_INT32,3 + Name,KC_ENDSPACE,0 + TimeLeft,KC_SPACE,0 + Width,KC_INT32,200 + Flags,KC_INT32,1 + TimeLeft,KC_ENDSPACE,0 + Columns,KC_ENDSPACE,0 + ByType,KC_ENDSPACE,0 + ByLocation,KC_SPACE,0,View by location + Description,KC_STRING,View grouped by location, + ColumnList,KC_STRING,"_CWFlags,Location,IdentityName,TypeName,Name,TimeLeft", + Columns,KC_SPACE,0,Columns + _CWFlags,KC_SPACE,0, + Width,KC_INT32,20, + Flags,KC_INT32,112, + _CWFlags,KC_ENDSPACE,0, + Location,KC_SPACE,0, + Width,KC_INT32,100, + SortIndex,KC_INT32,0, + Flags,KC_INT32,11, + Location,KC_ENDSPACE,0, + IdentityName,KC_SPACE,0, + Width,KC_INT32,100, + SortIndex,KC_INT32,1, + Flags,KC_INT32,11, + IdentityName,KC_ENDSPACE,0 + TypeName,KC_SPACE,0 + Width,KC_INT32,100 + SortIndex,KC_INT32,2 + Flags,KC_INT32,11 + TypeName,KC_ENDSPACE,0 + Name,KC_SPACE,0 + Width,KC_INT32,200 + SortIndex,KC_INT32,3 + Flags,KC_INT32,3 + Name,KC_ENDSPACE,0 + TimeLeft,KC_SPACE,0 + Width,KC_INT32,200 + Flags,KC_INT32,1 + TimeLeft,KC_ENDSPACE,0 + Columns,KC_ENDSPACE,0 + ByLocation,KC_ENDSPACE,0 + CompactIdentity,KC_SPACE,0,Default Compact View by Identity + Description,KC_STRING,Compact view of identities + ColumnList,KC_STRING,"IdentityName", + ExpandedIdentity,KC_INT32,1,Use expanded display of identity headers + NoHeader,KC_INT32,1,Suppress the column header + Columns,KC_SPACE,0, + IdentityName,KC_SPACE,0, + Width,KC_INT32,415, + SortIndex,KC_INT32,0, + Flags,KC_INT32,171 + IdentityName,KC_ENDSPACE,0, + Columns,KC_ENDSPACE,0, + CompactIdentity,KC_ENDSPACE,0 + Custom_1,KC_SPACE,0,Default Compact View by Identity + Description,KC_STRING,Compact view of identities + ColumnList,KC_STRING,"IdentityName", + ExpandedIdentity,KC_INT32,1,Use expanded display of identity headers + NoHeader,KC_INT32,1,Suppress the column header + Columns,KC_SPACE,0, + IdentityName,KC_SPACE,0, + Width,KC_INT32,415, + SortIndex,KC_INT32,0, + Flags,KC_INT32,171 + IdentityName,KC_ENDSPACE,0, + Columns,KC_ENDSPACE,0, + Custom_1,KC_ENDSPACE,0 + Views,KC_ENDSPACE,0 + Notices,KC_SPACE,0,Notices and alerts + MinimizeWarning,KC_INT32,1,Show the minimize warning? + Notices,KC_ENDSPACE,0 + Themes,KC_SPACE,0,Color schemes for the credentials display + _Schema,KC_SPACE,0,Schema for color schemes + ClrSelection,KC_INT32,0,"Background (Selection)" + ClrBackground,KC_INT32,0,"Background (Normal)" + ClrGray,KC_INT32,0,"Background (Gray)" + ClrHeader,KC_INT32,0,"Header (Normal)" + ClrHeaderCred,KC_INT32,0,"Header (with credentials)" + ClrHeaderWarn,KC_INT32,0,"Header (Warning)" + ClrHeaderCrit,KC_INT32,0,"Header (Critical)" + ClrHeaderExp,KC_INT32,0,"Header (Expired)" + ClrHeaderSel,KC_INT32,0,"Header (Normal, Selected)" + ClrHeaderCredSel,KC_INT32,0,"Header (with credentials, Selected)" + ClrHeaderWarnSel,KC_INT32,0,"Header (Warning, Selected)" + ClrHeaderCritSel,KC_INT32,0,"Header (Critical, Selected)" + ClrHeaderExpSel,KC_INT32,0,"Header (Expired, Selected)" + ClrHeaderOutline,KC_INT32,0,"Header (Outline color)" + ClrText,KC_INT32,0,"Text (Normal)" + ClrTextSel,KC_INT32,0,"Text (Selected)" + ClrTextHeader,KC_INT32,0,"Text (Header)" + ClrTextHeaderSel,KC_INT32,0,"Text (Header, Selected)" + ClrTextHeaderGray,KC_INT32,0,"Text (Header, Gray)" + ClrTextHeaderGraySel,KC_INT32,0,"Text (Header, Gray, Selected)" + _Schema,KC_ENDSPACE,0, + Default,KC_SPACE,0,Default color scheme + ClrSelection,KC_INT32,"RGB(192,192,192)", + ClrBackground,KC_INT32,"RGB(255,255,255)", + ClrGray,KC_INT32,"RGB(240,240,240)", + ClrHeader,KC_INT32,"RGB(240,240,240)", + ClrHeaderCred,KC_INT32,"RGB(184,235,134)", + ClrHeaderWarn,KC_INT32,"RGB(235,235,134)", + ClrHeaderCrit,KC_INT32,"RGB(235,184,134)", + ClrHeaderExp,KC_INT32,"RGB(235,134,134)", + ClrHeaderSel,KC_INT32,"RGB(200,200,200)", + ClrHeaderCredSel,KC_INT32,"RGB(144,195, 94)", + ClrHeaderWarnSel,KC_INT32,"RGB(195,195, 94)", + ClrHeaderCritSel,KC_INT32,"RGB(195,144, 94)", + ClrHeaderExpSel,KC_INT32,"RGB(195, 94, 94)", + ClrHeaderOutline,KC_INT32,"RGB(15,15,15)", + ClrText,KC_INT32,"RGB(15,15,15)", + ClrTextSel,KC_INT32,"RGB(0,0,0)", + ClrTextHeader,KC_INT32,"RGB(15,15,15)", + ClrTextHeaderSel,KC_INT32,"RGB(0,0,0)", + ClrTextHeaderGray,KC_INT32,"RGB(192,192,192)", + ClrTextHeaderGraySel,KC_INT32,"RGB(240,240,240)", + Default,KC_ENDSPACE,0 + Themes,KC_ENDSPACE,0 +CredWindow,KC_ENDSPACE,0