#ifndef CEF_LIBCEF_BROWSER_VIEWS_BROWSER_VIEW_VIEW_H_
#define CEF_LIBCEF_BROWSER_VIEWS_BROWSER_VIEW_VIEW_H_
#pragma once
#include "include/views/cef_browser_view_delegate.h"
#include "libcef/browser/views/view_view.h"
#include "ui/views/controls/webview/webview.h"
class WebViewEx : public views::WebView {
public:
WebViewEx() : views::WebView(nullptr) {}
};
class CefBrowserViewView
: public CefViewView<WebViewEx, CefBrowserViewDelegate> {
public:
using ParentClass = CefViewView<WebViewEx, CefBrowserViewDelegate>;
CefBrowserViewView(const CefBrowserViewView&) = delete;
CefBrowserViewView& operator=(const CefBrowserViewView&) = delete;
class Delegate {
public:
virtual void OnBrowserViewAdded() = 0;
virtual void OnBoundsChanged() = 0;
protected:
virtual ~Delegate() {}
};
CefBrowserViewView(CefBrowserViewDelegate* cef_delegate,
Delegate* browser_view_delegate);
void ViewHierarchyChanged(
const views::ViewHierarchyChangedDetails& details) override;
void OnBoundsChanged(const gfx::Rect& previous_bounds) override;
private:
Delegate* browser_view_delegate_;
};
#endif