1 // Copyright 2021 The Chromium Embedded Framework Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be found 3 // in the LICENSE file. 4 5 #ifndef CEF_LIBCEF_BROWSER_CHROME_VIEWS_TOOLBAR_VIEW_IMPL_H_ 6 #define CEF_LIBCEF_BROWSER_CHROME_VIEWS_TOOLBAR_VIEW_IMPL_H_ 7 #pragma once 8 9 #include "include/views/cef_view_delegate.h" 10 11 #include "libcef/browser/chrome/views/toolbar_view_view.h" 12 #include "libcef/browser/views/view_impl.h" 13 14 class Browser; 15 class BrowserView; 16 17 class CefToolbarViewImpl 18 : public CefViewImpl<CefToolbarViewView, CefView, CefViewDelegate> { 19 public: 20 using ParentClass = CefViewImpl<CefToolbarViewView, CefView, CefViewDelegate>; 21 22 CefToolbarViewImpl(const CefToolbarViewImpl&) = delete; 23 CefToolbarViewImpl& operator=(const CefToolbarViewImpl&) = delete; 24 25 // Create a new CefToolbarViewImpl instance. |delegate| may be nullptr. 26 static CefRefPtr<CefToolbarViewImpl> Create( 27 CefRefPtr<CefViewDelegate> delegate, 28 Browser* browser, 29 BrowserView* browser_view, 30 absl::optional<ToolbarView::DisplayMode> display_mode); 31 32 static const char* const kTypeString; 33 34 // CefViewAdapter methods: GetDebugType()35 std::string GetDebugType() override { return kTypeString; } 36 37 private: 38 // Create a new implementation object. 39 // Always call Initialize() after creation. 40 // |delegate| may be nullptr. 41 CefToolbarViewImpl(CefRefPtr<CefViewDelegate> delegate, 42 Browser* browser, 43 BrowserView* browser_view, 44 absl::optional<ToolbarView::DisplayMode> display_mode); 45 46 // CefViewImpl methods: 47 CefToolbarViewView* CreateRootView() override; 48 void InitializeRootView() override; 49 50 Browser* const browser_; 51 BrowserView* const browser_view_; 52 absl::optional<ToolbarView::DisplayMode> const display_mode_; 53 54 IMPLEMENT_REFCOUNTING_DELETE_ON_UIT(CefToolbarViewImpl); 55 }; 56 57 #endif // CEF_LIBCEF_BROWSER_VIEWS_SCROLL_VIEW_IMPL_H_ 58