X-Git-Url: https://git.webkit.org/?p=WebKit-https.git;a=blobdiff_plain;f=Tools%2FMiniBrowser%2Fwin%2FCommon.cpp;h=1b71a76b28fe43d0ea474c44eee48466d5595757;hp=e6f1413e0019ee74705e6e307ff8a64de4d848dd;hb=a0cad612921447285283f48ed492d716b35697a2;hpb=57c4ab790bc3305db3f4e94d43371bc2b8e956fc diff --git a/Tools/MiniBrowser/win/Common.cpp b/Tools/MiniBrowser/win/Common.cpp index e6f1413e0019..1b71a76b28fe 100644 --- a/Tools/MiniBrowser/win/Common.cpp +++ b/Tools/MiniBrowser/win/Common.cpp @@ -102,6 +102,7 @@ LRESULT CALLBACK BackButtonProc(HWND, UINT, WPARAM, LPARAM); LRESULT CALLBACK ForwardButtonProc(HWND, UINT, WPARAM, LPARAM); LRESULT CALLBACK ReloadButtonProc(HWND, UINT, WPARAM, LPARAM); INT_PTR CALLBACK Caches(HWND, UINT, WPARAM, LPARAM); +INT_PTR CALLBACK AuthDialogProc(HWND, UINT, WPARAM, LPARAM); static void loadURL(BSTR urlBStr); static void updateStatistics(HWND hDlg); @@ -664,6 +665,56 @@ INT_PTR CALLBACK CustomUserAgent(HWND hDlg, UINT message, WPARAM wParam, LPARAM return (INT_PTR)FALSE; } +HRESULT DisplayAuthDialog(std::wstring& username, std::wstring& password) +{ + auto result = DialogBox(hInst, MAKEINTRESOURCE(IDD_AUTH), hMainWnd, AuthDialogProc); + if (!result) + return E_FAIL; + + auto pair = reinterpret_cast*>(result); + username = pair->first; + password = pair->second; + delete pair; + + return S_OK; +} + +INT_PTR CALLBACK AuthDialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) +{ + switch (message) { + case WM_INITDIALOG: { + HWND edit = ::GetDlgItem(hDlg, IDC_AUTH_USER); + ::SetWindowText(edit, static_cast(L"")); + + edit = ::GetDlgItem(hDlg, IDC_AUTH_PASSWORD); + ::SetWindowText(edit, static_cast(L"")); + return (INT_PTR)TRUE; + } + + case WM_COMMAND: + if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL) { + INT_PTR result { }; + + if (LOWORD(wParam) == IDOK) { + TCHAR user[256]; + int strLen = ::GetWindowText(::GetDlgItem(hDlg, IDC_AUTH_USER), user, 256); + user[strLen] = 0; + + TCHAR pass[256]; + strLen = ::GetWindowText(::GetDlgItem(hDlg, IDC_AUTH_PASSWORD), pass, 256); + pass[strLen] = 0; + + result = reinterpret_cast(new std::pair(user, pass)); + } + + ::EndDialog(hDlg, result); + return (INT_PTR)TRUE; + } + break; + } + return (INT_PTR)FALSE; +} + static void loadURL(BSTR passedURL) { if (FAILED(gMiniBrowser->loadURL(passedURL)))