/[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 129 by twoaday, Fri Dec 30 13:56:10 2005 UTC revision 139 by twoaday, Wed Jan 11 12:19:41 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 885  modify_listview_columns (km_info_s *kmi, Line 894  modify_listview_columns (km_info_s *kmi,
894  }  }
895    
896    
897    /* Helper to handle the help file. If @check is 1
898       the existence of the file is checked.
899       Otherwise the help file will be loaded. */
900    static bool
901    start_help (HWND dlg, int check)
902    {
903        DWORD n;
904        char path[MAX_PATH+1+32];
905    
906        n = GetModuleFileName (NULL, path, sizeof (path)-1-32);
907        if (!n)
908            return false;
909        path[n] = 0;
910        while (n-- && path[n] != '\\')
911            ;
912        path[n+1] = 0;
913        strcat (path, "winpt.chm");
914        if (!check)
915            ShellExecute (dlg, "open", path, NULL, NULL, SW_SHOW);
916        return file_exist_check (path) == 0? true : false;
917    }
918    
919  /* Translate all menu strings. */  /* Translate all menu strings. */
920  static void  static void
921  translate_menu_strings (HWND dlg)  translate_menu_strings (HWND dlg)
# Line 934  translate_menu_strings (HWND dlg) Line 965  translate_menu_strings (HWND dlg)
965      set_menu_text (menu, ID_KEYMISC_VIEWTYPE, _("Type"));      set_menu_text (menu, ID_KEYMISC_VIEWTYPE, _("Type"));
966      set_menu_text (menu, ID_KEYMISC_VIEWCREAT, _("Creation"));      set_menu_text (menu, ID_KEYMISC_VIEWCREAT, _("Creation"));
967    
968      /* XXX: implement help code. */      if (!start_help (NULL, 1))
969      set_menu_state (menu, ID_KEYMISC_HELP, MF_GRAYED);          set_menu_state (menu, ID_KEYMISC_HELP, MF_GRAYED);
970    
971      SetMenu (dlg, menu);      SetMenu (dlg, menu);
972  }  }
# Line 978  translate_popupmenu_strings (HMENU popup Line 1009  translate_popupmenu_strings (HMENU popup
1009  }  }
1010    
1011    
1012    
1013  /* Dialog box procedure for the Key Manager. */  /* Dialog box procedure for the Key Manager. */
1014  BOOL CALLBACK  BOOL CALLBACK
1015  keymanager_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)  keymanager_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam)
# Line 1190  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);
# Line 1429  keymanager_dlg_proc (HWND dlg, UINT msg, Line 1462  keymanager_dlg_proc (HWND dlg, UINT msg,
1462          case ID_KEYMISC_RECACHE:          case ID_KEYMISC_RECACHE:
1463              /* If there is already a reload request,              /* If there is already a reload request,
1464                  don't bother the user with a message. */                  don't bother the user with a message. */
1465              if (keycache_get_reload() == 1)              if (keycache_get_reload () == 1)
1466                  l_idx = IDYES;                  l_idx = IDYES;
1467              else {              else {
1468                  char inf[256];                  char inf[256];
# Line 1594  keymanager_dlg_proc (HWND dlg, UINT msg, Line 1627  keymanager_dlg_proc (HWND dlg, UINT msg,
1627                                IDS_WINPT_ABOUT);                                IDS_WINPT_ABOUT);
1628              break;              break;
1629    
1630            case ID_KEYMISC_WEBSITE:
1631                ShellExecute (dlg, "open", "http://www.winpt.org",
1632                              NULL, NULL, SW_SHOW);
1633                break;
1634    
1635          case ID_KEYMISC_HELP:          case ID_KEYMISC_HELP:
1636              ShellExecute (dlg, "open", "winpt.chm", NULL, NULL, SW_SHOW);              start_help (dlg, 0);
1637              break;              break;
1638    
1639          case ID_KEYMISC_OT:          case ID_KEYMISC_OT:
# Line 1752  keymanager_dlg_proc (HWND dlg, UINT msg, Line 1790  keymanager_dlg_proc (HWND dlg, UINT msg,
1790              km_send_to_keyserver (kmi->lv, dlg, host, port);              km_send_to_keyserver (kmi->lv, dlg, host, port);
1791              break;              break;
1792    
1793          case ID_KEYCTX_RECVFROM:          case ID_KEYCTX_RECVFROM:
1794              km_refresh_from_keyserver (kmi->lv, dlg);              km_refresh_from_keyserver (kmi->lv, dlg);
1795              break;              break;
1796    
# Line 1773  keymanager_dlg_proc (HWND dlg, UINT msg, Line 1811  keymanager_dlg_proc (HWND dlg, UINT msg,
1811    
1812          case ID_KEYCTX_FPR_COPY:          case ID_KEYCTX_FPR_COPY:
1813              key = (gpgme_key_t) listview_get_item2 (kmi->lv, kmi->lv_idx);              key = (gpgme_key_t) listview_get_item2 (kmi->lv, kmi->lv_idx);
             //t = get_key_fpr (key);  
1814              t = key->subkeys->fpr;              t = key->subkeys->fpr;
1815              set_clip_text (NULL, t? t : "", t? strlen (t): 0);              set_clip_text (NULL, t? t : "", t? strlen (t): 0);
1816              break;              break;
# Line 1847  keymanager_dlg_proc (HWND dlg, UINT msg, Line 1884  keymanager_dlg_proc (HWND dlg, UINT msg,
1884          case ID_GROUP_DELETE:          case ID_GROUP_DELETE:
1885              /* XXX: Implement group manager. */              /* XXX: Implement group manager. */
1886              return TRUE;              return TRUE;
1887    
1888            case IDCANCEL:
1889                EndDialog (dlg, TRUE);
1890                return TRUE;
1891          }          }
1892                    
1893          break;          break;

Legend:
Removed from v.129  
changed lines
  Added in v.139

[email protected]
ViewVC Help
Powered by ViewVC 1.1.26