| 246 |
} |
} |
| 247 |
} |
} |
| 248 |
|
|
| 249 |
|
static LRESULT CALLBACK username_proc(HWND hWnd, UINT msg, |
| 250 |
|
WPARAM wParam, LPARAM lParam) |
| 251 |
|
{ |
| 252 |
|
const WNDPROC ProcOrg = (WNDPROC)GetWindowLongPtr(hWnd, GWLP_USERDATA); |
| 253 |
|
const LRESULT result = CallWindowProc(ProcOrg, hWnd, msg, wParam, lParam); |
| 254 |
|
switch (msg) { |
| 255 |
|
case WM_CHAR: |
| 256 |
|
case WM_SETTEXT: { |
| 257 |
|
// ユーザー名が入力されていた場合、オプションを使うことはないので、 |
| 258 |
|
// tabでのフォーカス移動時、オプションボタンをパスするようにする |
| 259 |
|
// 従来と同じキー操作でユーザー名とパスフレーズを入力可能とする |
| 260 |
|
const HWND dlg = GetParent(hWnd); |
| 261 |
|
const HWND hWndOption = GetDlgItem(dlg, IDC_USERNAME_OPTION); |
| 262 |
|
const int len = GetWindowTextLength(hWnd); |
| 263 |
|
LONG_PTR style = GetWindowLongPtr(hWndOption, GWL_STYLE); |
| 264 |
|
if (len > 0) { |
| 265 |
|
// 不要tabstop |
| 266 |
|
style = style & (~(LONG_PTR)WS_TABSTOP); |
| 267 |
|
} else { |
| 268 |
|
// 要tabstop |
| 269 |
|
style = style | WS_TABSTOP; |
| 270 |
|
} |
| 271 |
|
SetWindowLongPtr(hWndOption, GWL_STYLE, style); |
| 272 |
|
} |
| 273 |
|
} |
| 274 |
|
return result; |
| 275 |
|
} |
| 276 |
|
|
| 277 |
static void init_auth_dlg(PTInstVar pvar, HWND dlg, BOOL *UseControlChar) |
static void init_auth_dlg(PTInstVar pvar, HWND dlg, BOOL *UseControlChar) |
| 278 |
{ |
{ |
| 279 |
const static DlgTextInfo text_info[] = { |
const static DlgTextInfo text_info[] = { |
| 332 |
SetDlgItemText(dlg, IDC_SSHUSETIS, pvar->ts->UIMsg); |
SetDlgItemText(dlg, IDC_SSHUSETIS, pvar->ts->UIMsg); |
| 333 |
} |
} |
| 334 |
|
|
| 335 |
|
// usernameのサブクラス化 |
| 336 |
|
{ |
| 337 |
|
HWND hWndUserName = GetDlgItem(dlg, IDC_SSHUSERNAME); |
| 338 |
|
LONG_PTR ProcOrg = |
| 339 |
|
SetWindowLongPtr(hWndUserName, GWLP_WNDPROC, (LONG_PTR)username_proc); |
| 340 |
|
SetWindowLongPtr(hWndUserName, GWLP_USERDATA, ProcOrg); |
| 341 |
|
} |
| 342 |
|
|
| 343 |
if (pvar->auth_state.user != NULL) { |
if (pvar->auth_state.user != NULL) { |
| 344 |
SetDlgItemText(dlg, IDC_SSHUSERNAME, pvar->auth_state.user); |
SetDlgItemText(dlg, IDC_SSHUSERNAME, pvar->auth_state.user); |
| 345 |
EnableWindow(GetDlgItem(dlg, IDC_SSHUSERNAME), FALSE); |
EnableWindow(GetDlgItem(dlg, IDC_SSHUSERNAME), FALSE); |
| 878 |
DlgAuthFont = NULL; |
DlgAuthFont = NULL; |
| 879 |
} |
} |
| 880 |
#endif |
#endif |
| 881 |
|
// "▼"画像をセットする |
| 882 |
hIconDropdown = LoadImage(hInst, MAKEINTRESOURCE(IDI_DROPDOWN), |
hIconDropdown = LoadImage(hInst, MAKEINTRESOURCE(IDI_DROPDOWN), |
| 883 |
IMAGE_ICON, 0, 0, LR_DEFAULTCOLOR); |
IMAGE_ICON, 0, 0, LR_DEFAULTCOLOR); |
| 884 |
SendMessage(GetDlgItem(dlg, IDC_USERNAME_OPTION), BM_SETIMAGE, IMAGE_ICON, (LPARAM)hIconDropdown); |
SendMessage(GetDlgItem(dlg, IDC_USERNAME_OPTION), BM_SETIMAGE, IMAGE_ICON, (LPARAM)hIconDropdown); |