mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-25 01:02:24 +00:00
3e7274fdad
The main key list control in the Pageant window was previously an ordinary LBS_HASSTRINGS list box, with tab characters aligning the various parts of the key information into different columns. This was fragile because any mistake in the font metrics could have overflowed a tab stop and forced the text to move on to the next one. Now I've switched the list box into LBS_OWNERDRAWFIXED mode, which means that in place of a string for each list item I store a struct of my choice, and I have to draw the list-box entries myself by responding to WM_DRAWITEM. So now I'm drawing each component of the key information as a separate call to ExtTextOut (plus one TabbedTextOut to put the '(encrypted)' suffix on the end), which means that the tab stops are now guaranteed to appear where I tell them to. No functional change, for the moment: this is pure refactoring. As closely as I can tell, the appearance of the list box is pixel-for-pixel what it was before this commit. But it opens the door for two further improvements (neither one done in this commit): I can dynamically choose the tab stop locations based on querying the text metrics of the strings that will actually need to fit in the columns, and also, whatever reorganisation I need to do to make certificates fit sensibly in this list box can now be done without worrying about breaking anything terribly fragile.
96 lines
3.3 KiB
Plaintext
96 lines
3.3 KiB
Plaintext
/*
|
|
* Windows resources for Pageant.
|
|
*/
|
|
|
|
#include "rcstuff.h"
|
|
|
|
#define APPNAME "Pageant"
|
|
#define APPDESC "PuTTY SSH authentication agent"
|
|
|
|
#include "pageant-rc.h"
|
|
|
|
#include "help.rc2"
|
|
|
|
IDI_MAINICON ICON "pageant.ico"
|
|
IDI_TRAYICON ICON "pageants.ico"
|
|
|
|
IDD_LOAD_PASSPHRASE DIALOG DISCARDABLE 0, 0, 140, 60
|
|
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
|
CAPTION "Pageant: Loading Encrypted Key"
|
|
FONT 8, "MS Shell Dlg"
|
|
BEGIN
|
|
CTEXT "Enter passphrase to load key", IDC_PASSPHRASE_STATIC1, 10, 6, 120, 8
|
|
CTEXT "", IDC_PASSPHRASE_FINGERPRINT, 10, 16, 120, 8
|
|
EDITTEXT IDC_PASSPHRASE_EDITBOX, 10, 26, 120, 12,
|
|
ES_PASSWORD | ES_AUTOHSCROLL
|
|
DEFPUSHBUTTON "O&K", IDOK, 20, 42, 40, 14
|
|
PUSHBUTTON "&Cancel", IDCANCEL, 80, 42, 40, 14
|
|
END
|
|
|
|
IDD_ONDEMAND_PASSPHRASE DIALOG DISCARDABLE 0, 0, 250, 78
|
|
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
|
CAPTION "Pageant: Decrypting Stored Key"
|
|
FONT 8, "MS Shell Dlg"
|
|
BEGIN
|
|
CTEXT "A client of Pageant wants to use the following encrypted key:",
|
|
IDC_PASSPHRASE_STATIC1, 10, 6, 230, 8
|
|
CTEXT "", IDC_PASSPHRASE_FINGERPRINT, 10, 16, 230, 8
|
|
CTEXT "If you intended this, click in this box to make sure it has",
|
|
IDC_PASSPHRASE_STATIC2, 10, 26, 230, 8
|
|
CTEXT "input focus, then enter the passphrase to decrypt the key.",
|
|
IDC_PASSPHRASE_STATIC3, 10, 34, 230, 8
|
|
EDITTEXT IDC_PASSPHRASE_EDITBOX, 10, 44, 230, 12,
|
|
ES_PASSWORD | ES_AUTOHSCROLL
|
|
DEFPUSHBUTTON "O&K", IDOK, 45, 60, 40, 14
|
|
PUSHBUTTON "&Cancel", IDCANCEL, 105, 60, 40, 14
|
|
PUSHBUTTON "&Help", IDHELP, 165, 60, 50, 14
|
|
END
|
|
|
|
IDD_KEYLIST DIALOG DISCARDABLE 0, 0, 450, 236
|
|
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
|
CAPTION "Pageant Key List"
|
|
FONT 8, "MS Shell Dlg"
|
|
BEGIN
|
|
LISTBOX IDC_KEYLIST_LISTBOX, 10, 10, 420, 155,
|
|
LBS_EXTENDEDSEL | LBS_OWNERDRAWFIXED | WS_VSCROLL | WS_TABSTOP
|
|
PUSHBUTTON "&Add Key", IDC_KEYLIST_ADDKEY, 10, 187, 60, 14
|
|
PUSHBUTTON "Add Key (&encrypted)", IDC_KEYLIST_ADDKEY_ENC, 75, 187, 80, 14
|
|
PUSHBUTTON "Re-e&ncrypt", IDC_KEYLIST_REENCRYPT, 315, 187, 60, 14
|
|
PUSHBUTTON "&Remove", IDC_KEYLIST_REMOVE, 380, 187, 60, 14
|
|
PUSHBUTTON "&Help", IDC_KEYLIST_HELP, 10, 212, 50, 14
|
|
DEFPUSHBUTTON "&Close", IDOK, 390, 212, 50, 14
|
|
LTEXT "&Fingerprint type:", IDC_KEYLIST_FPTYPE_STATIC, 10, 172, 60, 8
|
|
COMBOBOX IDC_KEYLIST_FPTYPE, 70, 170, 60, 12, CBS_DROPDOWNLIST
|
|
END
|
|
|
|
/* Accelerators used: cl */
|
|
IDD_ABOUT DIALOG DISCARDABLE 140, 40, 270, 136
|
|
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
|
CAPTION "About Pageant"
|
|
FONT 8, "MS Shell Dlg"
|
|
BEGIN
|
|
DEFPUSHBUTTON "&Close", IDOK, 216, 118, 48, 14
|
|
PUSHBUTTON "View &Licence", IDC_ABOUT_LICENCE, 6, 118, 70, 14
|
|
PUSHBUTTON "Visit &Web Site", IDC_ABOUT_WEBSITE, 140, 118, 70, 14
|
|
EDITTEXT IDC_ABOUT_TEXTBOX, 10, 6, 250, 110,
|
|
ES_READONLY | ES_MULTILINE | ES_CENTER, WS_EX_STATICEDGE
|
|
END
|
|
|
|
/* No accelerators used */
|
|
IDD_LICENCE DIALOG DISCARDABLE 50, 50, 326, 239
|
|
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
|
CAPTION "PuTTY Licence"
|
|
FONT 8, "MS Shell Dlg"
|
|
BEGIN
|
|
DEFPUSHBUTTON "OK", IDOK, 148, 219, 44, 14
|
|
|
|
EDITTEXT IDC_LICENCE_TEXTBOX, 10, 10, 306, 200,
|
|
ES_READONLY | ES_MULTILINE | ES_LEFT, WS_EX_STATICEDGE
|
|
END
|
|
|
|
#include "version.rc2"
|
|
|
|
#ifndef NO_MANIFESTS
|
|
1 RT_MANIFEST "pageant.mft"
|
|
#endif /* NO_MANIFESTS */
|