626 |
} |
} |
627 |
|
|
628 |
|
|
629 |
#define enable_button(hwnd, cid) \ |
#define enable_button(hwnd, cid, item_selected) \ |
630 |
SendMessage ((hwnd), TB_ENABLEBUTTON, (cid), MAKELONG (key_selected, 0)) |
SendMessage ((hwnd), TB_ENABLEBUTTON, (cid), MAKELONG ((item_selected), 0)) |
631 |
|
|
632 |
|
|
633 |
/* Interactive modification of the dialog item which depend if an item |
/* Interactive modification of the dialog item which depend if an item |
636 |
void |
void |
637 |
update_ui_items (HWND hwnd, listview_ctrl_t lv) |
update_ui_items (HWND hwnd, listview_ctrl_t lv) |
638 |
{ |
{ |
639 |
HWND hwnd_child; |
HWND tb_hwnd; |
640 |
HMENU hmenu; |
HMENU hmenu; |
641 |
|
int mult_resids[] = {ID_KEYMISC_PROPS, ID_KEYMISC_SIGN, ID_KEYMISC_EDITKEY, |
642 |
|
ID_KEYMISC_CHECKSIGS, ID_KEYMISC_REVCERT, 0}; |
643 |
int key_selected = 0; |
int key_selected = 0; |
644 |
int key_has_sec = 0; |
int key_has_sec = 0; |
645 |
int key_inv = 0; |
int key_inv = 0; |
|
int mult_resids[] = {ID_KEYMISC_PROPS, ID_KEYMISC_SIGN, ID_KEYMISC_EDITKEY, |
|
|
ID_KEYMISC_CHECKSIGS, ID_KEYMISC_REVCERT, 0}; |
|
646 |
int i, state=0; |
int i, state=0; |
647 |
|
|
648 |
/* Get some states */ |
/* Get some states */ |
649 |
key_selected = SendMessage (GetDlgItem (hwnd, IDC_KEYMISC_KEYLIST), |
key_selected = SendMessage (GetDlgItem (hwnd, IDC_KEYMISC_KEYLIST), |
650 |
LVM_GETSELECTEDCOUNT, 0, 0) |
LVM_GETSELECTEDCOUNT, 0, 0) |
658 |
} |
} |
659 |
|
|
660 |
/* Enable / disable toolbar buttons */ |
/* Enable / disable toolbar buttons */ |
661 |
hwnd_child = GetDlgItem (hwnd, IDR_WINPT_KMTB); |
tb_hwnd = GetDlgItem (hwnd, IDR_WINPT_KMTB); |
662 |
enable_button (hwnd_child, ID_KEYMISC_DELETE); |
enable_button (tb_hwnd, ID_KEYMISC_DELETE, key_selected); |
663 |
enable_button (hwnd_child, ID_KEYMISC_PROPS); |
enable_button (tb_hwnd, ID_KEYMISC_PROPS, key_selected); |
664 |
enable_button (hwnd_child, ID_KEYMISC_SIGN); |
enable_button (tb_hwnd, ID_KEYMISC_SIGN, key_selected && !key_inv); |
665 |
enable_button (hwnd_child, ID_KEYMISC_EXPORT); |
enable_button (tb_hwnd, ID_KEYMISC_EXPORT, key_selected); |
666 |
|
|
667 |
/* Enable / disable menu items */ |
/* Enable / disable menu items */ |
668 |
state = key_selected? MF_ENABLED : MF_DISABLED|MF_GRAYED; |
state = key_selected? MF_ENABLED : MF_DISABLED|MF_GRAYED; |
684 |
for (i=0; mult_resids[i] != 0; i++) |
for (i=0; mult_resids[i] != 0; i++) |
685 |
set_menu_state (hmenu, mult_resids[i], MF_GRAYED); |
set_menu_state (hmenu, mult_resids[i], MF_GRAYED); |
686 |
} |
} |
687 |
|
|
688 |
|
/* Disable all secret-key functions when no secret key is available. */ |
689 |
|
{ |
690 |
|
gpg_keycache_t sec = keycache_get_ctx (0); |
691 |
|
if (gpg_keycache_get_size (sec) == 0) { |
692 |
|
enable_button (tb_hwnd, ID_KEYMISC_SIGN, FALSE); |
693 |
|
set_menu_state (hmenu, ID_KEYMISC_SIGN, MF_GRAYED); |
694 |
|
} |
695 |
|
} |
696 |
} |
} |
697 |
|
|
698 |
|
|
1222 |
set_menu_state (popup, ID_KEYCTX_SETDEFKEY, MF_ENABLED); |
set_menu_state (popup, ID_KEYCTX_SETDEFKEY, MF_ENABLED); |
1223 |
if (i == 0) |
if (i == 0) |
1224 |
set_menu_state (popup, ID_KEYCTX_MAXTRUST, MF_ENABLED); |
set_menu_state (popup, ID_KEYCTX_MAXTRUST, MF_ENABLED); |
1225 |
if (!km_check_for_seckey (kmi->lv, l_idx, NULL)) { |
if (!km_check_for_seckey (kmi->lv, l_idx, NULL) || |
1226 |
|
(km_get_key_status (kmi->lv, l_idx) & KM_FLAG_REVOKED)) { |
1227 |
set_menu_state (popup, ID_KEYCTX_REV, MF_DISABLED|MF_GRAYED); |
set_menu_state (popup, ID_KEYCTX_REV, MF_DISABLED|MF_GRAYED); |
1228 |
set_menu_state (popup, ID_KEYCTX_ADDKEY, MF_DISABLED|MF_GRAYED); |
set_menu_state (popup, ID_KEYCTX_ADDKEY, MF_DISABLED|MF_GRAYED); |
1229 |
set_menu_state (popup, ID_KEYCTX_ADDUID, MF_DISABLED|MF_GRAYED); |
set_menu_state (popup, ID_KEYCTX_ADDUID, MF_DISABLED|MF_GRAYED); |