1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "ui/views/layout/fill_layout.h"
7 #include "base/logging.h"
11 FillLayout::FillLayout() {}
13 FillLayout::~FillLayout() {}
15 void FillLayout::Layout(View
* host
) {
16 if (!host
->has_children())
19 View
* frame_view
= host
->child_at(0);
20 frame_view
->SetBoundsRect(host
->GetContentsBounds());
23 gfx::Size
FillLayout::GetPreferredSize(const View
* host
) const {
24 if (!host
->has_children())
26 DCHECK_EQ(1, host
->child_count());
27 gfx::Rect
rect(host
->child_at(0)->GetPreferredSize());
28 rect
.Inset(-host
->GetInsets());
32 int FillLayout::GetPreferredHeightForWidth(const View
* host
, int width
) const {
33 if (!host
->has_children())
35 DCHECK_EQ(1, host
->child_count());
36 const gfx::Insets insets
= host
->GetInsets();
37 return host
->child_at(0)->GetHeightForWidth(width
- insets
.width()) +