// 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_UTIL_H_
#define CEF_LIBCEF_BROWSER_VIEWS_LAYOUT_UTIL_H_
#pragma once

#include "include/views/cef_layout.h"

#include "ui/views/layout/layout_manager.h"

namespace views {
class View;
}

// The below functions manage the relationship between CefLayout and
// views::LayoutManager instances. See comments in view_impl.h for a usage
// overview.

namespace layout_util {

// Returns the CefLayout object associated with |owner_view|.
CefRefPtr<CefLayout> GetFor(const views::View* owner_view);

// Assign ownership of |layout| to |owner_view|. If a CefLayout is already
// associated with |owner_view| it will be invalidated.
void Assign(CefRefPtr<CefLayout> layout, views::View* owner_view);

}  // namespace layout_util

#endif  // CEF_LIBCEF_BROWSER_VIEWS_LAYOUT_UTIL_H_