blob: 3ffbcfe628f91cc69f56f37cd4b0d833a5a64a4d [file] [log] [blame]
// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/ui/views/controls/page_switcher_view.h"
#include <utility>
#include "chrome/browser/ui/views/page_info/page_info_view_factory.h"
#include "ui/views/layout/fill_layout.h"
PageSwitcherView::PageSwitcherView(std::unique_ptr<views::View> initial_page) {
SetLayoutManager(std::make_unique<views::FillLayout>());
current_page_ = AddChildView(std::move(initial_page));
}
PageSwitcherView::~PageSwitcherView() = default;
void PageSwitcherView::SwitchToPage(std::unique_ptr<views::View> page) {
if (current_page_) {
RemoveChildViewT(std::exchange(current_page_, nullptr).get());
}
current_page_ = AddChildView(std::move(page));
PreferredSizeChanged();
}
views::View* PageSwitcherView::GetCurrentPage() {
return current_page_;
}
void PageSwitcherView::ChildPreferredSizeChanged(views::View* child) {
PreferredSizeChanged();
}