/[winpt]/trunk/Src/wptKeyManagerDlg.cpp
ViewVC logotype

Diff of /trunk/Src/wptKeyManagerDlg.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 132 by twoaday, Fri Dec 30 14:06:39 2005 UTC revision 133 by twoaday, Mon Jan 9 09:15:29 2006 UTC
# Line 626  regist_sep_wnd (HWND dlg, struct km_info Line 626  regist_sep_wnd (HWND dlg, struct km_info
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
# Line 636  regist_sep_wnd (HWND dlg, struct km_info Line 636  regist_sep_wnd (HWND dlg, struct km_info
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)
# Line 658  update_ui_items (HWND hwnd, listview_ctr Line 658  update_ui_items (HWND hwnd, listview_ctr
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;
# Line 684  update_ui_items (HWND hwnd, listview_ctr Line 684  update_ui_items (HWND hwnd, listview_ctr
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    
# Line 1213  keymanager_dlg_proc (HWND dlg, UINT msg, Line 1222  keymanager_dlg_proc (HWND dlg, UINT msg,
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);

Legend:
Removed from v.132  
changed lines
  Added in v.133

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26