mirror of
https://git.tartarus.org/simon/putty.git
synced 2025-01-25 01:02:24 +00:00
Add the About and Licence boxes to Pageant
[originally from svn r648]
This commit is contained in:
parent
bda15976a8
commit
31b58f3337
77
pageant.c
77
pageant.c
@ -24,6 +24,7 @@
|
|||||||
|
|
||||||
#define IDM_CLOSE 0x0010
|
#define IDM_CLOSE 0x0010
|
||||||
#define IDM_VIEWKEYS 0x0020
|
#define IDM_VIEWKEYS 0x0020
|
||||||
|
#define IDM_ABOUT 0x0030
|
||||||
|
|
||||||
#define APPNAME "Pageant"
|
#define APPNAME "Pageant"
|
||||||
|
|
||||||
@ -36,9 +37,12 @@
|
|||||||
#define SSH_AGENTC_ADD_RSA_IDENTITY 7
|
#define SSH_AGENTC_ADD_RSA_IDENTITY 7
|
||||||
#define SSH_AGENTC_REMOVE_RSA_IDENTITY 8
|
#define SSH_AGENTC_REMOVE_RSA_IDENTITY 8
|
||||||
|
|
||||||
|
extern char ver[];
|
||||||
|
|
||||||
HINSTANCE instance;
|
HINSTANCE instance;
|
||||||
HWND hwnd;
|
HWND hwnd;
|
||||||
HWND keylist;
|
HWND keylist;
|
||||||
|
HWND aboutbox;
|
||||||
HMENU systray_menu;
|
HMENU systray_menu;
|
||||||
|
|
||||||
tree234 *rsakeys;
|
tree234 *rsakeys;
|
||||||
@ -90,6 +94,59 @@ struct PassphraseProcStruct {
|
|||||||
char *comment;
|
char *comment;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Dialog-box function for the Licence box.
|
||||||
|
*/
|
||||||
|
static int CALLBACK LicenceProc (HWND hwnd, UINT msg,
|
||||||
|
WPARAM wParam, LPARAM lParam) {
|
||||||
|
switch (msg) {
|
||||||
|
case WM_INITDIALOG:
|
||||||
|
return 1;
|
||||||
|
case WM_COMMAND:
|
||||||
|
switch (LOWORD(wParam)) {
|
||||||
|
case IDOK:
|
||||||
|
EndDialog(hwnd, 1);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
case WM_CLOSE:
|
||||||
|
EndDialog(hwnd, 1);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Dialog-box function for the About box.
|
||||||
|
*/
|
||||||
|
static int CALLBACK AboutProc (HWND hwnd, UINT msg,
|
||||||
|
WPARAM wParam, LPARAM lParam) {
|
||||||
|
switch (msg) {
|
||||||
|
case WM_INITDIALOG:
|
||||||
|
SetDlgItemText (hwnd, 100, ver);
|
||||||
|
return 1;
|
||||||
|
case WM_COMMAND:
|
||||||
|
switch (LOWORD(wParam)) {
|
||||||
|
case IDOK:
|
||||||
|
aboutbox = NULL;
|
||||||
|
DestroyWindow (hwnd);
|
||||||
|
return 0;
|
||||||
|
case 101:
|
||||||
|
EnableWindow(hwnd, 0);
|
||||||
|
DialogBox (instance, MAKEINTRESOURCE(214), NULL, LicenceProc);
|
||||||
|
EnableWindow(hwnd, 1);
|
||||||
|
SetActiveWindow(hwnd);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
case WM_CLOSE:
|
||||||
|
aboutbox = NULL;
|
||||||
|
DestroyWindow (hwnd);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Dialog-box function for the passphrase box.
|
* Dialog-box function for the passphrase box.
|
||||||
*/
|
*/
|
||||||
@ -192,7 +249,7 @@ void add_keyfile(char *filename) {
|
|||||||
} while (ret == -1);
|
} while (ret == -1);
|
||||||
if (comment) free(comment);
|
if (comment) free(comment);
|
||||||
if (ret == 0) {
|
if (ret == 0) {
|
||||||
MessageBox(NULL, "Couldn't load public key.", APPNAME,
|
MessageBox(NULL, "Couldn't load private key.", APPNAME,
|
||||||
MB_OK | MB_ICONERROR);
|
MB_OK | MB_ICONERROR);
|
||||||
free(key);
|
free(key);
|
||||||
return;
|
return;
|
||||||
@ -453,7 +510,7 @@ static int CALLBACK KeyListProc(HWND hwnd, UINT msg,
|
|||||||
of.nMaxFile = sizeof(filename);
|
of.nMaxFile = sizeof(filename);
|
||||||
of.lpstrFileTitle = NULL;
|
of.lpstrFileTitle = NULL;
|
||||||
of.lpstrInitialDir = NULL;
|
of.lpstrInitialDir = NULL;
|
||||||
of.lpstrTitle = "Select Public Key File";
|
of.lpstrTitle = "Select Private Key File";
|
||||||
of.Flags = 0;
|
of.Flags = 0;
|
||||||
if (GetOpenFileName(&of)) {
|
if (GetOpenFileName(&of)) {
|
||||||
add_keyfile(filename);
|
add_keyfile(filename);
|
||||||
@ -534,6 +591,20 @@ static LRESULT CALLBACK WndProc (HWND hwnd, UINT message,
|
|||||||
SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW);
|
SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case IDM_ABOUT:
|
||||||
|
if (!aboutbox) {
|
||||||
|
aboutbox = CreateDialog (instance, MAKEINTRESOURCE(213),
|
||||||
|
NULL, AboutProc);
|
||||||
|
ShowWindow (aboutbox, SW_SHOWNORMAL);
|
||||||
|
/*
|
||||||
|
* Sometimes the window comes up minimised / hidden
|
||||||
|
* for no obvious reason. Prevent this.
|
||||||
|
*/
|
||||||
|
SetForegroundWindow(aboutbox);
|
||||||
|
SetWindowPos (aboutbox, HWND_TOP, 0, 0, 0, 0,
|
||||||
|
SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW);
|
||||||
|
}
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case WM_DESTROY:
|
case WM_DESTROY:
|
||||||
@ -717,7 +788,9 @@ int WINAPI WinMain(HINSTANCE inst, HINSTANCE prev, LPSTR cmdline, int show) {
|
|||||||
DestroyIcon(hicon);
|
DestroyIcon(hicon);
|
||||||
|
|
||||||
systray_menu = CreatePopupMenu();
|
systray_menu = CreatePopupMenu();
|
||||||
|
/* accelerators used: vxa */
|
||||||
AppendMenu (systray_menu, MF_ENABLED, IDM_VIEWKEYS, "&View Keys");
|
AppendMenu (systray_menu, MF_ENABLED, IDM_VIEWKEYS, "&View Keys");
|
||||||
|
AppendMenu (systray_menu, MF_ENABLED, IDM_ABOUT, "&About");
|
||||||
AppendMenu (systray_menu, MF_ENABLED, IDM_CLOSE, "E&xit");
|
AppendMenu (systray_menu, MF_ENABLED, IDM_CLOSE, "E&xit");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
48
pageant.rc
48
pageant.rc
@ -29,3 +29,51 @@ BEGIN
|
|||||||
PUSHBUTTON "&Remove Key", 102, 180, 162, 60, 14
|
PUSHBUTTON "&Remove Key", 102, 180, 162, 60, 14
|
||||||
DEFPUSHBUTTON "&Close", IDOK, 240, 182, 50, 14
|
DEFPUSHBUTTON "&Close", IDOK, 240, 182, 50, 14
|
||||||
END
|
END
|
||||||
|
|
||||||
|
/* Accelerators used: cl */
|
||||||
|
213 DIALOG DISCARDABLE 140, 40, 136, 70
|
||||||
|
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||||
|
CAPTION "About Pageant"
|
||||||
|
FONT 8, "MS Sans Serif"
|
||||||
|
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-2000 Simon Tatham. All rights reserved.",
|
||||||
|
103, 10, 34, 120, 16
|
||||||
|
END
|
||||||
|
|
||||||
|
/* No accelerators used */
|
||||||
|
214 DIALOG DISCARDABLE 50, 50, 226, 223
|
||||||
|
STYLE DS_MODALFRAME | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||||
|
CAPTION "Pageant Licence"
|
||||||
|
FONT 8, "MS Sans Serif"
|
||||||
|
BEGIN
|
||||||
|
DEFPUSHBUTTON "OK", IDOK, 98, 203, 44, 14
|
||||||
|
|
||||||
|
LTEXT "Copyright \251 1997-2000 Simon Tatham", 1000, 10, 10, 206, 8
|
||||||
|
|
||||||
|
LTEXT "Permission is hereby granted, free of charge, to any person", 1002, 10, 26, 206, 8
|
||||||
|
LTEXT "obtaining a copy of this software and associated documentation", 1003, 10, 34, 206, 8
|
||||||
|
LTEXT "files (the ""Software""), to deal in the Software without restriction,", 1004, 10, 42, 206, 8
|
||||||
|
LTEXT "including without limitation the rights to use, copy, modify, merge,", 1005, 10, 50, 206, 8
|
||||||
|
LTEXT "publish, distribute, sublicense, and/or sell copies of the Software,", 1006, 10, 58, 206, 8
|
||||||
|
LTEXT "and to permit persons to whom the Software is furnished to do so,", 1007, 10, 66, 206, 8
|
||||||
|
LTEXT "subject to the following conditions:", 1008, 10, 74, 206, 8
|
||||||
|
|
||||||
|
LTEXT "The above copyright notice and this permission notice shall be", 1010, 10, 90, 206, 8
|
||||||
|
LTEXT "included in all copies or substantial portions of the Software.", 1011, 10, 98, 206, 8
|
||||||
|
|
||||||
|
LTEXT "THE SOFTWARE IS PROVIDED ""AS IS"", WITHOUT", 1013, 10, 114, 206, 8
|
||||||
|
LTEXT "WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,", 1014, 10, 122, 206, 8
|
||||||
|
LTEXT "INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF", 1015, 10, 130, 206, 8
|
||||||
|
LTEXT "MERCHANTABILITY, FITNESS FOR A PARTICULAR", 1016, 10, 138, 206, 8
|
||||||
|
LTEXT "PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL", 1017, 10, 146, 206, 8
|
||||||
|
LTEXT "SIMON TATHAM BE LIABLE FOR ANY CLAIM, DAMAGES OR", 1018, 10, 154, 206, 8
|
||||||
|
LTEXT "OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,", 1019, 10, 162, 206, 8
|
||||||
|
LTEXT "TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN", 1020, 10, 170, 206, 8
|
||||||
|
LTEXT "CONNECTION WITH THE SOFTWARE OR THE USE OR", 1021, 10, 178, 206, 8
|
||||||
|
LTEXT "OTHER DEALINGS IN THE SOFTWARE.", 1022, 10, 186, 206, 8
|
||||||
|
|
||||||
|
END
|
||||||
|
Loading…
Reference in New Issue
Block a user