44 lines
1.4 KiB
C
44 lines
1.4 KiB
C
|
// 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_
|