| Index: ash/shelf/shelf_tooltip_manager.h
|
| diff --git a/ash/shelf/shelf_tooltip_manager.h b/ash/shelf/shelf_tooltip_manager.h
|
| index 17eaee4b9e7f515591c94ddb5cb8e423914ccd13..67682577ae66bc3ef19e7501fd0d63712248a357 100644
|
| --- a/ash/shelf/shelf_tooltip_manager.h
|
| +++ b/ash/shelf/shelf_tooltip_manager.h
|
| @@ -7,106 +7,72 @@
|
|
|
| #include "ash/ash_export.h"
|
| #include "ash/shelf/shelf_layout_manager_observer.h"
|
| -#include "ash/shelf/shelf_types.h"
|
| #include "base/macros.h"
|
| #include "base/memory/weak_ptr.h"
|
| #include "base/strings/string16.h"
|
| +#include "base/timer/timer.h"
|
| #include "ui/events/event_handler.h"
|
| -#include "ui/gfx/geometry/rect.h"
|
| -#include "ui/views/bubble/bubble_border.h"
|
| -#include "ui/views/bubble/bubble_delegate.h"
|
| -
|
| -namespace base {
|
| -class Timer;
|
| -}
|
|
|
| namespace views {
|
| class BubbleDelegateView;
|
| -class Label;
|
| +class View;
|
| }
|
|
|
| namespace ash {
|
| -class ShelfView;
|
| class ShelfLayoutManager;
|
| +class ShelfView;
|
|
|
| namespace test {
|
| class ShelfTooltipManagerTest;
|
| class ShelfViewTest;
|
| }
|
|
|
| -// ShelfTooltipManager manages the tooltip balloon poping up on shelf items.
|
| +// ShelfTooltipManager manages the tooltip bubble that appears for shelf items.
|
| class ASH_EXPORT ShelfTooltipManager : public ui::EventHandler,
|
| public ShelfLayoutManagerObserver {
|
| public:
|
| - ShelfTooltipManager(ShelfLayoutManager* shelf_layout_manager,
|
| - ShelfView* shelf_view);
|
| + explicit ShelfTooltipManager(ShelfView* shelf_view);
|
| ~ShelfTooltipManager() override;
|
|
|
| - ShelfLayoutManager* shelf_layout_manager() { return shelf_layout_manager_; }
|
| -
|
| - // Called when the bubble is closed.
|
| - void OnBubbleClosed(views::BubbleDelegateView* view);
|
| -
|
| - // Shows the tooltip after a delay. It also has the appearing animation.
|
| - void ShowDelayed(views::View* anchor, const base::string16& text);
|
| -
|
| - // Shows the tooltip immediately. It omits the appearing animation.
|
| - void ShowImmediately(views::View* anchor, const base::string16& text);
|
| + // Initializes the tooltip manager once the shelf is shown.
|
| + void Init();
|
|
|
| // Closes the tooltip.
|
| void Close();
|
|
|
| - // Changes the arrow location of the tooltip in case that the launcher
|
| - // arrangement has changed.
|
| - void UpdateArrow();
|
| -
|
| - // Resets the timer for the delayed showing |view_|. If the timer isn't
|
| - // running, it starts a new timer.
|
| - void ResetTimer();
|
| -
|
| - // Stops the timer for the delayed showing |view_|.
|
| - void StopTimer();
|
| -
|
| // Returns true if the tooltip is currently visible.
|
| - bool IsVisible();
|
| + bool IsVisible() const;
|
| +
|
| + // Returns the view to which the tooltip bubble is anchored. May be null.
|
| + views::View* GetCurrentAnchorView() const;
|
|
|
| - // Returns the view to which the tooltip bubble is anchored. May be NULL.
|
| - views::View* GetCurrentAnchorView() { return anchor_; }
|
| + // Show the tooltip bubble for the specified view.
|
| + void ShowTooltip(views::View* view);
|
| + void ShowTooltipWithDelay(views::View* view);
|
|
|
| - // Create an instant timer for test purposes.
|
| - void CreateZeroDelayTimerForTest();
|
| + // Set the timer delay in ms for testing.
|
| + void set_timer_delay_for_test(int timer_delay) { timer_delay_ = timer_delay; }
|
|
|
| -protected:
|
| + protected:
|
| // ui::EventHandler overrides:
|
| - void OnMouseEvent(ui::MouseEvent* event) override;
|
| - void OnTouchEvent(ui::TouchEvent* event) override;
|
| - void OnGestureEvent(ui::GestureEvent* event) override;
|
| - void OnCancelMode(ui::CancelModeEvent* event) override;
|
| + void OnEvent(ui::Event* event) override;
|
|
|
| // ShelfLayoutManagerObserver overrides:
|
| - void WillDeleteShelf() override;
|
| - void WillChangeVisibilityState(ShelfVisibilityState new_state) override;
|
| - void OnAutoHideStateChanged(ShelfAutoHideState new_state) override;
|
| + void WillDeleteShelf() override;
|
| + void WillChangeVisibilityState(ShelfVisibilityState new_state) override;
|
| + void OnAutoHideStateChanged(ShelfAutoHideState new_state) override;
|
|
|
| private:
|
| class ShelfTooltipBubble;
|
| friend class test::ShelfViewTest;
|
| friend class test::ShelfTooltipManagerTest;
|
|
|
| - void CancelHidingAnimation();
|
| - void CloseSoon();
|
| - void ShowInternal();
|
| - void CreateBubble(views::View* anchor, const base::string16& text);
|
| - void CreateTimer(int delay_in_ms);
|
| + int timer_delay_;
|
| + base::OneShotTimer timer_;
|
|
|
| - ShelfTooltipBubble* view_;
|
| - views::Widget* widget_;
|
| - views::View* anchor_;
|
| - base::string16 text_;
|
| - scoped_ptr<base::Timer> timer_;
|
| -
|
| - ShelfLayoutManager* shelf_layout_manager_;
|
| ShelfView* shelf_view_;
|
| + ShelfLayoutManager* shelf_layout_manager_;
|
| + views::BubbleDelegateView* bubble_;
|
|
|
| base::WeakPtrFactory<ShelfTooltipManager> weak_factory_;
|
|
|
|
|