// Copyright (c) 2015 The Chromium Embedded Framework Authors. All rights // reserved. Use of this source code is governed by a BSD-style license that // can be found in the LICENSE file. #ifndef CEF_TESTS_CEFCLIENT_BROWSER_UTIL_WIN_H_ #define CEF_TESTS_CEFCLIENT_BROWSER_UTIL_WIN_H_ #pragma once #include #include #include "include/internal/cef_types_wrappers.h" namespace client { // Set the window's user data pointer. void SetUserDataPtr(HWND hWnd, void* ptr); // Return the window's user data pointer. template T GetUserDataPtr(HWND hWnd) { return reinterpret_cast(GetWindowLongPtr(hWnd, GWLP_USERDATA)); } // Set the window's window procedure pointer and return the old value. WNDPROC SetWndProcPtr(HWND hWnd, WNDPROC wndProc); // Return the resource string with the specified id. std::wstring GetResourceString(UINT id); int GetCefMouseModifiers(WPARAM wparam); int GetCefKeyboardModifiers(WPARAM wparam, LPARAM lparam); bool IsKeyDown(WPARAM wparam); // Returns the device scale factor. For example, 200% display scaling will // return 2.0. float GetDeviceScaleFactor(); // Convert |value| from logical coordinates to device coordinates. int LogicalToDevice(int value, float device_scale_factor); CefRect LogicalToDevice(const CefRect& value, float device_scale_factor); // Convert |value| from device coordinates to logical coordinates. int DeviceToLogical(int value, float device_scale_factor); CefRect DeviceToLogical(const CefRect& value, float device_scale_factor); void DeviceToLogical(CefMouseEvent& value, float device_scale_factor); } // namespace client #endif // CEF_TESTS_CEFCLIENT_BROWSER_UTIL_WIN_H_