// 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. #ifndef CHROME_BROWSER_UI_VIEWS_TABS_ALERT_INDICATOR_BUTTON_H_ #define CHROME_BROWSER_UI_VIEWS_TABS_ALERT_INDICATOR_BUTTON_H_ #include <memory> #include <optional> #include "base/memory/raw_ptr.h" #include "chrome/browser/ui/tabs/tab_utils.h" #include "ui/base/metadata/metadata_header_macros.h" #include "ui/base/models/image_model.h" #include "ui/color/color_id.h" #include "ui/views/controls/button/image_button.h" #include "ui/views/view_targeter_delegate.h" class Tab; namespace gfx { class Animation; class AnimationDelegate; } // namespace gfx // This is an ImageButton subclass that serves as both the alert indicator icon // (audio, tab capture, etc.), and as a mute button. It is meant to only be // used as a child view of Tab. // // When the indicator is transitioned to the audio playing or muting state, the // button functionality is enabled and begins handling mouse events. Otherwise, // this view behaves like an image and all mouse events will be handled by the // Tab (its parent View). class AlertIndicatorButton : public views::ImageButton, public views::ViewTargeterDelegate { … }; #endif // CHROME_BROWSER_UI_VIEWS_TABS_ALERT_INDICATOR_BUTTON_H_