• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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