// Copyright 2016 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_VIEWS_LAYOUT_ADAPTER_H_ #define CEF_LIBCEF_BROWSER_VIEWS_LAYOUT_ADAPTER_H_ #pragma once #include "include/views/cef_layout.h" namespace views { class LayoutManager; } // Exposes a common interface from all CefLayout implementation objects to // simplify the layout_util implementation. See comments in view_impl.h for a // usage overview. class CefLayoutAdapter { public: CefLayoutAdapter() {} // Returns the CefLayoutAdapter for the specified |layout|. static CefLayoutAdapter* GetFor(CefRefPtr layout); // Returns the underlying views::LayoutManager object. Does not transfer // ownership. virtual views::LayoutManager* Get() const = 0; // Release all references to the views::LayoutManager object. This is called // when the views::LayoutManager is deleted after being assigned to a // views::View. virtual void Detach() = 0; protected: virtual ~CefLayoutAdapter() {} }; #endif // CEF_LIBCEF_BROWSER_VIEWS_LAYOUT_ADAPTER_H_