blob: c1c4d9c5f1759e574a384a7b5c9973b8ebf4318a [file] [log] [blame]
// 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_BOX_LAYOUT_IMPL_H_
#define CEF_LIBCEF_BROWSER_VIEWS_BOX_LAYOUT_IMPL_H_
#pragma once
#include "include/views/cef_box_layout.h"
#include "libcef/browser/views/layout_impl.h"
#include "ui/views/layout/box_layout.h"
class CefBoxLayoutImpl : public CefLayoutImpl<views::BoxLayout, CefBoxLayout> {
public:
// Necessary for the CEF_REQUIRE_VALID_*() macros to compile.
typedef CefLayoutImpl<views::BoxLayout, CefBoxLayout> ParentClass;
// Create a new CefBoxLayout insance. |owner_view| must be non-nullptr.
static CefRefPtr<CefBoxLayoutImpl> Create(
const CefBoxLayoutSettings& settings,
views::View* owner_view);
// CefBoxLayout methods:
void SetFlexForView(CefRefPtr<CefView> view, int flex) override;
void ClearFlexForView(CefRefPtr<CefView> view) override;
// CefLayout methods:
CefRefPtr<CefBoxLayout> AsBoxLayout() override { return this; }
private:
explicit CefBoxLayoutImpl(const CefBoxLayoutSettings& settings);
views::BoxLayout* CreateLayout() override;
CefBoxLayoutSettings settings_;
IMPLEMENT_REFCOUNTING_DELETE_ON_UIT(CefBoxLayoutImpl);
DISALLOW_COPY_AND_ASSIGN(CefBoxLayoutImpl);
};
#endif // CEF_LIBCEF_BROWSER_VIEWS_BOX_LAYOUT_IMPL_H_