// Copyright 2012 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_GLOW_HOVER_CONTROLLER_H_ #define CHROME_BROWSER_UI_VIEWS_TABS_GLOW_HOVER_CONTROLLER_H_ #include "base/memory/raw_ptr.h" #include "chrome/browser/ui/tabs/tab_style.h" #include "ui/gfx/animation/slide_animation.h" #include "ui/views/animation/animation_delegate_views.h" namespace gfx { class Point; } namespace views { class View; } // GlowHoverController is responsible for drawing a hover effect as is used by // the tabstrip. Typical usage: // OnMouseEntered() -> invoke Show(). // OnMouseMoved() -> invoke SetLocation(). // OnMouseExited() -> invoke Hide(). // OnPaint() -> if ShouldDraw() returns true invoke Draw(). // Internally GlowHoverController uses an animation to animate the glow and // invokes SchedulePaint() back on the View as necessary. class GlowHoverController : public views::AnimationDelegateViews { … }; #endif // CHROME_BROWSER_UI_VIEWS_TABS_GLOW_HOVER_CONTROLLER_H_