#include "chrome/browser/ui/views/tabs/tab_search_container.h"
#include "base/metrics/histogram_macros.h"
#include "base/time/time.h"
#include "chrome/browser/ui/browser_element_identifiers.h"
#include "chrome/browser/ui/browser_window/public/browser_window_features.h"
#include "chrome/browser/ui/tabs/organization/tab_declutter_controller.h"
#include "chrome/browser/ui/tabs/organization/tab_organization_service.h"
#include "chrome/browser/ui/tabs/organization/tab_organization_service_factory.h"
#include "chrome/browser/ui/tabs/organization/tab_organization_utils.h"
#include "chrome/browser/ui/views/tabs/tab_organization_button.h"
#include "chrome/browser/ui/views/tabs/tab_search_button.h"
#include "chrome/browser/ui/views/tabs/tab_strip.h"
#include "chrome/browser/ui/views/tabs/tab_strip_controller.h"
#include "chrome/grit/generated_resources.h"
#include "ui/base/l10n/l10n_util.h"
#include "ui/base/metadata/metadata_impl_macros.h"
#include "ui/gfx/animation/tween.h"
#include "ui/views/layout/flex_layout.h"
#include "ui/views/mouse_watcher.h"
#include "ui/views/mouse_watcher_view_host.h"
#include "ui/views/view_class_properties.h"
namespace {
enum class TriggerOutcome { … };
constexpr base::TimeDelta kExpansionInDuration = …;
constexpr base::TimeDelta kExpansionOutDuration = …;
constexpr base::TimeDelta kFlatEdgeInDuration = …;
constexpr base::TimeDelta kFlatEdgeOutDuration = …;
constexpr base::TimeDelta kOpacityInDuration = …;
constexpr base::TimeDelta kOpacityOutDuration = …;
constexpr base::TimeDelta kOpacityDelay = …;
constexpr base::TimeDelta kShowDuration = …;
constexpr char kTriggerOutcomeName[] = …;
Edge GetFlatEdge(bool is_search_button, bool before_tab_strip) { … }
}
TabSearchContainer::TabSearchContainer(
TabStripController* tab_strip_controller,
TabStripModel* tab_strip_model,
bool before_tab_strip,
View* locked_expansion_view,
tabs::TabDeclutterController* tab_declutter_controller)
: … { … }
TabSearchContainer::~TabSearchContainer() { … }
void TabSearchContainer::ShowTabOrganization() { … }
void TabSearchContainer::HideTabOrganization() { … }
void TabSearchContainer::SetLockedExpansionModeForTesting(
LockedExpansionMode mode) { … }
void TabSearchContainer::OnOrganizeButtonClicked() { … }
void TabSearchContainer::OnOrganizeButtonDismissed() { … }
void TabSearchContainer::OnOrganizeButtonTimeout() { … }
void TabSearchContainer::SetLockedExpansionMode(LockedExpansionMode mode) { … }
void TabSearchContainer::ExecuteShowTabOrganization() { … }
void TabSearchContainer::ShowOpacityAnimation() { … }
void TabSearchContainer::ExecuteHideTabOrganization() { … }
void TabSearchContainer::MouseMovedOutOfHost() { … }
void TabSearchContainer::AnimationCanceled(const gfx::Animation* animation) { … }
void TabSearchContainer::AnimationEnded(const gfx::Animation* animation) { … }
void TabSearchContainer::AnimationProgressed(const gfx::Animation* animation) { … }
void TabSearchContainer::ApplyAnimationValue(const gfx::Animation* animation) { … }
base::TimeDelta TabSearchContainer::GetAnimationDuration(
base::TimeDelta duration) { … }
void TabSearchContainer::OnToggleActionUIState(const Browser* browser,
bool should_show) { … }
void TabSearchContainer::OnTriggerDeclutterUIVisibility(bool should_show) { … }
BEGIN_METADATA(…)