blob: fa052677ccbd56aa1b69e65718a105065b796944 [file] [log] [blame]
// Copyright (c) 2011 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "ui/views/layout/layout_manager.h"
#include "base/auto_reset.h"
#include "ui/views/view.h"
namespace views {
LayoutManager::~LayoutManager() = default;
void LayoutManager::Installed(View* host) {
}
void LayoutManager::InvalidateLayout() {}
gfx::Size LayoutManager::GetMinimumSize(const View* host) const {
// Fall back to using preferred size if no minimum size calculation is
// available (e.g. legacy layout managers).
//
// Ideally we'd just call GetPreferredSize() on ourselves here, but because
// some legacy views with layout managers override GetPreferredSize(), we need
// to call GetPreferredSize() on the host view instead. The default
// views::View behavior will be to call GetPreferredSize() on this layout
// manager, so the fallback behavior in all other cases is as expected.
return host->GetPreferredSize();
}
int LayoutManager::GetPreferredHeightForWidth(const View* host,
int width) const {
return GetPreferredSize(host).height();
}
void LayoutManager::ViewAdded(View* host, View* view) {
}
void LayoutManager::ViewRemoved(View* host, View* view) {
}
void LayoutManager::ViewVisibilitySet(View* host, View* view, bool visible) {}
void LayoutManager::SetViewVisibility(View* view, bool visible) {
DCHECK_EQ(view->parent()->GetLayoutManager(), this);
base::AutoReset<View*> setter(&view_setting_visibility_on_, view);
view->SetVisible(visible);
}
} // namespace views