// Copyright 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_LIBCEF_BROWSER_NATIVE_BROWSER_PLATFORM_DELEGATE_NATIVE_H_ #define CEF_LIBCEF_BROWSER_NATIVE_BROWSER_PLATFORM_DELEGATE_NATIVE_H_ #include "libcef/browser/browser_platform_delegate.h" // Base implementation of native browser functionality. class CefBrowserPlatformDelegateNative : public CefBrowserPlatformDelegate { public: // Used by the windowless implementation to override specific functionality // when delegating to the native implementation. class WindowlessHandler { public: // Returns the parent window handle. virtual CefWindowHandle GetParentWindowHandle() const = 0; // Convert from view coordinates to screen coordinates. virtual gfx::Point GetParentScreenPoint(const gfx::Point& view) const = 0; protected: virtual ~WindowlessHandler() {} }; // CefBrowserPlatformDelegate methods: void WasResized() override; void SendKeyEvent(const content::NativeWebKeyboardEvent& event) override; void SendMouseEvent(const blink::WebMouseEvent& event) override; void SendMouseWheelEvent(const blink::WebMouseWheelEvent& event) override; bool IsWindowless() const override; bool IsViewsHosted() const override; const CefWindowInfo& window_info() const { return window_info_; } void set_windowless_handler(WindowlessHandler* handler) { windowless_handler_ = handler; } protected: explicit CefBrowserPlatformDelegateNative(const CefWindowInfo& window_info); CefWindowInfo window_info_; WindowlessHandler* windowless_handler_; // Not owned by this object. }; #endif // CEF_LIBCEF_BROWSER_NATIVE_BROWSER_PLATFORM_DELEGATE_NATIVE_H_