24 |
#endif |
#endif |
25 |
|
|
26 |
#include <windows.h> |
#include <windows.h> |
|
#include <windows.h> |
|
27 |
#include <commctrl.h> |
#include <commctrl.h> |
28 |
|
|
29 |
#include "../resource.h" |
#include "resource.h" |
30 |
#include "wptTypes.h" |
#include "wptTypes.h" |
31 |
#include "wptGPG.h" |
#include "wptGPG.h" |
32 |
#include "wptCommonCtl.h" |
#include "wptCommonCtl.h" |
191 |
} /* load_toolbar */ |
} /* load_toolbar */ |
192 |
|
|
193 |
|
|
194 |
|
/* Center window @dlg. */ |
195 |
static void |
static void |
196 |
do_center_window (HWND dlg, struct km_info * kmi) |
do_center_window (HWND dlg, struct km_info * kmi) |
197 |
{ |
{ |
205 |
|
|
206 |
kmi->ypos_sep = rect.bottom; |
kmi->ypos_sep = rect.bottom; |
207 |
|
|
208 |
p = get_reg_entry( HKEY_CURRENT_USER, "Software\\WinPT", "KM_Pos_X" ); |
p = get_reg_entry (HKEY_CURRENT_USER, "Software\\WinPT", "KM_Pos_X"); |
209 |
if( p && !strcmp( p, " " ) ) { |
if (p && !strcmp (p, " ")) { |
210 |
free_if_alloc( p ); |
free_if_alloc (p); |
211 |
center_window( dlg, NULL ); |
center_window (dlg, NULL); |
212 |
return; |
return; |
213 |
} |
} |
214 |
else if( p ) |
else if (p) |
215 |
pos_x = atol( p ); |
pos_x = atol (p); |
216 |
|
|
217 |
p = get_reg_entry( HKEY_CURRENT_USER, "Software\\WinPT", "KM_Pos_Y" ); |
p = get_reg_entry (HKEY_CURRENT_USER, "Software\\WinPT", "KM_Pos_Y"); |
218 |
if( p && !strcmp( p, " " ) ) { |
if (p && !strcmp (p, " ")) { |
219 |
free_if_alloc( p ); |
free_if_alloc (p); |
220 |
center_window( dlg, NULL ); |
center_window(dlg, NULL); |
221 |
return; |
return; |
222 |
} |
} |
223 |
else if( p ) |
else if (p) |
224 |
pos_y = atol( p ); |
pos_y = atol (p); |
225 |
|
|
226 |
if( !pos_y && !pos_x ) { |
if (!pos_y && !pos_x) { |
227 |
center_window( dlg, NULL ); |
center_window (dlg, NULL); |
228 |
return; |
return; |
229 |
} |
} |
230 |
|
|
231 |
if( pos_x > GetSystemMetrics( SM_CXSCREEN ) |
if (pos_x < 0 || pos_y < 0) |
232 |
|| pos_y > GetSystemMetrics( SM_CYSCREEN ) ) { |
pos_x = pos_y = 0; |
233 |
|
if (pos_x > GetSystemMetrics (SM_CXSCREEN) |
234 |
|
|| pos_y > GetSystemMetrics (SM_CYSCREEN)) { |
235 |
pos_x = pos_y = 0; |
pos_x = pos_y = 0; |
236 |
} |
} |
237 |
GetClientRect( dlg, &rect ); |
GetClientRect (dlg, &rect); |
238 |
MoveWindow( dlg, pos_x, pos_y, rect.right, rect.bottom, TRUE ); |
MoveWindow (dlg, pos_x, pos_y, rect.right, rect.bottom, TRUE); |
239 |
} |
} |
240 |
|
|
241 |
|
|
353 |
separator_wnd_proc( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam ) |
separator_wnd_proc( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam ) |
354 |
{ |
{ |
355 |
static POINT last_mouse_pos; |
static POINT last_mouse_pos; |
356 |
|
RECT rect; |
357 |
|
|
358 |
if (msg == WM_CREATE) |
if (msg == WM_CREATE) |
359 |
SetWindowLong (hwnd, GWL_USERDATA, (long)(((CREATESTRUCT*)lparam)->lpCreateParams)); |
SetWindowLong (hwnd, GWL_USERDATA, (long)(((CREATESTRUCT*)lparam)->lpCreateParams)); |
360 |
|
|
361 |
switch (msg) { |
switch (msg) { |
362 |
case WM_PAINT: |
case WM_PAINT: |
363 |
PAINTSTRUCT ps; |
PAINTSTRUCT ps; |
|
RECT rect; |
|
364 |
HPEN hpen; |
HPEN hpen; |
365 |
|
|
366 |
GetClientRect (hwnd, &rect); |
GetClientRect (hwnd, &rect); |
414 |
if (wparam == MK_LBUTTON) { |
if (wparam == MK_LBUTTON) { |
415 |
struct km_info *kmi; |
struct km_info *kmi; |
416 |
POINT p; |
POINT p; |
|
RECT rect; |
|
417 |
|
|
418 |
if ((kmi = (struct km_info *)GetWindowLong (hwnd, GWL_USERDATA)) == NULL) |
if ((kmi = (struct km_info *)GetWindowLong (hwnd, GWL_USERDATA)) == NULL) |
419 |
break; |
break; |
566 |
ID_KEYMISC_EDITKEY, |
ID_KEYMISC_EDITKEY, |
567 |
0 |
0 |
568 |
}; |
}; |
569 |
int * resids; |
int *resids; |
570 |
int i; |
int i; |
571 |
|
|
572 |
|
|
576 |
case 0: return; |
case 0: return; |
577 |
case 3: resids = key_resids; break; |
case 3: resids = key_resids; break; |
578 |
case 1: resids = edit_resids;break; |
case 1: resids = edit_resids;break; |
579 |
|
default: resids = edit_resids; return; |
580 |
} |
} |
581 |
|
|
582 |
for (i=0; resids[i] != 0; i++) |
for (i=0; resids[i] != 0; i++) |
653 |
keymanager_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam) |
keymanager_dlg_proc (HWND dlg, UINT msg, WPARAM wparam, LPARAM lparam) |
654 |
{ |
{ |
655 |
struct km_info *kmi; |
struct km_info *kmi; |
656 |
static km_group_s *gc = NULL; |
/*static km_group_s *gc = NULL;*/ |
657 |
static HMENU menu = NULL; |
static HMENU menu = NULL; |
658 |
static int refresh_keys = 0; |
static int refresh_keys = 0; |
659 |
INITCOMMONCONTROLSEX icex; |
INITCOMMONCONTROLSEX icex; |
670 |
const char *t, * host; |
const char *t, * host; |
671 |
u16 port = 0; |
u16 port = 0; |
672 |
int idx = 0, i=0, rc; |
int idx = 0, i=0, rc; |
|
size_t size = 0; |
|
673 |
|
|
674 |
if ((msg != WM_INITDIALOG) |
if ((msg != WM_INITDIALOG) |
675 |
&& ((kmi = (struct km_info*)GetWindowLong (dlg, GWL_USERDATA)) == NULL)) |
&& ((kmi = (struct km_info*)GetWindowLong (dlg, GWL_USERDATA)) == NULL)) |
685 |
kmi->hwnd_sep = regist_sep_wnd (dlg, kmi); |
kmi->hwnd_sep = regist_sep_wnd (dlg, kmi); |
686 |
imagelist_load (dlg); |
imagelist_load (dlg); |
687 |
|
|
|
#ifndef LANG_DE |
|
688 |
SetWindowText( dlg, _("Key Manager") ); |
SetWindowText( dlg, _("Key Manager") ); |
|
#endif |
|
689 |
menu = LoadMenu( glob_hinst, (LPCSTR)IDR_WINPT_KEYMISC ); |
menu = LoadMenu( glob_hinst, (LPCSTR)IDR_WINPT_KEYMISC ); |
690 |
#ifndef LANG_DE |
set_menu_text_bypos (menu, 0, _("File")); |
691 |
|
set_menu_text_bypos (menu, 1, _("Edit")); |
692 |
|
set_menu_text_bypos (menu, 2, _("View")); |
693 |
|
set_menu_text_bypos (menu, 3, _("Key")); |
694 |
|
set_menu_text_bypos (menu, 4, _("Groups")); |
695 |
|
|
696 |
|
set_menu_text (menu, ID_KEYMISC_EDITKEY, _("Edit")); |
697 |
set_menu_text (menu, ID_KEYMISC_MAIL, _("Send Mail...")); |
set_menu_text (menu, ID_KEYMISC_MAIL, _("Send Mail...")); |
698 |
set_menu_text (menu, ID_KEYMISC_OT, _("Ownertrust")); /* XXX */ |
set_menu_text (menu, ID_KEYMISC_OT, _("Ownertrust")); /* XXX */ |
699 |
set_menu_text (menu, ID_KEYMISC_COPY, _("&Copy\tCtrl+C")); |
set_menu_text (menu, ID_KEYMISC_COPY, _("&Copy\tCtrl+C")); |
722 |
set_menu_text (menu, ID_KEYMISC_REFRESH_KEYS, _("Refresh &Keys (Keyserver)")); |
set_menu_text (menu, ID_KEYMISC_REFRESH_KEYS, _("Refresh &Keys (Keyserver)")); |
723 |
set_menu_text (menu, ID_KEYMISC_INFO, _("Info") ); |
set_menu_text (menu, ID_KEYMISC_INFO, _("Info") ); |
724 |
set_menu_text (menu, ID_KEYMISC_HELP, _("&Help")); |
set_menu_text (menu, ID_KEYMISC_HELP, _("&Help")); |
725 |
|
|
|
#endif |
|
726 |
SetMenu (dlg, menu); |
SetMenu (dlg, menu); |
727 |
if( keyring_check_last_access() ) |
if( keyring_check_last_access() ) |
728 |
keycache_set_reload( 1 ); |
keycache_set_reload( 1 ); |
783 |
set_reg_entry (HKEY_CURRENT_USER, "Software\\WinPT", "KM_Pos_Y", buf); |
set_reg_entry (HKEY_CURRENT_USER, "Software\\WinPT", "KM_Pos_Y", buf); |
784 |
/* Remove runtime information. This should be the last action taken here. */ |
/* Remove runtime information. This should be the last action taken here. */ |
785 |
delete kmi; kmi = NULL; |
delete kmi; kmi = NULL; |
786 |
SetWindowLong (dlg, GWL_USERDATA, NULL); |
SetWindowLong (dlg, GWL_USERDATA, 0); |
787 |
keycache_set_reload (refresh_keys); |
keycache_set_reload (refresh_keys); |
788 |
return FALSE; |
return FALSE; |
789 |
|
|
900 |
GetCursorPos (&p); |
GetCursorPos (&p); |
901 |
hm = LoadMenu (glob_hinst, MAKEINTRESOURCE (IDR_WINPT_KEYMISC_CTX)); |
hm = LoadMenu (glob_hinst, MAKEINTRESOURCE (IDR_WINPT_KEYMISC_CTX)); |
902 |
popup = GetSubMenu (hm, 0); |
popup = GetSubMenu (hm, 0); |
903 |
#ifndef LANG_DE |
|
904 |
set_menu_text (popup, ID_KEYCTX_UID_COPY, _("Copy User ID to Clipboard")); |
set_menu_text (popup, ID_KEYCTX_UID_COPY, _("Copy User ID to Clipboard")); |
905 |
set_menu_text (popup, ID_KEYCTX_KEYID_COPY, _("Copy Key ID to Clipboard")); |
set_menu_text (popup, ID_KEYCTX_KEYID_COPY, _("Copy Key ID to Clipboard")); |
906 |
set_menu_text (popup, ID_KEYCTX_FPR_COPY, _("Copy Fingerprint to Clipboard")); |
set_menu_text (popup, ID_KEYCTX_FPR_COPY, _("Copy Fingerprint to Clipboard")); |
925 |
set_menu_text_bypos (popup, 0, _("Key Attributes")); |
set_menu_text_bypos (popup, 0, _("Key Attributes")); |
926 |
set_menu_text_bypos (popup, 6, _("Add")); |
set_menu_text_bypos (popup, 6, _("Add")); |
927 |
set_menu_text_bypos (popup, 19, _("Send to Keyserver")); |
set_menu_text_bypos (popup, 19, _("Send to Keyserver")); |
928 |
#endif |
|
929 |
|
set_menu_text (popup, ID_KEYCTX_ADDKEY, _("Key...")); |
930 |
|
set_menu_text (popup, ID_KEYCTX_ADDUID, _("User ID...")); |
931 |
|
set_menu_text (popup, ID_KEYCTX_ADDPHOTO, _("Photo ID...")); |
932 |
|
set_menu_text (popup, ID_KEYCTX_ADDREV, _("Revoker...")); |
933 |
|
|
934 |
idx = listview_get_curr_pos (kmi->lv); |
idx = listview_get_curr_pos (kmi->lv); |
935 |
if (km_check_for_seckey (kmi->lv, idx, &i)) |
if (km_check_for_seckey (kmi->lv, idx, &i)) |
936 |
set_menu_state (popup, ID_KEYCTX_SETDEFKEY, MF_ENABLED); |
set_menu_state (popup, ID_KEYCTX_SETDEFKEY, MF_ENABLED); |
1232 |
return TRUE; |
return TRUE; |
1233 |
} |
} |
1234 |
dialog_box_param( glob_hinst, (LPCSTR)IDD_WINPT_CARD_KEYGEN, dlg, |
dialog_box_param( glob_hinst, (LPCSTR)IDD_WINPT_CARD_KEYGEN, dlg, |
1235 |
card_keygen_dlg_proc, NULL, _("Card Key Generation"), |
card_keygen_dlg_proc, 0, _("Card Key Generation"), |
1236 |
IDS_WINPT_CARD_KEYGEN ); |
IDS_WINPT_CARD_KEYGEN ); |
1237 |
/* XXX: use new code */ |
/* XXX: use new code */ |
1238 |
if( keycache_get_reload() ) |
if( keycache_get_reload() ) |
1250 |
|
|
1251 |
case ID_KEYMISC_SENDRECV: |
case ID_KEYMISC_SENDRECV: |
1252 |
dialog_box_param( glob_hinst, (LPCSTR)IDD_WINPT_KEYSERVER, dlg, |
dialog_box_param( glob_hinst, (LPCSTR)IDD_WINPT_KEYSERVER, dlg, |
1253 |
keyserver_dlg_proc, NULL, _("Keyserver Access"), |
keyserver_dlg_proc, 0, _("Keyserver Access"), |
1254 |
IDS_WINPT_KEYSERVER ); |
IDS_WINPT_KEYSERVER ); |
1255 |
return TRUE; |
return TRUE; |
1256 |
|
|
1257 |
case ID_KEYMISC_GPGPREFS: |
case ID_KEYMISC_GPGPREFS: |
1258 |
dialog_box_param( glob_hinst, (LPCSTR)IDD_WINPT_GPGPREFS, dlg, |
dialog_box_param( glob_hinst, (LPCSTR)IDD_WINPT_GPGPREFS, dlg, |
1259 |
gpgprefs_dlg_proc, NULL, _("GnuPG Preferences"), |
gpgprefs_dlg_proc, 0, _("GnuPG Preferences"), |
1260 |
IDS_WINPT_GPGPREFS ); |
IDS_WINPT_GPGPREFS ); |
1261 |
return TRUE; |
return TRUE; |
1262 |
|
|
1263 |
case ID_KEYMISC_GPGOPT: |
case ID_KEYMISC_GPGOPT: |
1264 |
dialog_box_param( glob_hinst, (LPCSTR)IDD_WINPT_GPGOPT, dlg, |
dialog_box_param( glob_hinst, (LPCSTR)IDD_WINPT_GPGOPT, dlg, |
1265 |
gpgopt_dlg_proc, NULL, _("GnuPG Options" ), |
gpgopt_dlg_proc, 0, _("GnuPG Options" ), |
1266 |
IDS_WINPT_GPGOPT ); |
IDS_WINPT_GPGOPT ); |
1267 |
return TRUE; |
return TRUE; |
1268 |
|
|
1269 |
case ID_KEYMISC_IMPORT: |
case ID_KEYMISC_IMPORT: |
1270 |
t = get_filename_dlg (dlg, FILE_OPEN, _("Choose Name of the Key File"), NULL, NULL); |
t = get_fileopen_dlg (dlg, _("Choose Name of the Key File"), NULL, NULL); |
1271 |
if (t) |
if (t) |
1272 |
km_file_import (dlg, t); |
km_file_import (dlg, t); |
1273 |
return TRUE; |
return TRUE; |
1291 |
listview_get_item_text (kmi->lv, idx, 1, keyid, DIM (keyid)-1); |
listview_get_item_text (kmi->lv, idx, 1, keyid, DIM (keyid)-1); |
1292 |
name = gen_export_filename (keyid, 0); |
name = gen_export_filename (keyid, 0); |
1293 |
} |
} |
1294 |
t = get_filename_dlg (dlg, FILE_SAVE, _("Choose Name for Key File"), NULL, name); |
t = get_filesave_dlg (dlg, _("Choose Name for Key File"), NULL, name); |
1295 |
free_if_alloc (name); |
free_if_alloc (name); |
1296 |
if (t == NULL) |
if (t == NULL) |
1297 |
return TRUE; |
return TRUE; |
1324 |
idx = listview_get_curr_pos( kmi->lv ); |
idx = listview_get_curr_pos( kmi->lv ); |
1325 |
listview_get_item_text( kmi->lv, idx, 1, keyid, sizeof (keyid)-8 ); |
listview_get_item_text( kmi->lv, idx, 1, keyid, sizeof (keyid)-8 ); |
1326 |
name = gen_export_filename (keyid, 1); |
name = gen_export_filename (keyid, 1); |
1327 |
t = get_filename_dlg (dlg, FILE_SAVE, _("Choose Name for Key File"), NULL, name); |
t = get_filesave_dlg (dlg, _("Choose Name for Key File"), NULL, name); |
1328 |
if (t != NULL) |
if (t != NULL) |
1329 |
km_privkey_export (dlg, kmi->lv, t); |
km_privkey_export (dlg, kmi->lv, t); |
1330 |
} |
} |
1331 |
break; |
return TRUE; |
1332 |
|
|
1333 |
case ID_KEYMISC_INFO: |
case ID_KEYMISC_INFO: |
1334 |
dialog_box_param( glob_hinst, (LPCSTR)IDD_WINPT_ABOUT, glob_hwnd, |
dialog_box_param( glob_hinst, (LPCSTR)IDD_WINPT_ABOUT, glob_hwnd, |
1335 |
about_winpt_dlg_proc, NULL, _("About WinPT"), |
about_winpt_dlg_proc, 0, _("About WinPT"), |
1336 |
IDS_WINPT_ABOUT ); |
IDS_WINPT_ABOUT ); |
1337 |
break; |
break; |
1338 |
|
|
1342 |
|
|
1343 |
case ID_KEYMISC_OT: |
case ID_KEYMISC_OT: |
1344 |
dialog_box_param( glob_hinst, (LPCTSTR)IDD_WINPT_OWNERTRUST, glob_hwnd, |
dialog_box_param( glob_hinst, (LPCTSTR)IDD_WINPT_OWNERTRUST, glob_hwnd, |
1345 |
ownertrust_dlg_proc, NULL, |
ownertrust_dlg_proc, 0, |
1346 |
_("Ownertrust"), IDS_WINPT_OWNERTRUST ); |
_("Ownertrust"), IDS_WINPT_OWNERTRUST ); |
1347 |
break; |
break; |
1348 |
|
|