190 |
} |
} |
191 |
|
|
192 |
|
|
193 |
|
/* Restore the width of the columns from the registry. |
194 |
|
If no bitstring was found, the default size is used. */ |
195 |
|
int |
196 |
|
restore_column_size (listview_ctrl_t hd) |
197 |
|
{ |
198 |
|
WORD *buf; |
199 |
|
HKEY root; |
200 |
|
DWORD type; |
201 |
|
DWORD size = hd->cols*sizeof (WORD), i; |
202 |
|
LONG ec; |
203 |
|
|
204 |
|
ec = RegOpenKeyEx (HKEY_CURRENT_USER, "Software\\WinPT", 0, |
205 |
|
KEY_ALL_ACCESS, &root); |
206 |
|
if (ec != ERROR_SUCCESS) |
207 |
|
return -1; |
208 |
|
|
209 |
|
buf = new WORD[size/2]; |
210 |
|
if (!buf) |
211 |
|
BUG (NULL); |
212 |
|
ec = RegQueryValueEx (root, "KMColumnSize", NULL, &type, |
213 |
|
(BYTE*)buf, &size); |
214 |
|
RegCloseKey (root); |
215 |
|
if (ec != ERROR_SUCCESS) { |
216 |
|
free_if_alloc (buf); |
217 |
|
return -1; |
218 |
|
} |
219 |
|
|
220 |
|
/* check for garbled values. */ |
221 |
|
for (i=0; i < size/2; i++) { |
222 |
|
if (buf[i] > 512) { |
223 |
|
free_if_alloc (buf); |
224 |
|
return -1; |
225 |
|
} |
226 |
|
} |
227 |
|
for (i=0; i < size/2; i++) { |
228 |
|
LVCOLUMN lvc; |
229 |
|
|
230 |
|
memset (&lvc, 0, sizeof (lvc)); |
231 |
|
lvc.mask = LVCF_WIDTH; |
232 |
|
lvc.cx = buf[i]; |
233 |
|
ListView_SetColumn (hd->ctrl, i, &lvc); |
234 |
|
} |
235 |
|
free_if_alloc (buf); |
236 |
|
return 0; |
237 |
|
} |
238 |
|
|
239 |
|
|
240 |
|
/* Save the current column width to the registry. */ |
241 |
|
int |
242 |
|
save_column_size (listview_ctrl_t hd) |
243 |
|
{ |
244 |
|
WORD *buf; |
245 |
|
HKEY root; |
246 |
|
LONG ec; |
247 |
|
int i; |
248 |
|
|
249 |
|
buf = new WORD[hd->cols]; |
250 |
|
if (!buf) |
251 |
|
BUG (NULL); |
252 |
|
for (i=0; i < hd->cols; i++) { |
253 |
|
LVCOLUMN lvc; |
254 |
|
|
255 |
|
memset (&lvc, 0, sizeof (lvc)); |
256 |
|
lvc.mask = LVCF_WIDTH; |
257 |
|
ListView_GetColumn (hd->ctrl, i, &lvc); |
258 |
|
buf[i] = lvc.cx; |
259 |
|
} |
260 |
|
|
261 |
|
ec = RegOpenKeyEx (HKEY_CURRENT_USER, "Software\\WinPT", 0, |
262 |
|
KEY_ALL_ACCESS, &root); |
263 |
|
if (ec != ERROR_SUCCESS) { |
264 |
|
free_if_alloc (buf); |
265 |
|
return -1; |
266 |
|
} |
267 |
|
|
268 |
|
ec = RegSetValueEx (root, "KMColumnSize", 0, REG_BINARY, |
269 |
|
(const BYTE*)buf, 2*hd->cols); |
270 |
|
RegCloseKey (root); |
271 |
|
free_if_alloc (buf); |
272 |
|
return ec == ERROR_SUCCESS? 0 : -1; |
273 |
|
} |
274 |
|
|
275 |
|
|
276 |
/* Center window @dlg. */ |
/* Center window @dlg. */ |
277 |
static void |
static void |
278 |
do_center_window (HWND dlg, struct km_info *kmi) |
do_center_window (HWND dlg, struct km_info *kmi) |
279 |
{ |
{ |
280 |
RECT rect; |
RECT rect; |
281 |
char *p; |
char *p; |
282 |
int pos_x = 0, pos_y = 0; |
int pos_x = 0; |
283 |
|
int pos_y = 0; |
284 |
|
|
285 |
/* Find bottom of keylist */ |
/* Find bottom of keylist */ |
286 |
GetWindowRect (GetDlgItem(dlg, IDC_KEYMISC_KEYLIST), &rect); |
GetWindowRect (GetDlgItem(dlg, IDC_KEYMISC_KEYLIST), &rect); |
597 |
int key_inv = 0; |
int key_inv = 0; |
598 |
int mult_resids[] = {ID_KEYMISC_PROPS, ID_KEYMISC_SIGN, ID_KEYMISC_EDITKEY, |
int mult_resids[] = {ID_KEYMISC_PROPS, ID_KEYMISC_SIGN, ID_KEYMISC_EDITKEY, |
599 |
ID_KEYMISC_CHECKSIGS, ID_KEYMISC_REVCERT, 0}; |
ID_KEYMISC_CHECKSIGS, ID_KEYMISC_REVCERT, 0}; |
600 |
int i; |
int i, state=0; |
601 |
|
|
602 |
/* Get some states */ |
/* Get some states */ |
603 |
key_selected = SendMessage (GetDlgItem (hwnd, IDC_KEYMISC_KEYLIST), |
key_selected = SendMessage (GetDlgItem (hwnd, IDC_KEYMISC_KEYLIST), |
619 |
enable_button (hwnd_child, ID_KEYMISC_EXPORT); |
enable_button (hwnd_child, ID_KEYMISC_EXPORT); |
620 |
|
|
621 |
/* Enable / disable menu items */ |
/* Enable / disable menu items */ |
622 |
|
state = key_selected? MF_ENABLED : MF_DISABLED|MF_GRAYED; |
623 |
hmenu = GetMenu (hwnd); |
hmenu = GetMenu (hwnd); |
624 |
set_menu_state (hmenu, ID_KEYMISC_EXPORT, key_selected ? MF_ENABLED : MF_GRAYED); |
set_menu_state (hmenu, ID_KEYMISC_EXPORT, state); |
625 |
set_menu_state (hmenu, ID_KEYMISC_EXPORT_PRIVKEY, key_has_sec ? MF_ENABLED : MF_GRAYED); |
set_menu_state (hmenu, ID_KEYMISC_EXPORT_PRIVKEY, state); |
626 |
set_menu_state (hmenu, ID_KEYMISC_REVCERT, key_has_sec ? MF_ENABLED : MF_GRAYED); |
set_menu_state (hmenu, ID_KEYMISC_REVCERT, state); |
627 |
set_menu_state (hmenu, ID_KEYMISC_DELETE, key_selected ? MF_ENABLED : MF_GRAYED); |
set_menu_state (hmenu, ID_KEYMISC_DELETE, state); |
628 |
set_menu_state (hmenu, ID_KEYMISC_PROPS, key_selected ? MF_ENABLED : MF_GRAYED); |
set_menu_state (hmenu, ID_KEYMISC_PROPS, state); |
629 |
|
set_menu_state (hmenu, ID_KEYMISC_EDITKEY, state); |
630 |
|
set_menu_state (hmenu, ID_KEYMISC_CHECKSIGS, state); |
631 |
set_menu_state (hmenu, ID_KEYMISC_SIGN, key_selected && !key_inv ? MF_ENABLED : MF_GRAYED); |
set_menu_state (hmenu, ID_KEYMISC_SIGN, key_selected && !key_inv ? MF_ENABLED : MF_GRAYED); |
|
set_menu_state (hmenu, ID_KEYMISC_EDITKEY, key_selected? MF_ENABLED : MF_GRAYED); |
|
|
set_menu_state (hmenu, ID_KEYMISC_CHECKSIGS, key_selected? MF_ENABLED : MF_GRAYED); |
|
632 |
|
|
633 |
/* Disable some menu items when multiple keys are selected. */ |
/* Disable some menu items when multiple keys are selected. */ |
634 |
if (listview_count_items (lv, 1) > 1) { |
if (listview_count_items (lv, 1) > 1) { |
695 |
static void |
static void |
696 |
change_edit_menu (listview_ctrl_t lv, HMENU hm, int id) |
change_edit_menu (listview_ctrl_t lv, HMENU hm, int id) |
697 |
{ |
{ |
698 |
|
enum item { EDIT_MENU = 1 }; |
699 |
int no_sel; |
int no_sel; |
700 |
|
|
701 |
if (id != 1 /*EDIT_MENU*/) |
if (id != EDIT_MENU) |
702 |
return; |
return; |
703 |
|
|
704 |
if (!clip_contains_pgpkey ()) |
if (!clip_contains_pgpkey ()) |
821 |
} |
} |
822 |
|
|
823 |
|
|
824 |
|
/* Translate all menu strings. */ |
825 |
|
static void |
826 |
|
translate_menu_strings (HWND dlg) |
827 |
|
{ |
828 |
|
HMENU menu; |
829 |
|
|
830 |
|
menu = LoadMenu (glob_hinst, (LPCSTR)IDR_WINPT_KEYMISC); |
831 |
|
set_menu_text_bypos (menu, 0, _("File")); |
832 |
|
set_menu_text_bypos (menu, 1, _("Edit")); |
833 |
|
set_menu_text_bypos (menu, 2, _("View")); |
834 |
|
set_menu_text_bypos (menu, 3, _("Key")); |
835 |
|
set_menu_text_bypos (menu, 4, _("Groups")); |
836 |
|
|
837 |
|
set_menu_text (menu, ID_KEYMISC_EDITKEY, _("Edit")); |
838 |
|
set_menu_text (menu, ID_KEYMISC_MAIL, _("Send Mail...")); |
839 |
|
set_menu_text (menu, ID_KEYMISC_OT, _("Ownertrust")); /* XXX */ |
840 |
|
set_menu_text (menu, ID_KEYMISC_COPY, _("&Copy\tCtrl+C")); |
841 |
|
set_menu_text (menu, ID_KEYMISC_PASTE, _("&Paste\tCtrl+V")); |
842 |
|
set_menu_text (menu, ID_KEYMISC_FIND, _("Search...\tCtrl+F")); |
843 |
|
set_menu_text (menu, ID_KEYMISC_SELALL, _("Select All\tCtrl+A")); |
844 |
|
set_menu_text (menu, ID_KEYMISC_QUIT, _("&Quit")); |
845 |
|
set_menu_text (menu, ID_KEYMISC_UID, _("User ID")); |
846 |
|
set_menu_text (menu, ID_KEYMISC_NEWKEY, _("&Expert")); |
847 |
|
set_menu_text (menu, ID_KEYMISC_KEYWIZARD, _("&Normal")); |
848 |
|
set_menu_text (menu, ID_KEYMISC_EDIT, _("Edit")); |
849 |
|
set_menu_text (menu, ID_KEYMISC_SIGN, _("&Sign")); |
850 |
|
set_menu_text (menu, ID_KEYMISC_DELETE, _("&Delete")); |
851 |
|
set_menu_text (menu, ID_KEYMISC_DELETE2, _("&Delete")); |
852 |
|
set_menu_text (menu, ID_KEYMISC_REVCERT, _("&Revoke")); |
853 |
|
set_menu_text (menu, ID_KEYMISC_CHECKSIGS, _("&List Signatures")); |
854 |
|
set_menu_text (menu, ID_KEYMISC_TRUSTPATH, _("List Trust Path")); |
855 |
|
set_menu_text (menu, ID_KEYMISC_EXPORT, _("&Export...")); |
856 |
|
set_menu_text (menu, ID_KEYMISC_IMPORT, _("&Import...")); |
857 |
|
set_menu_text (menu, ID_KEYMISC_PROPS, _("&Properties")); |
858 |
|
set_menu_text (menu, ID_KEYMISC_GPGOPT, _("Options")); |
859 |
|
set_menu_text (menu, ID_KEYMISC_GPGPREFS, _("Preferences")); |
860 |
|
set_menu_text (menu, ID_KEYMISC_SENDRECV, _("Keyserver") ); |
861 |
|
set_menu_text (menu, ID_KEYMISC_EXPORT_PRIVKEY, _("E&xport Secret Key")); |
862 |
|
set_menu_text (menu, ID_KEYMISC_RECACHE, _("Re&load Key Cache")); |
863 |
|
set_menu_text (menu, ID_KEYMISC_REBUILD, _("R&everify Signatures")); |
864 |
|
set_menu_text (menu, ID_KEYMISC_REFRESH_KEYS, _("Refresh &Keys (Keyserver)")); |
865 |
|
set_menu_text (menu, ID_KEYMISC_INFO, _("Info") ); |
866 |
|
set_menu_text (menu, ID_KEYMISC_HELP, _("&Help")); |
867 |
|
|
868 |
|
/* XXX: implement help code. */ |
869 |
|
set_menu_state (menu, ID_KEYMISC_HELP, MF_GRAYED); |
870 |
|
|
871 |
|
SetMenu (dlg, menu); |
872 |
|
} |
873 |
|
|
874 |
|
|
875 |
|
/* Translate popup menu strings. */ |
876 |
|
static void |
877 |
|
translate_popupmenu_strings (HMENU popup) |
878 |
|
{ |
879 |
|
set_menu_text (popup, ID_KEYCTX_UID_COPY, _("Copy User ID to Clipboard")); |
880 |
|
set_menu_text (popup, ID_KEYCTX_KEYID_COPY, _("Copy Key ID to Clipboard")); |
881 |
|
set_menu_text (popup, ID_KEYCTX_FPR_COPY, _("Copy Fingerprint to Clipboard")); |
882 |
|
set_menu_text (popup, ID_KEYCTX_KINFO_COPY, _("Copy Key Info to Clipboard")); |
883 |
|
set_menu_text (popup, ID_KEYCTX_COPY, _("Copy Key to Clipboard")); |
884 |
|
set_menu_text (popup, ID_KEYCTX_PASTE, _("Paste Key from Clipboard")); |
885 |
|
set_menu_text (popup, ID_KEYCTX_RECVFROM, _("Refresh from Keyserver")); |
886 |
|
set_menu_text (popup, ID_KEYCTX_MAXTRUST, _("Set Implicit &Trust")); |
887 |
|
set_menu_text (popup, ID_KEYCTX_LISTSIGS, _("&List Signatures")); |
888 |
|
set_menu_text (popup, ID_KEYCTX_PROPS, _("&Properties")); |
889 |
|
set_menu_text (popup, ID_KEYCTX_EDIT, _("Key Edit")); |
890 |
|
set_menu_text (popup, ID_KEYCTX_DEL, _("&Delete")); |
891 |
|
set_menu_text (popup, ID_KEYCTX_REV, _("&Revoke")); |
892 |
|
set_menu_text (popup, ID_KEYCTX_SIGN, _("&Sign")); |
893 |
|
set_menu_text (popup, ID_KEYCTX_ENABLE, _("&Enable")); |
894 |
|
set_menu_text (popup, ID_KEYCTX_DISABLE, _("&Disable")); |
895 |
|
set_menu_text (popup, ID_KEYCTX_RECVFROM, _("Re&fresh from Keyserver")); |
896 |
|
set_menu_text (popup, ID_KEYCTX_SETPREFKS, _("Set preferred Keyserver URL")); |
897 |
|
set_menu_text (popup, ID_KEYCTX_SENDMAIL, _("Send Key to Mail Recipient")); |
898 |
|
set_menu_text (popup, ID_KEYCTX_SETDEFKEY, _("Set as Default Key")); |
899 |
|
|
900 |
|
set_menu_text (popup, ID_KEYCTX_ADDKEY, _("Key...")); |
901 |
|
set_menu_text (popup, ID_KEYCTX_ADDUID, _("User ID...")); |
902 |
|
set_menu_text (popup, ID_KEYCTX_ADDPHOTO, _("Photo ID...")); |
903 |
|
set_menu_text (popup, ID_KEYCTX_ADDREV, _("Revoker...")); |
904 |
|
|
905 |
|
/* change popup texts */ |
906 |
|
set_menu_text_bypos (popup, 0, _("Key Attributes")); |
907 |
|
set_menu_text_bypos (popup, 6, _("Add")); |
908 |
|
set_menu_text_bypos (popup, 19, _("Send to Keyserver")); |
909 |
|
} |
910 |
|
|
911 |
|
|
912 |
/* Dialog box procedure for the Key Manager. */ |
/* Dialog box procedure for the Key Manager. */ |
913 |
BOOL CALLBACK |
BOOL CALLBACK |
914 |
keymanager_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam) |
keymanager_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam) |
915 |
{ |
{ |
916 |
struct km_info *kmi; |
struct km_info *kmi; |
|
static HMENU menu = NULL; |
|
917 |
static int refresh_keys = 0; |
static int refresh_keys = 0; |
918 |
INITCOMMONCONTROLSEX icex; |
INITCOMMONCONTROLSEX icex; |
919 |
HWND kl; |
HWND kl; |
943 |
InitCommonControlsEx (&icex); |
InitCommonControlsEx (&icex); |
944 |
kmi->hwnd_sep = regist_sep_wnd (dlg, kmi); |
kmi->hwnd_sep = regist_sep_wnd (dlg, kmi); |
945 |
imagelist_load (dlg); |
imagelist_load (dlg); |
946 |
|
translate_menu_strings (dlg); |
947 |
SetWindowText (dlg, _("Key Manager")); |
SetWindowText (dlg, _("Key Manager")); |
948 |
menu = LoadMenu (glob_hinst, (LPCSTR)IDR_WINPT_KEYMISC); |
|
|
set_menu_text_bypos (menu, 0, _("File")); |
|
|
set_menu_text_bypos (menu, 1, _("Edit")); |
|
|
set_menu_text_bypos (menu, 2, _("View")); |
|
|
set_menu_text_bypos (menu, 3, _("Key")); |
|
|
set_menu_text_bypos (menu, 4, _("Groups")); |
|
|
set_menu_text (menu, ID_KEYMISC_EDITKEY, _("Edit")); |
|
|
set_menu_text (menu, ID_KEYMISC_MAIL, _("Send Mail...")); |
|
|
set_menu_text (menu, ID_KEYMISC_OT, _("Ownertrust")); /* XXX */ |
|
|
set_menu_text (menu, ID_KEYMISC_COPY, _("&Copy\tCtrl+C")); |
|
|
set_menu_text (menu, ID_KEYMISC_PASTE, _("&Paste\tCtrl+V")); |
|
|
set_menu_text (menu, ID_KEYMISC_FIND, _("Search...\tCtrl+F")); |
|
|
set_menu_text (menu, ID_KEYMISC_SELALL, _("Select All\tCtrl+A")); |
|
|
set_menu_text (menu, ID_KEYMISC_QUIT, _("&Quit")); |
|
|
set_menu_text (menu, ID_KEYMISC_UID, _("User ID")); |
|
|
set_menu_text (menu, ID_KEYMISC_NEWKEY, _("&Expert")); |
|
|
set_menu_text (menu, ID_KEYMISC_KEYWIZARD, _("&Normal")); |
|
|
set_menu_text (menu, ID_KEYMISC_EDIT, _("Edit")); |
|
|
set_menu_text (menu, ID_KEYMISC_SIGN, _("&Sign")); |
|
|
set_menu_text (menu, ID_KEYMISC_DELETE, _("&Delete")); |
|
|
set_menu_text (menu, ID_KEYMISC_DELETE2, _("&Delete")); |
|
|
set_menu_text (menu, ID_KEYMISC_REVCERT, _("&Revoke")); |
|
|
set_menu_text (menu, ID_KEYMISC_CHECKSIGS, _("&List Signatures")); |
|
|
set_menu_text (menu, ID_KEYMISC_TRUSTPATH, _("List Trust Path")); |
|
|
set_menu_text (menu, ID_KEYMISC_EXPORT, _("&Export...")); |
|
|
set_menu_text (menu, ID_KEYMISC_IMPORT, _("&Import...")); |
|
|
set_menu_text (menu, ID_KEYMISC_PROPS, _("&Properties")); |
|
|
set_menu_text (menu, ID_KEYMISC_GPGOPT, _("Options")); |
|
|
set_menu_text (menu, ID_KEYMISC_GPGPREFS, _("Preferences")); |
|
|
set_menu_text (menu, ID_KEYMISC_SENDRECV, _("Keyserver") ); |
|
|
set_menu_text (menu, ID_KEYMISC_EXPORT_PRIVKEY, _("E&xport Secret Key")); |
|
|
set_menu_text (menu, ID_KEYMISC_RECACHE, _("Re&load Key Cache")); |
|
|
set_menu_text (menu, ID_KEYMISC_REBUILD, _("R&everify Signatures")); |
|
|
set_menu_text (menu, ID_KEYMISC_REFRESH_KEYS, _("Refresh &Keys (Keyserver)")); |
|
|
set_menu_text (menu, ID_KEYMISC_INFO, _("Info") ); |
|
|
set_menu_text (menu, ID_KEYMISC_HELP, _("&Help")); |
|
|
|
|
|
/* XXX: implement help code. */ |
|
|
set_menu_state (menu, ID_KEYMISC_HELP, MF_GRAYED); |
|
|
|
|
|
SetMenu (dlg, menu); |
|
949 |
if (keyring_check_last_access ()) |
if (keyring_check_last_access ()) |
950 |
keycache_set_reload (1); |
keycache_set_reload (1); |
951 |
if (keycache_get_reload ()) |
if (keycache_get_reload ()) |
953 |
c = keycache_get_ctx (KEYCACHE_PUB); |
c = keycache_get_ctx (KEYCACHE_PUB); |
954 |
if (!c) |
if (!c) |
955 |
BUG (NULL); |
BUG (NULL); |
956 |
|
kl = GetDlgItem (dlg, IDC_KEYMISC_KEYLIST); |
957 |
kmi->keylist_sortby = KEY_SORT_USERID; |
kmi->keylist_sortby = KEY_SORT_USERID; |
958 |
Header_SetImageList(ListView_GetHeader (GetDlgItem (dlg, IDC_KEYMISC_KEYLIST)), |
Header_SetImageList(ListView_GetHeader (kl), glob_imagelist); |
|
glob_imagelist); |
|
959 |
kmi->lv = keylist_load (GetDlgItem (dlg, IDC_KEYMISC_KEYLIST), c, |
kmi->lv = keylist_load (GetDlgItem (dlg, IDC_KEYMISC_KEYLIST), c, |
960 |
NULL, KEYLIST_LIST, kmi->keylist_sortby); |
NULL, KEYLIST_LIST, kmi->keylist_sortby); |
961 |
/* init subclassing for the listview */ |
/* init subclassing for the listview */ |
|
kl = GetDlgItem (dlg, IDC_KEYMISC_KEYLIST); |
|
962 |
keylist_proc.dlg = dlg; |
keylist_proc.dlg = dlg; |
963 |
keylist_proc.current = (WNDPROC)keylist_subclass_proc; |
keylist_proc.current = (WNDPROC)keylist_subclass_proc; |
964 |
keylist_proc.old = (WNDPROC)GetWindowLong( kl, GWL_WNDPROC ); |
keylist_proc.old = (WNDPROC)GetWindowLong( kl, GWL_WNDPROC ); |
969 |
BUG (NULL); |
BUG (NULL); |
970 |
} |
} |
971 |
} |
} |
|
#if 0 |
|
|
km_groups_new (&gc, GetDlgItem (dlg, IDC_KEYMISC_GROUP)); |
|
|
km_groups_load (gc); |
|
|
#endif |
|
972 |
kmi->statbar = setup_status_bar (dlg, kmi->lv); |
kmi->statbar = setup_status_bar (dlg, kmi->lv); |
973 |
SetWindowLong (dlg, GWL_USERDATA, (LONG)kmi); |
SetWindowLong (dlg, GWL_USERDATA, (LONG)kmi); |
974 |
kmi->toolbar = load_toolbar (dlg, kmi); |
kmi->toolbar = load_toolbar (dlg, kmi); |
976 |
do_center_window (dlg, kmi); |
do_center_window (dlg, kmi); |
977 |
do_resize_window (dlg, kmi); |
do_resize_window (dlg, kmi); |
978 |
update_ui_items (dlg, kmi->lv); |
update_ui_items (dlg, kmi->lv); |
979 |
|
restore_column_size (kmi->lv); |
980 |
|
|
981 |
SetDlgItemText (dlg, IDC_KEYMISC_GTEXT, _("Groups")); |
SetDlgItemText (dlg, IDC_KEYMISC_GTEXT, _("Groups")); |
982 |
SetClassLong (dlg, GCL_HICON, (LONG)LoadIcon (glob_hinst, |
SetClassLong (dlg, GCL_HICON, (LONG)LoadIcon (glob_hinst, |
985 |
return TRUE; |
return TRUE; |
986 |
|
|
987 |
case WM_DESTROY: |
case WM_DESTROY: |
988 |
|
save_column_size (kmi->lv); |
989 |
if (kmi->lv) { |
if (kmi->lv) { |
990 |
keylist_delete (kmi->lv); |
keylist_delete (kmi->lv); |
991 |
kmi->lv = NULL; |
kmi->lv = NULL; |
996 |
set_reg_entry (HKEY_CURRENT_USER, "Software\\WinPT", "KM_Pos_X", type); |
set_reg_entry (HKEY_CURRENT_USER, "Software\\WinPT", "KM_Pos_X", type); |
997 |
ltoa (kmi->pos_y, type, 10); |
ltoa (kmi->pos_y, type, 10); |
998 |
set_reg_entry (HKEY_CURRENT_USER, "Software\\WinPT", "KM_Pos_Y", type); |
set_reg_entry (HKEY_CURRENT_USER, "Software\\WinPT", "KM_Pos_Y", type); |
999 |
|
|
1000 |
/* Remove runtime information. This should be the last action taken here. */ |
/* Remove runtime information. This should be the last action taken here. */ |
1001 |
delete kmi; kmi = NULL; |
delete kmi; kmi = NULL; |
1002 |
SetWindowLong (dlg, GWL_USERDATA, 0); |
SetWindowLong (dlg, GWL_USERDATA, 0); |
1114 |
GetCursorPos (&p); |
GetCursorPos (&p); |
1115 |
hm = LoadMenu (glob_hinst, MAKEINTRESOURCE (IDR_WINPT_KEYMISC_CTX)); |
hm = LoadMenu (glob_hinst, MAKEINTRESOURCE (IDR_WINPT_KEYMISC_CTX)); |
1116 |
popup = GetSubMenu (hm, 0); |
popup = GetSubMenu (hm, 0); |
1117 |
|
translate_popupmenu_strings (popup); |
|
set_menu_text (popup, ID_KEYCTX_UID_COPY, _("Copy User ID to Clipboard")); |
|
|
set_menu_text (popup, ID_KEYCTX_KEYID_COPY, _("Copy Key ID to Clipboard")); |
|
|
set_menu_text (popup, ID_KEYCTX_FPR_COPY, _("Copy Fingerprint to Clipboard")); |
|
|
set_menu_text (popup, ID_KEYCTX_KINFO_COPY, _("Copy Key Info to Clipboard")); |
|
|
set_menu_text (popup, ID_KEYCTX_COPY, _("Copy Key to Clipboard")); |
|
|
set_menu_text (popup, ID_KEYCTX_PASTE, _("Paste Key from Clipboard")); |
|
|
set_menu_text (popup, ID_KEYCTX_RECVFROM, _("Refresh from Keyserver")); |
|
|
set_menu_text (popup, ID_KEYCTX_MAXTRUST, _("Set Implicit &Trust")); |
|
|
set_menu_text (popup, ID_KEYCTX_LISTSIGS, _("&List Signatures")); |
|
|
set_menu_text (popup, ID_KEYCTX_PROPS, _("&Key Properties")); |
|
|
set_menu_text (popup, ID_KEYCTX_EDIT, _("Key Edit")); |
|
|
set_menu_text (popup, ID_KEYCTX_DEL, _("&Delete")); |
|
|
set_menu_text (popup, ID_KEYCTX_REV, _("&Revoke")); |
|
|
set_menu_text (popup, ID_KEYCTX_SIGN, _("&Sign")); |
|
|
set_menu_text (popup, ID_KEYCTX_ENABLE, _("&Enable")); |
|
|
set_menu_text (popup, ID_KEYCTX_DISABLE, _("&Disable")); |
|
|
set_menu_text (popup, ID_KEYCTX_RECVFROM, _("Re&fresh from Keyserver")); |
|
|
set_menu_text (popup, ID_KEYCTX_SETPREFKS, _("Set preferred Keyserver URL")); |
|
|
set_menu_text (popup, ID_KEYCTX_SENDMAIL, _("Send Key to Mail Recipient")); |
|
|
set_menu_text (popup, ID_KEYCTX_SETDEFKEY, _("Set as Default Key")); |
|
|
|
|
|
set_menu_text (popup, ID_KEYCTX_ADDKEY, _("Key...")); |
|
|
set_menu_text (popup, ID_KEYCTX_ADDUID, _("User ID...")); |
|
|
set_menu_text (popup, ID_KEYCTX_ADDPHOTO, _("Photo ID...")); |
|
|
set_menu_text (popup, ID_KEYCTX_ADDREV, _("Revoker...")); |
|
|
|
|
|
/* change popup texts */ |
|
|
set_menu_text_bypos (popup, 0, _("Key Attributes")); |
|
|
set_menu_text_bypos (popup, 6, _("Add")); |
|
|
set_menu_text_bypos (popup, 19, _("Send to Keyserver")); |
|
1118 |
|
|
1119 |
if (km_check_for_seckey (kmi->lv, l_idx, &i)) |
if (km_check_for_seckey (kmi->lv, l_idx, &i)) |
1120 |
set_menu_state (popup, ID_KEYCTX_SETDEFKEY, MF_ENABLED); |
set_menu_state (popup, ID_KEYCTX_SETDEFKEY, MF_ENABLED); |
1158 |
DestroyMenu (hm); |
DestroyMenu (hm); |
1159 |
return TRUE; |
return TRUE; |
1160 |
} |
} |
|
#if 0 /* XXX */ |
|
|
if( notify->idFrom == IDC_KEYMISC_GROUP ) { |
|
|
HWND tree = GetDlgItem( dlg, IDC_KEYMISC_GROUP ); |
|
|
if( TreeView_GetSelection( tree ) ) { |
|
|
GetCursorPos( &p ); |
|
|
hm = LoadMenu( glob_hinst, MAKEINTRESOURCE(IDR_WINPT_GROUP_CTX) ); |
|
|
popup = GetSubMenu (hm, 0); |
|
|
if (km_index == -1) /* XXX */ |
|
|
set_menu_state( popup, ID_GROUP_PASTE, MF_DISABLED|MF_GRAYED ); |
|
|
set_menu_text( popup, ID_GROUP_PASTE, _("Paste into this group") ); |
|
|
set_menu_text( popup, ID_GROUP_DELETE, _("Delete") ); |
|
|
TrackPopupMenu( popup, TPM_RIGHTALIGN, p.x, p.y, 0, dlg, NULL ); |
|
|
DestroyMenu( popup ); |
|
|
DestroyMenu( hm ); |
|
|
return TRUE; |
|
|
} |
|
|
} |
|
|
#endif |
|
1161 |
break; |
break; |
1162 |
|
|
1163 |
case LVN_COLUMNCLICK: |
case LVN_COLUMNCLICK: |
1248 |
if (kmi->lv_idx == -1) { |
if (kmi->lv_idx == -1) { |
1249 |
msg_box (dlg, _("Please select a key."), |
msg_box (dlg, _("Please select a key."), |
1250 |
_("Key Manager"), MB_ERR); |
_("Key Manager"), MB_ERR); |
1251 |
return TRUE;; |
return TRUE; |
1252 |
} |
} |
1253 |
if (km_check_key_status (kmi->lv, kmi->lv_idx)) |
if (km_check_key_status (kmi->lv, kmi->lv_idx)) |
1254 |
return TRUE; |
return TRUE; |
1255 |
key = (gpgme_key_t)listview_get_item2 (kmi->lv, kmi->lv_idx); |
key = (gpgme_key_t)listview_get_item2 (kmi->lv, kmi->lv_idx); |
|
listview_get_item_text (kmi->lv, kmi->lv_idx, 1, keyid, DIM (keyid)-1); |
|
1256 |
memset (&k, 0, sizeof (k)); |
memset (&k, 0, sizeof (k)); |
1257 |
k.ctx = key; |
k.ctx = key; |
1258 |
k.keyid = keyid; |
k.keyid = key->subkeys->keyid; |
1259 |
dialog_box_param (glob_hinst, (LPCSTR)IDD_WINPT_KEYSIGN, dlg, |
dialog_box_param (glob_hinst, (LPCSTR)IDD_WINPT_KEYSIGN, dlg, |
1260 |
keysign_dlg_proc, (LPARAM)&k, |
keysign_dlg_proc, (LPARAM)&k, |
1261 |
_("Key Signing"), IDS_WINPT_KEYSIGN); |
_("Key Signing"), IDS_WINPT_KEYSIGN); |
1567 |
|
|
1568 |
case ID_KEYMISC_REFRESH_KEYS: |
case ID_KEYMISC_REFRESH_KEYS: |
1569 |
if (listview_count_items (kmi->lv, 1) == 0) { |
if (listview_count_items (kmi->lv, 1) == 0) { |
1570 |
msg_box (dlg, _("No key was selected, select all by default."), _("Key Manager"), MB_INFO); |
msg_box (dlg, _("No key was selected, select all by default."), |
1571 |
|
_("Key Manager"), MB_INFO); |
1572 |
listview_select_all (kmi->lv); |
listview_select_all (kmi->lv); |
1573 |
} |
} |
1574 |
km_refresh_from_keyserver (kmi->lv, dlg); |
km_refresh_from_keyserver (kmi->lv, dlg); |
1746 |
|
|
1747 |
return FALSE; |
return FALSE; |
1748 |
} |
} |
|
|
|
|
|
|
|
|
|