void PlatformWebView::simulateRightClick(unsigned x, unsigned y) { HWND window = WKViewGetWindow(m_view); ::SendMessageW(window, WM_RBUTTONDOWN, 0, MAKELPARAM(x, y)); ::SendMessageW(window, WM_RBUTTONUP, 0, MAKELPARAM(x, y)); }
void PlatformWebView::simulateAltKeyPress() { HWND window = WKViewGetWindow(m_view); // These values match what happens when you press the Alt key in Notepad, as observed by Spy++. ::SendMessageW(window, WM_SYSKEYDOWN, VK_MENU, (1 << repeatCountBitOffset) | (38 << scanCodeBitOffset) | (1 << contextCodeBitOffset)); ::SendMessageW(window, WM_SYSKEYUP, VK_MENU, (1 << repeatCountBitOffset) | (38 << scanCodeBitOffset) | (1 << previousStateBitOffset) | (1 << transitionStateBitOffset)); }
void PlatformWebView::simulateSpacebarKeyPress() { HWND window = WKViewGetWindow(m_view); // These values match what happens when you press the spacebar in Notepad, as observed by Spy++. ::SendMessageW(window, WM_KEYDOWN, VK_SPACE, (1 << repeatCountBitOffset) | (39 << scanCodeBitOffset)); ::SendMessageW(window, WM_CHAR, ' ', (1 << repeatCountBitOffset) | (39 << scanCodeBitOffset)); ::SendMessageW(window, WM_KEYUP, VK_SPACE, (1 << repeatCountBitOffset) | (39 << scanCodeBitOffset) | (1 << previousStateBitOffset) | (1 << transitionStateBitOffset)); }
TEST(WebKit2, WMPrint) { WKRetainPtr<WKContextRef> context(AdoptWK, WKContextCreate()); PlatformWebView webView(context.get()); HWND window = WKViewGetWindow(webView.platformView()); HDC dc = ::CreateCompatibleDC(0); // FIXME: It would be nice to test that this actually paints the view into dc. ::SendMessage(window, WM_PRINT, reinterpret_cast<WPARAM>(dc), PRF_CLIENT | PRF_CHILDREN); ::DeleteDC(dc); }
void BrowserView::setFrame(RECT rect) { HWND webViewWindow = WKViewGetWindow(m_webView); ::SetWindowPos(webViewWindow, 0, rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, SWP_NOZORDER | SWP_NOACTIVATE | SWP_NOCOPYBITS); }
void PlatformWebView::resizeTo(unsigned width, unsigned height) { ::SetWindowPos(WKViewGetWindow(m_view), 0, 0, 0, width, height, SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE | SWP_NOCOPYBITS); }