Use readonly edit controls in some Windows dialogs.

This makes the About and Licence boxes copy-and-pasteable, similarly
to what I've just done on Unix.

(But unlike on the Unix side, here I haven't touched the host key
prompt dialog, because that's a standard Windows MessageBox and not
easy to mess around with. Plus, in any case, you can already hit ^C to
copy the whole text out of a MessageBox. Same goes for the PGP
fingerprints dialog.)

As a side effect, several copies of the copyright notice and licence
text have moved from .rc files into C source. I've updated
CHECKLST.txt, but they won't stay there for long.
This commit is contained in:
Simon Tatham 2015-12-22 10:18:48 +00:00
Родитель 21101c7397
Коммит 2eb952ca31
8 изменённых файлов: 144 добавлений и 131 удалений

Просмотреть файл

@ -13,15 +13,15 @@ The LICENCE file in the main source distribution:
- putty/LICENCE
The resource files:
The various About and Licence boxes:
- putty/windows/pageant.rc
- putty/windows/winpgnt.c
+ the copyright date appears twice, once in the About box and
once in the Licence box. Don't forget to change both!
- putty/windows/puttygen.rc
- putty/windows/winpgen.c
+ the copyright date appears twice, once in the About box and
once in the Licence box. Don't forget to change both!
- putty/windows/win_res.rc2
- putty/windows/windlg.c
+ the copyright date appears twice, once in the About box and
once in the Licence box. Don't forget to change both!
- putty/windows/version.rc2

Просмотреть файл

@ -36,57 +36,25 @@ BEGIN
END
/* Accelerators used: cl */
213 DIALOG DISCARDABLE 140, 40, 136, 70
213 DIALOG DISCARDABLE 140, 40, 214, 74
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "About Pageant"
FONT 8, "MS Shell Dlg"
BEGIN
DEFPUSHBUTTON "&Close", IDOK, 82, 52, 48, 14
PUSHBUTTON "View &Licence", 101, 6, 52, 70, 14
CTEXT "Pageant", 102, 10, 6, 120, 8
CTEXT "", 100, 10, 16, 120, 16
CTEXT "\251 1997-2015 Simon Tatham. All rights reserved.",
103, 10, 34, 120, 16
DEFPUSHBUTTON "&Close", IDOK, 160, 56, 48, 14
PUSHBUTTON "View &Licence", 101, 6, 56, 70, 14
EDITTEXT 1000, 10, 6, 194, 48, ES_READONLY | ES_MULTILINE | ES_CENTER, WS_EX_STATICEDGE
END
/* No accelerators used */
214 DIALOG DISCARDABLE 50, 50, 226, 271
214 DIALOG DISCARDABLE 50, 50, 326, 231
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "PuTTY Licence"
FONT 8, "MS Shell Dlg"
BEGIN
DEFPUSHBUTTON "OK", IDOK, 98, 251, 44, 14
LTEXT "Copyright \251 1997-2015 Simon Tatham", 1000, 10, 10, 206, 8
LTEXT "Portions copyright Robert de Bath, Joris van Rantwijk, Delian", 1001, 10, 26, 206, 8
LTEXT "Delchev, Andreas Schultz, Jeroen Massar, Wez Furlong, Nicolas", 1002, 10, 34, 206, 8
LTEXT "Barry, Justin Bradford, Ben Harris, Malcolm Smith, Ahmad Khalifa,", 1003, 10, 42, 206, 8
LTEXT "Markus Kuhn, Colin Watson, Christopher Staite, and CORE SDI", 1004, 10, 50, 206, 8
LTEXT "S.A.", 1005, 10, 58, 206, 8
LTEXT "Permission is hereby granted, free of charge, to any person", 1006, 10, 74, 206, 8
LTEXT "obtaining a copy of this software and associated documentation", 1007, 10, 82, 206, 8
LTEXT "files (the ""Software""), to deal in the Software without restriction,", 1008, 10, 90, 206, 8
LTEXT "including without limitation the rights to use, copy, modify, merge,", 1009, 10, 98, 206, 8
LTEXT "publish, distribute, sublicense, and/or sell copies of the Software,", 1010, 10, 106, 206, 8
LTEXT "and to permit persons to whom the Software is furnished to do so,", 1011, 10, 114, 206, 8
LTEXT "subject to the following conditions:", 1012, 10, 122, 206, 8
LTEXT "The above copyright notice and this permission notice shall be", 1013, 10, 138, 206, 8
LTEXT "included in all copies or substantial portions of the Software.", 1014, 10, 146, 206, 8
LTEXT "THE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT", 1015, 10, 162, 206, 8
LTEXT "WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,", 1016, 10, 170, 206, 8
LTEXT "INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF", 1017, 10, 178, 206, 8
LTEXT "MERCHANTABILITY, FITNESS FOR A PARTICULAR", 1018, 10, 186, 206, 8
LTEXT "PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE", 1019, 10, 194, 206, 8
LTEXT "COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES", 1020, 10, 202, 206, 8
LTEXT "OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,", 1021, 10, 210, 206, 8
LTEXT "TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN", 1022, 10, 218, 206, 8
LTEXT "CONNECTION WITH THE SOFTWARE OR THE USE OR", 1023, 10, 226, 206, 8
LTEXT "OTHER DEALINGS IN THE SOFTWARE.", 1024, 10, 234, 206, 8
DEFPUSHBUTTON "OK", IDOK, 148, 211, 44, 14
EDITTEXT 1000, 10, 10, 306, 192, ES_READONLY | ES_MULTILINE | ES_LEFT, WS_EX_STATICEDGE
END
#include "version.rc2"

Просмотреть файл

@ -29,57 +29,25 @@ BEGIN
END
/* Accelerators used: cl */
213 DIALOG DISCARDABLE 140, 40, 136, 70
213 DIALOG DISCARDABLE 140, 40, 214, 74
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "About PuTTYgen"
FONT 8, "MS Shell Dlg"
BEGIN
DEFPUSHBUTTON "&Close", IDOK, 82, 52, 48, 14
PUSHBUTTON "View &Licence", 101, 6, 52, 70, 14
CTEXT "PuTTYgen", 102, 10, 6, 120, 8
CTEXT "", 100, 10, 16, 120, 16
CTEXT "\251 1997-2015 Simon Tatham. All rights reserved.",
103, 10, 34, 120, 16
DEFPUSHBUTTON "&Close", IDOK, 160, 56, 48, 14
PUSHBUTTON "View &Licence", 101, 6, 56, 70, 14
EDITTEXT 1000, 10, 6, 194, 48, ES_READONLY | ES_MULTILINE | ES_CENTER, WS_EX_STATICEDGE
END
/* No accelerators used */
214 DIALOG DISCARDABLE 50, 50, 226, 271
214 DIALOG DISCARDABLE 50, 50, 326, 231
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "PuTTY Licence"
FONT 8, "MS Shell Dlg"
BEGIN
DEFPUSHBUTTON "OK", IDOK, 98, 251, 44, 14
LTEXT "Copyright \251 1997-2015 Simon Tatham", 1000, 10, 10, 206, 8
LTEXT "Portions copyright Robert de Bath, Joris van Rantwijk, Delian", 1001, 10, 26, 206, 8
LTEXT "Delchev, Andreas Schultz, Jeroen Massar, Wez Furlong, Nicolas", 1002, 10, 34, 206, 8
LTEXT "Barry, Justin Bradford, Ben Harris, Malcolm Smith, Ahmad Khalifa,", 1003, 10, 42, 206, 8
LTEXT "Markus Kuhn, Colin Watson, Christopher Staite, and CORE SDI", 1004, 10, 50, 206, 8
LTEXT "S.A.", 1005, 10, 58, 206, 8
LTEXT "Permission is hereby granted, free of charge, to any person", 1006, 10, 74, 206, 8
LTEXT "obtaining a copy of this software and associated documentation", 1007, 10, 82, 206, 8
LTEXT "files (the ""Software""), to deal in the Software without restriction,", 1008, 10, 90, 206, 8
LTEXT "including without limitation the rights to use, copy, modify, merge,", 1009, 10, 98, 206, 8
LTEXT "publish, distribute, sublicense, and/or sell copies of the Software,", 1010, 10, 106, 206, 8
LTEXT "and to permit persons to whom the Software is furnished to do so,", 1011, 10, 114, 206, 8
LTEXT "subject to the following conditions:", 1012, 10, 122, 206, 8
LTEXT "The above copyright notice and this permission notice shall be", 1013, 10, 138, 206, 8
LTEXT "included in all copies or substantial portions of the Software.", 1014, 10, 146, 206, 8
LTEXT "THE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT", 1015, 10, 162, 206, 8
LTEXT "WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,", 1016, 10, 170, 206, 8
LTEXT "INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF", 1017, 10, 178, 206, 8
LTEXT "MERCHANTABILITY, FITNESS FOR A PARTICULAR", 1018, 10, 186, 206, 8
LTEXT "PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE", 1019, 10, 194, 206, 8
LTEXT "COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES", 1020, 10, 202, 206, 8
LTEXT "OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,", 1021, 10, 210, 206, 8
LTEXT "TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN", 1022, 10, 218, 206, 8
LTEXT "CONNECTION WITH THE SOFTWARE OR THE USE OR", 1023, 10, 226, 206, 8
LTEXT "OTHER DEALINGS IN THE SOFTWARE.", 1024, 10, 234, 206, 8
DEFPUSHBUTTON "OK", IDOK, 148, 211, 44, 14
EDITTEXT 1000, 10, 10, 306, 192, ES_READONLY | ES_MULTILINE | ES_LEFT, WS_EX_STATICEDGE
END
#include "version.rc2"

Просмотреть файл

@ -18,11 +18,9 @@
#define IDN_COPY 1002
#define IDA_ICON 1001
#define IDA_TEXT1 1002
#define IDA_VERSION 1003
#define IDA_TEXT2 1004
#define IDA_LICENCE 1005
#define IDA_WEB 1006
#define IDA_TEXT 1002
#define IDA_LICENCE 1003
#define IDA_WEB 1004
#define IDC_TAB 1001
#define IDC_TABSTATIC1 1002

Просмотреть файл

@ -16,18 +16,15 @@ IDI_MAINICON ICON "putty.ico"
IDI_CFGICON ICON "puttycfg.ico"
/* Accelerators used: clw */
IDD_ABOUTBOX DIALOG DISCARDABLE 140, 40, 214, 70
IDD_ABOUTBOX DIALOG DISCARDABLE 140, 40, 214, 74
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "About PuTTY"
FONT 8, "MS Shell Dlg"
BEGIN
DEFPUSHBUTTON "&Close", IDOK, 160, 52, 48, 14
PUSHBUTTON "View &Licence", IDA_LICENCE, 6, 52, 70, 14
PUSHBUTTON "Visit &Web Site", IDA_WEB, 84, 52, 70, 14
CTEXT "PuTTY", IDA_TEXT1, 10, 6, 194, 8
CTEXT "", IDA_VERSION, 10, 16, 194, 16
CTEXT "\251 1997-2015 Simon Tatham. All rights reserved.",
IDA_TEXT2, 10, 34, 194, 16
DEFPUSHBUTTON "&Close", IDOK, 160, 56, 48, 14
PUSHBUTTON "View &Licence", IDA_LICENCE, 6, 56, 70, 14
PUSHBUTTON "Visit &Web Site", IDA_WEB, 84, 56, 70, 14
EDITTEXT IDA_TEXT, 10, 6, 194, 48, ES_READONLY | ES_MULTILINE | ES_CENTER, WS_EX_STATICEDGE
END
/* Accelerators used: aco */
@ -51,43 +48,14 @@ BEGIN
END
/* No accelerators used */
IDD_LICENCEBOX DIALOG DISCARDABLE 50, 50, 226, 271
IDD_LICENCEBOX DIALOG DISCARDABLE 50, 50, 326, 231
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
CAPTION "PuTTY Licence"
FONT 8, "MS Shell Dlg"
BEGIN
DEFPUSHBUTTON "OK", IDOK, 98, 251, 44, 14
LTEXT "Copyright \251 1997-2015 Simon Tatham", 1000, 10, 10, 206, 8
LTEXT "Portions copyright Robert de Bath, Joris van Rantwijk, Delian", 1001, 10, 26, 206, 8
LTEXT "Delchev, Andreas Schultz, Jeroen Massar, Wez Furlong, Nicolas", 1002, 10, 34, 206, 8
LTEXT "Barry, Justin Bradford, Ben Harris, Malcolm Smith, Ahmad Khalifa,", 1003, 10, 42, 206, 8
LTEXT "Markus Kuhn, Colin Watson, Christopher Staite, and CORE SDI", 1004, 10, 50, 206, 8
LTEXT "S.A.", 1005, 10, 58, 206, 8
LTEXT "Permission is hereby granted, free of charge, to any person", 1006, 10, 74, 206, 8
LTEXT "obtaining a copy of this software and associated documentation", 1007, 10, 82, 206, 8
LTEXT "files (the ""Software""), to deal in the Software without restriction,", 1008, 10, 90, 206, 8
LTEXT "including without limitation the rights to use, copy, modify, merge,", 1009, 10, 98, 206, 8
LTEXT "publish, distribute, sublicense, and/or sell copies of the Software,", 1010, 10, 106, 206, 8
LTEXT "and to permit persons to whom the Software is furnished to do so,", 1011, 10, 114, 206, 8
LTEXT "subject to the following conditions:", 1012, 10, 122, 206, 8
LTEXT "The above copyright notice and this permission notice shall be", 1013, 10, 138, 206, 8
LTEXT "included in all copies or substantial portions of the Software.", 1014, 10, 146, 206, 8
LTEXT "THE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT", 1015, 10, 162, 206, 8
LTEXT "WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,", 1016, 10, 170, 206, 8
LTEXT "INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF", 1017, 10, 178, 206, 8
LTEXT "MERCHANTABILITY, FITNESS FOR A PARTICULAR", 1018, 10, 186, 206, 8
LTEXT "PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE", 1019, 10, 194, 206, 8
LTEXT "COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES", 1020, 10, 202, 206, 8
LTEXT "OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,", 1021, 10, 210, 206, 8
LTEXT "TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN", 1022, 10, 218, 206, 8
LTEXT "CONNECTION WITH THE SOFTWARE OR THE USE OR", 1023, 10, 226, 206, 8
LTEXT "OTHER DEALINGS IN THE SOFTWARE.", 1024, 10, 234, 206, 8
DEFPUSHBUTTON "OK", IDOK, 148, 211, 44, 14
EDITTEXT IDA_TEXT, 10, 10, 306, 192, ES_READONLY | ES_MULTILINE | ES_LEFT, WS_EX_STATICEDGE
END
#include "version.rc2"

Просмотреть файл

@ -170,6 +170,37 @@ static int CALLBACK LicenceProc(HWND hwnd, UINT msg,
char *str = dupprintf("%s Licence", appname);
SetWindowText(hwnd, str);
sfree(str);
SetDlgItemText(hwnd, IDA_TEXT,
"Copyright 1997-2015 Simon Tatham.\r\n\r\n"
"Portions copyright Robert de Bath, Joris van Rantwijk, Delian "
"Delchev, Andreas Schultz, Jeroen Massar, Wez Furlong, Nicolas "
"Barry, Justin Bradford, Ben Harris, Malcolm Smith, Ahmad Khalifa, "
"Markus Kuhn, Colin Watson, Christopher Staite, and CORE SDI S.A.\r\n\r\n"
"Permission is hereby granted, free of charge, to any person "
"obtaining a copy of this software and associated documentation "
"files (the ""Software""), to deal in the Software without restriction, "
"including without limitation the rights to use, copy, modify, merge, "
"publish, distribute, sublicense, and/or sell copies of the Software, "
"and to permit persons to whom the Software is furnished to do so, "
"subject to the following conditions:\r\n\r\n"
"The above copyright notice and this permission notice shall be "
"included in all copies or substantial portions of the Software.\r\n\r\n"
"THE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT "
"WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, "
"INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF "
"MERCHANTABILITY, FITNESS FOR A PARTICULAR "
"PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE "
"COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES "
"OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, "
"TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN "
"CONNECTION WITH THE SOFTWARE OR THE USE OR "
"OTHER DEALINGS IN THE SOFTWARE."
);
}
return 1;
case WM_COMMAND:
@ -197,8 +228,14 @@ static int CALLBACK AboutProc(HWND hwnd, UINT msg,
str = dupprintf("About %s", appname);
SetWindowText(hwnd, str);
sfree(str);
SetDlgItemText(hwnd, IDA_TEXT1, appname);
SetDlgItemText(hwnd, IDA_VERSION, ver);
{
char *text = dupprintf
("%s\r\n\r\n%s\r\n\r\n%s",
appname, ver,
"\251 1997-2015 Simon Tatham. All rights reserved.");
SetDlgItemText(hwnd, IDA_TEXT, text);
sfree(text);
}
return 1;
case WM_COMMAND:
switch (LOWORD(wParam)) {

Просмотреть файл

@ -253,6 +253,36 @@ static INT_PTR CALLBACK LicenceProc(HWND hwnd, UINT msg,
rd.right - rd.left, rd.bottom - rd.top, TRUE);
}
SetDlgItemText(hwnd, 1000,
"Copyright 1997-2015 Simon Tatham.\r\n\r\n"
"Portions copyright Robert de Bath, Joris van Rantwijk, Delian "
"Delchev, Andreas Schultz, Jeroen Massar, Wez Furlong, Nicolas "
"Barry, Justin Bradford, Ben Harris, Malcolm Smith, Ahmad Khalifa, "
"Markus Kuhn, Colin Watson, Christopher Staite, and CORE SDI S.A.\r\n\r\n"
"Permission is hereby granted, free of charge, to any person "
"obtaining a copy of this software and associated documentation "
"files (the ""Software""), to deal in the Software without restriction, "
"including without limitation the rights to use, copy, modify, merge, "
"publish, distribute, sublicense, and/or sell copies of the Software, "
"and to permit persons to whom the Software is furnished to do so, "
"subject to the following conditions:\r\n\r\n"
"The above copyright notice and this permission notice shall be "
"included in all copies or substantial portions of the Software.\r\n\r\n"
"THE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT "
"WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, "
"INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF "
"MERCHANTABILITY, FITNESS FOR A PARTICULAR "
"PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE "
"COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES "
"OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, "
"TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN "
"CONNECTION WITH THE SOFTWARE OR THE USE OR "
"OTHER DEALINGS IN THE SOFTWARE."
);
return 1;
case WM_COMMAND:
switch (LOWORD(wParam)) {
@ -292,7 +322,14 @@ static INT_PTR CALLBACK AboutProc(HWND hwnd, UINT msg,
rd.right - rd.left, rd.bottom - rd.top, TRUE);
}
SetDlgItemText(hwnd, 100, ver);
{
char *text = dupprintf
("Pageant\r\n\r\n%s\r\n\r\n%s",
ver,
"\251 1997-2015 Simon Tatham. All rights reserved.");
SetDlgItemText(hwnd, 1000, text);
sfree(text);
}
return 1;
case WM_COMMAND:
switch (LOWORD(wParam)) {

Просмотреть файл

@ -125,6 +125,36 @@ static INT_PTR CALLBACK LicenceProc(HWND hwnd, UINT msg,
{
switch (msg) {
case WM_INITDIALOG:
SetDlgItemText(hwnd, 1000,
"Copyright 1997-2015 Simon Tatham.\r\n\r\n"
"Portions copyright Robert de Bath, Joris van Rantwijk, Delian "
"Delchev, Andreas Schultz, Jeroen Massar, Wez Furlong, Nicolas "
"Barry, Justin Bradford, Ben Harris, Malcolm Smith, Ahmad Khalifa, "
"Markus Kuhn, Colin Watson, Christopher Staite, and CORE SDI S.A.\r\n\r\n"
"Permission is hereby granted, free of charge, to any person "
"obtaining a copy of this software and associated documentation "
"files (the ""Software""), to deal in the Software without restriction, "
"including without limitation the rights to use, copy, modify, merge, "
"publish, distribute, sublicense, and/or sell copies of the Software, "
"and to permit persons to whom the Software is furnished to do so, "
"subject to the following conditions:\r\n\r\n"
"The above copyright notice and this permission notice shall be "
"included in all copies or substantial portions of the Software.\r\n\r\n"
"THE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT "
"WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, "
"INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF "
"MERCHANTABILITY, FITNESS FOR A PARTICULAR "
"PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE "
"COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES "
"OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, "
"TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN "
"CONNECTION WITH THE SOFTWARE OR THE USE OR "
"OTHER DEALINGS IN THE SOFTWARE."
);
return 1;
case WM_COMMAND:
switch (LOWORD(wParam)) {
@ -149,7 +179,14 @@ static INT_PTR CALLBACK AboutProc(HWND hwnd, UINT msg,
{
switch (msg) {
case WM_INITDIALOG:
SetDlgItemText(hwnd, 100, ver);
{
char *text = dupprintf
("Pageant\r\n\r\n%s\r\n\r\n%s",
ver,
"\251 1997-2015 Simon Tatham. All rights reserved.");
SetDlgItemText(hwnd, 1000, text);
sfree(text);
}
return 1;
case WM_COMMAND:
switch (LOWORD(wParam)) {