blob: c4605b4085e9885f435dc91472d154956ccb2845 [file] [log] [blame]
// Copyright 2025 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/frame/find_bar_owner_views.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/ui/views/frame/browser_view.h"
#include "chrome/browser/ui/views/frame/immersive_mode_controller.h"
#include "chrome/browser/ui/views/translate/translate_bubble_controller.h"
#include "components/strings/grit/components_strings.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/views/widget/widget.h"
FindBarOwnerViews::FindBarOwnerViews(BrowserView* browser_view)
: browser_view_(browser_view) {}
FindBarOwnerViews::~FindBarOwnerViews() = default;
views::Widget* FindBarOwnerViews::GetOwnerWidget() {
return browser_view_->GetWidget();
}
gfx::Rect FindBarOwnerViews::GetFindBarBoundingBox() {
return browser_view_->GetFindBarBoundingBox();
}
gfx::Rect FindBarOwnerViews::GetFindBarClippingBox() {
return browser_view_->bounds();
}
bool FindBarOwnerViews::IsOffTheRecord() const {
return browser_view_->browser()->profile()->IsOffTheRecord();
}
views::Widget* FindBarOwnerViews::GetWidgetForAnchoring() {
return browser_view_->GetWidgetForAnchoring();
}
std::u16string FindBarOwnerViews::GetFindBarAccessibleWindowTitle() {
return l10n_util::GetStringFUTF16(
IDS_FIND_IN_PAGE_ACCESSIBLE_TITLE,
browser_view_->browser()->GetWindowTitleForCurrentTab(false));
}
void FindBarOwnerViews::OnFindBarVisibilityChanged(gfx::Rect visible_bounds) {
// Tell the immersive mode controller about the find bar's new bounds. The
// immersive mode controller uses the bounds to keep the top-of-window views
// revealed when the mouse is hovered over the find bar.
ImmersiveModeController::From(browser_view_->browser())
->OnFindBarVisibleBoundsChanged(visible_bounds);
browser_view_->browser()->OnFindBarVisibilityChanged();
}
void FindBarOwnerViews::CloseOverlappingBubbles() {
if (TranslateBubbleController* controller =
TranslateBubbleController::From(browser_view_->browser())) {
controller->CloseBubble();
}
}