Revision: 7623 https://osdn.net/projects/ttssh2/scm/svn/commits/7623 Author: zmatsuo Date: 2019-04-26 01:36:57 +0900 (Fri, 26 Apr 2019) Log Message: ----------- ダイアログの面積を小さくするためいくつかのコントロールをドロップダウンメニューとして実装した Past Windows usenameボタン Past from clipboardボタン Clear clipboard after pasteチェックボックス Use control charactorチェックボックス Show passphraseチェックボックス Modified Paths: -------------- branches/ssh_auth_dialog/ttssh2/ttxssh/auth.c branches/ssh_auth_dialog/ttssh2/ttxssh/resource.h branches/ssh_auth_dialog/ttssh2/ttxssh/ttxssh.rc -------------- next part -------------- Modified: branches/ssh_auth_dialog/ttssh2/ttxssh/auth.c =================================================================== --- branches/ssh_auth_dialog/ttssh2/ttxssh/auth.c 2019-04-24 14:11:17 UTC (rev 7622) +++ branches/ssh_auth_dialog/ttssh2/ttxssh/auth.c 2019-04-25 16:36:57 UTC (rev 7623) @@ -82,6 +82,7 @@ -1, -1, -1, -1, -1, -1, -1, -1, -1, IDC_SSHUSEPAGEANT, -1 }; static BOOL UseControlChar = TRUE; +static BOOL ShowPassPhrase = FALSE; typedef struct { WNDPROC ProcOrg; @@ -177,7 +178,7 @@ EnableWindow(GetDlgItem(dlg, IDC_SSHPASSWORDCAPTION), (!TIS_enabled && !PAGEANT_enabled)); EnableWindow(GetDlgItem(dlg, IDC_SSHPASSWORD), (!TIS_enabled && !PAGEANT_enabled)); - EnableWindow(GetDlgItem(dlg, IDC_FROM_CLIPBOARD), (!TIS_enabled && !PAGEANT_enabled)); + EnableWindow(GetDlgItem(dlg, IDC_SSHPASSWORD_OPTION), (!TIS_enabled && !PAGEANT_enabled)); for (i = IDC_CHOOSERSAFILE; i <= IDC_RSAFILENAME; i++) { EnableWindow(GetDlgItem(dlg, i), RSA_enabled); @@ -255,12 +256,7 @@ { IDC_SSHAUTHBANNER, "DLG_AUTH_BANNER" }, { IDC_SSHAUTHBANNER2, "DLG_AUTH_BANNER2" }, { IDC_SSHUSERNAMELABEL, "DLG_AUTH_USERNAME" }, - { IDC_FROM_GETUSERNAME, "DLG_AUTH_PASTE_WINDOWS_USERNAME" }, { IDC_SSHPASSWORDCAPTION, "DLG_AUTH_PASSWORD" }, - { IDC_FROM_CLIPBOARD, "DLG_AUTH_PASTE_CLIPBOARD" }, - { IDC_CLEAR_CLIPBOARD, "DLG_AUTH_CLEAR_CLIPBOARD" }, - { IDC_USE_CONTROL_CHARACTER, "DLG_AUTH_USE_CONTORL_CHARACTERS" }, - { IDC_SHOW_PASSPHRASE, "DLG_AUTH_SHOW_PASSPHRASE" }, { IDC_REMEMBER_PASSWORD, "DLG_AUTH_REMEMBER_PASSWORD" }, { IDC_FORWARD_AGENT, "DLG_AUTH_FWDAGENT" }, { IDC_SSHUSEPASSWORD, "DLG_AUTH_METHOD_PASSWORD" }, @@ -314,7 +310,7 @@ if (pvar->auth_state.user != NULL) { SetDlgItemText(dlg, IDC_SSHUSERNAME, pvar->auth_state.user); EnableWindow(GetDlgItem(dlg, IDC_SSHUSERNAME), FALSE); - EnableWindow(GetDlgItem(dlg, IDC_FROM_GETUSERNAME), FALSE); + EnableWindow(GetDlgItem(dlg, IDC_USERNAME_OPTION), FALSE); EnableWindow(GetDlgItem(dlg, IDC_SSHUSERNAMELABEL), FALSE); } else if (strlen(pvar->ssh2_username) > 0) { @@ -321,7 +317,7 @@ SetDlgItemText(dlg, IDC_SSHUSERNAME, pvar->ssh2_username); if (pvar->ssh2_autologin == 1) { EnableWindow(GetDlgItem(dlg, IDC_SSHUSERNAME), FALSE); - EnableWindow(GetDlgItem(dlg, IDC_FROM_GETUSERNAME), FALSE); + EnableWindow(GetDlgItem(dlg, IDC_USERNAME_OPTION), FALSE); EnableWindow(GetDlgItem(dlg, IDC_SSHUSERNAMELABEL), FALSE); } } @@ -360,7 +356,7 @@ if (pvar->ssh2_autologin == 1) { EnableWindow(GetDlgItem(dlg, IDC_SSHPASSWORD), FALSE); EnableWindow(GetDlgItem(dlg, IDC_SSHPASSWORDCAPTION), FALSE); - EnableWindow(GetDlgItem(dlg, IDC_FROM_CLIPBOARD), FALSE); + EnableWindow(GetDlgItem(dlg, IDC_SSHPASSWORD_OPTION), FALSE); } } @@ -387,7 +383,7 @@ } else if (pvar->ssh2_authmethod == SSH_AUTH_TIS) { CheckRadioButton(dlg, IDC_SSHUSEPASSWORD, MAX_AUTH_CONTROL, IDC_SSHUSETIS); EnableWindow(GetDlgItem(dlg, IDC_SSHPASSWORD), FALSE); - EnableWindow(GetDlgItem(dlg, IDC_FROM_CLIPBOARD), FALSE); + EnableWindow(GetDlgItem(dlg, IDC_SSHPASSWORD_OPTION), FALSE); SetDlgItemText(dlg, IDC_SSHPASSWORD, ""); // /auth=pageant \x82\xF0\x92lj\xC1 @@ -394,7 +390,7 @@ } else if (pvar->ssh2_authmethod == SSH_AUTH_PAGEANT) { CheckRadioButton(dlg, IDC_SSHUSEPASSWORD, MAX_AUTH_CONTROL, IDC_SSHUSEPAGEANT); EnableWindow(GetDlgItem(dlg, IDC_SSHPASSWORD), FALSE); - EnableWindow(GetDlgItem(dlg, IDC_FROM_CLIPBOARD), FALSE); + EnableWindow(GetDlgItem(dlg, IDC_SSHPASSWORD_OPTION), FALSE); SetDlgItemText(dlg, IDC_SSHPASSWORD, ""); } else { @@ -845,8 +841,6 @@ } #endif UseControlChar = TRUE; - CheckDlgButton(dlg, IDC_USE_CONTROL_CHARACTER, UseControlChar ? BST_CHECKED : BST_UNCHECKED); - CheckDlgButton(dlg, IDC_CLEAR_CLIPBOARD, BST_CHECKED); // SSH2 autologin\x82\xAA\x97L\x8C\xF8\x82̏ꍇ\x82́A\x83^\x83C\x83}\x82\xF0\x8Ed\x8A|\x82\xAF\x82\xE9\x81B (2004.12.1 yutaka) if (pvar->ssh2_autologin == 1) { @@ -930,7 +924,7 @@ // \x83\x86\x81[\x83U\x96\xBC\x82\xF0\x95ύX\x82\xB3\x82\xB9\x82Ȃ\xA2 EnableWindow(GetDlgItem(dlg, IDC_SSHUSERNAME), FALSE); - EnableWindow(GetDlgItem(dlg, IDC_FROM_GETUSERNAME), FALSE); + EnableWindow(GetDlgItem(dlg, IDC_USERNAME_OPTION), FALSE); // \x94F\x8F\x81\x83\\x83b\x83h none \x82𑗂\xE9 do_SSH2_userauth(pvar); @@ -1024,7 +1018,7 @@ // \x83\x86\x81[\x83U\x96\xBC\x82\xF0\x95ύX\x82\xB3\x82\xB9\x82Ȃ\xA2 EnableWindow(GetDlgItem(dlg, IDC_SSHUSERNAME), FALSE); - EnableWindow(GetDlgItem(dlg, IDC_FROM_GETUSERNAME), FALSE); + EnableWindow(GetDlgItem(dlg, IDC_USERNAME_OPTION), FALSE); // \x94F\x8F\x81\x83\\x83b\x83h none \x82𑗂\xE9 do_SSH2_userauth(pvar); @@ -1055,65 +1049,118 @@ pvar->session_settings.ForwardAgent = IsDlgButtonChecked(dlg, IDC_FORWARD_AGENT); return TRUE; - case IDC_FROM_CLIPBOARD: { - char *clipboard = GetClipboardTextA(dlg, IsDlgButtonChecked(dlg, IDC_CLEAR_CLIPBOARD) != BST_UNCHECKED); - if (clipboard != NULL) { - SetDlgItemTextA(dlg, IDC_SSHPASSWORD, clipboard); - free(clipboard); - SendDlgItemMessage(dlg, IDC_SSHPASSWORD, EM_SETSEL, 0, -1); - SendMessage(dlg, WM_NEXTDLGCTL, (WPARAM)GetDlgItem(dlg, IDC_SSHPASSWORD), TRUE); - return FALSE; + case IDC_SSHPASSWORD_OPTION: { + TCHAR uimsg[MAX_UIMSG]; + HMENU hMenu= CreatePopupMenu(); + GetI18nStrT("TTSSH", "DLG_AUTH_PASTE_CLIPBOARD", + uimsg, _countof(uimsg), + "Paste from clipboard", + pvar->ts->UILanguageFile); + AppendMenu(hMenu, MF_ENABLED | MF_STRING, 1, uimsg); + GetI18nStrT("ttssh", "DLG_AUTH_CLEAR_CLIPBOARD", + uimsg, _countof(uimsg), + "and clear clipboard", + pvar->ts->UILanguageFile); + AppendMenu(hMenu, MF_ENABLED | MF_STRING, 2, uimsg); + GetI18nStrT("ttssh", "DLG_AUTH_USE_CONTORL_CHARACTERS", + uimsg, _countof(uimsg), + "Use control characters", + pvar->ts->UILanguageFile); + AppendMenu(hMenu, MF_ENABLED | MF_STRING | (UseControlChar ? MFS_CHECKED : 0), 3, uimsg); + GetI18nStrT("ttssh", "DLG_AUTH_SHOW_PASSPHRASE", + uimsg, _countof(uimsg), + "Show passphrase", + pvar->ts->UILanguageFile); + AppendMenu(hMenu, MF_ENABLED | MF_STRING | (ShowPassPhrase ? MFS_CHECKED : 0), 4, uimsg); + RECT rect; + HWND hWndButton = GetDlgItem(dlg, IDC_SSHPASSWORD_OPTION); + GetWindowRect(hWndButton, &rect); + int result = TrackPopupMenu(hMenu, TPM_RETURNCMD, rect.left, rect.bottom, 0 , hWndButton, NULL); + DestroyMenu(hMenu); + switch(result) { + case 1: + case 2: { + // \x83N\x83\x8A\x83b\x83v\x83{\x81[\x83h\x82\xA9\x82\xE7\x83y\x81[\x83X\x83g + BOOL clear_clipboard = result == 2; + char *clipboard = GetClipboardTextA(dlg, clear_clipboard); + if (clipboard != NULL) { + SetDlgItemTextA(dlg, IDC_SSHPASSWORD, clipboard); + free(clipboard); + SendDlgItemMessage(dlg, IDC_SSHPASSWORD, EM_SETSEL, 0, -1); + SendMessage(dlg, WM_NEXTDLGCTL, (WPARAM)GetDlgItem(dlg, IDC_SSHPASSWORD), TRUE); + return FALSE; + } + return TRUE; } - return TRUE; - } - - case IDC_SHOW_PASSPHRASE: { - // \x95\x9A\x82\xB9\x8E\x9A on/off \x82\xF0\x90\xE8\x91ւ\xA6\x82\xE9 - HWND hWnd = GetDlgItem(dlg, IDC_SSHPASSWORD); - static wchar_t password_char; - if (password_char == 0) { - wchar_t c = (wchar_t)SendMessage(hWnd, EM_GETPASSWORDCHAR, 0, 0); - password_char = c; - } - if (IsDlgButtonChecked(dlg, IDC_SHOW_PASSPHRASE) != BST_UNCHECKED) { - SendMessage(hWnd, EM_SETPASSWORDCHAR, 0, 0); - } else { + case 3: + // \x90\xA7\x8C\xE4\x83R\x81[\x83h\x8Eg\x97p/\x96\xA2\x8Eg\x97p + UseControlChar = !UseControlChar; + break; + case 4: + // \x83p\x83X\x83t\x83\x8C\x81[\x83Y\x95\\x8E\xA6/\x94\xF1\x95\\x8E\xA6 + ShowPassPhrase = !ShowPassPhrase; + { + // \x95\x9A\x82\xB9\x8E\x9A on/off \x82\xF0\x90\xE8\x91ւ\xA6\x82\xE9 + HWND hWnd = GetDlgItem(dlg, IDC_SSHPASSWORD); + static wchar_t password_char; + if (password_char == 0) { + wchar_t c = (wchar_t)SendMessage(hWnd, EM_GETPASSWORDCHAR, 0, 0); + password_char = c; + } + if (ShowPassPhrase) { + SendMessage(hWnd, EM_SETPASSWORDCHAR, 0, 0); + } else { #if !defined(UNICODE) - if (password_char < 0x100) { - SendMessageA(hWnd, EM_SETPASSWORDCHAR, (WPARAM)password_char, 0); - } else { - // TODO W\x8Cn\x92\xBC\x8CĂ\xD1 \x81\xAB\x82\xA4\x82܂\xAD\x82\xA2\x82\xA9\x82Ȃ\xA2 - //SendMessageW(hWnd, EM_SETPASSWORDCHAR, (WPARAM)password_char, 0); - SendMessageA(hWnd, EM_SETPASSWORDCHAR, (WPARAM)'*', 0); - } + if (password_char < 0x100) { + SendMessageA(hWnd, EM_SETPASSWORDCHAR, (WPARAM)password_char, 0); + } else { + // TODO W\x8Cn\x92\xBC\x8CĂ\xD1 \x81\xAB\x82\xA4\x82܂\xAD\x82\xA2\x82\xA9\x82Ȃ\xA2 + //SendMessageW(hWnd, EM_SETPASSWORDCHAR, (WPARAM)password_char, 0); + SendMessageA(hWnd, EM_SETPASSWORDCHAR, (WPARAM)'*', 0); + } #else - SendMessageW(hWnd, EM_SETPASSWORDCHAR, (WPARAM)password_char, 0); + SendMessageW(hWnd, EM_SETPASSWORDCHAR, (WPARAM)password_char, 0); #endif + } + //InvalidateRect(hWnd, NULL, TRUE); + SendDlgItemMessage(dlg, IDC_SSHPASSWORD, EM_SETSEL, 0, -1); + SendMessage(dlg, WM_NEXTDLGCTL, (WPARAM)GetDlgItem(dlg, IDC_SSHPASSWORD), TRUE); + return TRUE; + } + break; } - //InvalidateRect(hWnd, NULL, TRUE); - SendDlgItemMessage(dlg, IDC_SSHPASSWORD, EM_SETSEL, 0, -1); - SendMessage(dlg, WM_NEXTDLGCTL, (WPARAM)GetDlgItem(dlg, IDC_SSHPASSWORD), TRUE); - return TRUE; + break; } - case IDC_FROM_GETUSERNAME: { - TCHAR user_name[UNLEN+1]; - DWORD len = _countof(user_name); - BOOL r = GetUserName(user_name, &len); - if (r != 0) { - SetDlgItemText(dlg, IDC_SSHUSERNAME, user_name); - SendDlgItemMessage(dlg, IDC_SSHUSERNAME, EM_SETSEL, 0, -1); - SendMessage(dlg, WM_NEXTDLGCTL, (WPARAM)GetDlgItem(dlg, IDC_SSHUSERNAME), TRUE); + case IDC_USERNAME_OPTION: { + TCHAR uimsg[MAX_UIMSG]; + HMENU hMenu= CreatePopupMenu(); + GetI18nStrT("TTSSH", "DLG_AUTH_PASTE_WINDOWS_USERNAME", + uimsg, _countof(uimsg), + "Paste Windows username", + pvar->ts->UILanguageFile); + AppendMenu(hMenu, MF_ENABLED | MF_STRING, 1, uimsg); + RECT rect; + HWND hWndButton = GetDlgItem(dlg, IDC_USERNAME_OPTION); + GetWindowRect(hWndButton, &rect); + int result = TrackPopupMenu(hMenu, TPM_RETURNCMD, rect.left, rect.bottom, 0 , hWndButton, NULL); + DestroyMenu(hMenu); + switch (result) { + case 1: { + TCHAR user_name[UNLEN+1]; + DWORD len = _countof(user_name); + BOOL r = GetUserName(user_name, &len); + if (r != 0) { + SetDlgItemText(dlg, IDC_SSHUSERNAME, user_name); + SendDlgItemMessage(dlg, IDC_SSHUSERNAME, EM_SETSEL, 0, -1); + SendMessage(dlg, WM_NEXTDLGCTL, (WPARAM)GetDlgItem(dlg, IDC_SSHUSERNAME), TRUE); + } + break; } + } return TRUE; } - case IDC_USE_CONTROL_CHARACTER: { - UseControlChar = - (IsDlgButtonChecked(dlg, IDC_USE_CONTROL_CHARACTER) != BST_UNCHECKED) ? - TRUE : FALSE; - break; - } default: return FALSE; } Modified: branches/ssh_auth_dialog/ttssh2/ttxssh/resource.h =================================================================== --- branches/ssh_auth_dialog/ttssh2/ttxssh/resource.h 2019-04-24 14:11:17 UTC (rev 7622) +++ branches/ssh_auth_dialog/ttssh2/ttxssh/resource.h 2019-04-25 16:36:57 UTC (rev 7623) @@ -224,17 +224,13 @@ #define IDC_SSHDYNFROMPORT 1228 #define IDC_SSHFWDLOCALDYNAMIC_LISTEN 1229 #define IDC_SSHDYNLISTENADDR 1230 -#define IDC_FROM_CLIPBOARD 1231 -#define IDC_SHOW_PASSPHRASE 1232 -#define IDC_CLEAR_CLIPBOARD 1233 -#define IDC_USE_CONTROL_CHARACTER 1234 +#define IDC_SSHPASSWORD_OPTION 1231 +#define IDC_USERNAME_OPTION 1232 #define IDC_HOSTRSAFILENAMELABEL 1235 #define IDC_RSAFILENAMELABEL 1236 #define IDC_SSH_NO_USERNAME 1237 #define IDC_SSH_DEFAULTUSERNAME 1238 #define IDC_SSH_WINDOWS_USERNAME 1239 -#define IDC_FROM_GETUSERNAME 1240 -#define IDC_RSAFILENAMELABEL2 1241 #define IDC_SSH_WINDOWS_USERNAME_TEXT 1241 // Next default values for new objects Modified: branches/ssh_auth_dialog/ttssh2/ttxssh/ttxssh.rc =================================================================== --- branches/ssh_auth_dialog/ttssh2/ttxssh/ttxssh.rc 2019-04-24 14:11:17 UTC (rev 7622) +++ branches/ssh_auth_dialog/ttssh2/ttxssh/ttxssh.rc 2019-04-25 16:36:57 UTC (rev 7623) @@ -49,7 +49,7 @@ DEFPUSHBUTTON "OK",IDOK,112,310,50,14 END -IDD_SSHAUTH DIALOGEX 0, 0, 293, 394 +IDD_SSHAUTH DIALOGEX 0, 0, 307, 247 STYLE DS_SETFONT | DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU CAPTION "SSH Authentication" FONT 8, "Tahoma", 0, 0, 0x0 @@ -56,39 +56,34 @@ BEGIN LTEXT "Logging in to %s",IDC_SSHAUTHBANNER,6,3,166,10 LTEXT "Authentication required.",IDC_SSHAUTHBANNER2,6,16,281,10 - LTEXT "User &name:",IDC_SSHUSERNAMELABEL,17,31,57,8 - EDITTEXT IDC_SSHUSERNAME,28,44,145,12,ES_AUTOHSCROLL - PUSHBUTTON "Paste &Windows Username",IDC_FROM_GETUSERNAME,28,60,95,14 - LTEXT "&Passphrase:",IDC_SSHPASSWORDCAPTION,17,77,70,8 - EDITTEXT IDC_SSHPASSWORD,28,91,145,12,ES_PASSWORD | ES_AUTOHSCROLL - PUSHBUTTON "Paste from &clipboard",IDC_FROM_CLIPBOARD,28,107,80,14 - CONTROL "Cl&ear clipboard after paste",IDC_CLEAR_CLIPBOARD, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,40,125,132,10 - CONTROL "Use control charac&ters",IDC_USE_CONTROL_CHARACTER, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,28,139,132,10 - CONTROL "&Show passphrase",IDC_SHOW_PASSPHRASE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,28,153,132,10 + LTEXT "User &name:",IDC_SSHUSERNAMELABEL,17,31,46,8 + EDITTEXT IDC_SSHUSERNAME,73,29,146,12,ES_AUTOHSCROLL + PUSHBUTTON "...",IDC_USERNAME_OPTION,224,28,14,14,BS_BITMAP + LTEXT "&Passphrase:",IDC_SSHPASSWORDCAPTION,17,46,47,8 + EDITTEXT IDC_SSHPASSWORD,73,44,146,12,ES_PASSWORD | ES_AUTOHSCROLL + PUSHBUTTON "...",IDC_SSHPASSWORD_OPTION,224,43,14,14 CONTROL "Remember password in &memory",IDC_REMEMBER_PASSWORD, - "Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,167,132,10 - CONTROL "F&orward agent",IDC_FORWARD_AGENT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,181,132,10 + "Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,61,132,10 + CONTROL "F&orward agent",IDC_FORWARD_AGENT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,17,75,132,10 CONTROL "Use p&lain password to log in",IDC_SSHUSEPASSWORD, - "Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,27,209,252,10 + "Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,16,102,252,10 CONTROL "Use &RSA/DSA/ECDSA/ED25519 key to log in",IDC_SSHUSERSA, - "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,27,223,251,10 - CONTROL "Use r&hosts to log in (SSH1)",IDC_SSHUSERHOSTS,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,27,268,250,10 + "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,16,115,251,10 + CONTROL "Use r&hosts to log in (SSH1)",IDC_SSHUSERHOSTS,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,17,140,250,10 CONTROL "Use SSH1:challenge/response(&TIS) / SSH2:keyboard-interactive to log in",IDC_SSHUSETIS, - "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,27,339,252,10 - CONTROL "Use P&ageant to log in",IDC_SSHUSEPAGEANT,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,27,354,249,8 - LTEXT "Private &key file:",IDC_RSAFILENAMELABEL,38,237,144,8 - EDITTEXT IDC_RSAFILENAME,50,250,150,13,ES_AUTOHSCROLL - PUSHBUTTON "...",IDC_CHOOSERSAFILE,207,250,13,13,WS_GROUP - LTEXT "Local &user name:",IDC_LOCALUSERNAMELABEL,38,283,157,8 - EDITTEXT IDC_LOCALUSERNAME,50,294,106,13,ES_AUTOHSCROLL - LTEXT "Host private key &file:",IDC_HOSTRSAFILENAMELABEL,38,311,165,8 - EDITTEXT IDC_HOSTRSAFILENAME,50,322,151,13,ES_AUTOHSCROLL - PUSHBUTTON "...",IDC_CHOOSEHOSTRSAFILE,208,322,13,13 - DEFPUSHBUTTON "OK",IDOK,179,376,50,14,WS_GROUP - PUSHBUTTON "&Disconnect",IDCANCEL,235,376,50,14 - GROUPBOX "Authentication methods ",IDC_STATIC,17,196,267,175 + "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,17,187,252,10 + CONTROL "Use P&ageant to log in",IDC_SSHUSEPAGEANT,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,17,203,249,8 + LTEXT "Private &key file:",IDC_RSAFILENAMELABEL,29,129,88,8 + EDITTEXT IDC_RSAFILENAME,122,127,150,13,ES_AUTOHSCROLL + PUSHBUTTON "...",IDC_CHOOSERSAFILE,276,127,13,13,WS_GROUP + LTEXT "Local &user name:",IDC_LOCALUSERNAMELABEL,29,155,88,8 + EDITTEXT IDC_LOCALUSERNAME,122,153,106,13,ES_AUTOHSCROLL + LTEXT "Host private key &file:",IDC_HOSTRSAFILENAMELABEL,28,173,88,8 + EDITTEXT IDC_HOSTRSAFILENAME,122,171,151,13,ES_AUTOHSCROLL + PUSHBUTTON "...",IDC_CHOOSEHOSTRSAFILE,276,171,13,13 + DEFPUSHBUTTON "OK",IDOK,199,227,50,14,WS_GROUP + PUSHBUTTON "&Disconnect",IDCANCEL,255,227,47,14 + GROUPBOX "Authentication methods ",IDC_STATIC,6,89,295,132 END IDD_HOSTDLG DIALOGEX 20, 20, 240, 128 @@ -466,13 +461,24 @@ IDD_SSHAUTH, DIALOG BEGIN LEFTMARGIN, 6 - RIGHTMARGIN, 287 + RIGHTMARGIN, 302 VERTGUIDE, 17 VERTGUIDE, 28 VERTGUIDE, 40 - VERTGUIDE, 52 + VERTGUIDE, 73 + VERTGUIDE, 117 + VERTGUIDE, 122 + VERTGUIDE, 219 + VERTGUIDE, 224 + VERTGUIDE, 276 + VERTGUIDE, 287 TOPMARGIN, 3 - BOTTOMMARGIN, 390 + BOTTOMMARGIN, 241 + HORZGUIDE, 35 + HORZGUIDE, 50 + HORZGUIDE, 133 + HORZGUIDE, 159 + HORZGUIDE, 177 END IDD_HOSTDLG, DIALOG