1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-25 01:02:24 +00:00
putty-source/windows/pageant.rc
Simon Tatham 3e7274fdad Windows Pageant: use an owner-drawn list box for the key list.
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.
2022-08-01 19:40:24 +01:00

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 */