blob: 831fabd4fac0c0672bc1500bd641ee2fd1837c9c [file] [log] [blame]
// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "ui/views/controls/button/label_button_image_container.h"
#include "ui/base/models/image_model.h"
#include "ui/views/controls/button/label_button.h"
namespace views {
std::unique_ptr<View> SingleImageContainer::CreateView() {
std::unique_ptr<ImageView> view = std::make_unique<ImageView>();
view->SetCanProcessEventsWithinSubtree(false);
image_view_tracker_.SetView(view.get());
return view;
}
View* SingleImageContainer::GetView() {
return image_view_tracker_.view();
}
const View* SingleImageContainer::GetView() const {
return image_view_tracker_.view();
}
void SingleImageContainer::UpdateImage(const LabelButton* button) {
if (auto* view = image_view_tracker_.view(); view) {
static_cast<ImageView*>(view)->SetImage(ui::ImageModel::FromImageSkia(
button->GetImage(button->GetVisualState())));
}
}
} // namespace views