Index: ash/shelf/shelf_view.h |
diff --git a/ash/shelf/shelf_view.h b/ash/shelf/shelf_view.h |
index 1343283eed27a7bd60427058938e60246da53d53..6971374c45b14c311e3e0ee2a6833da3ee7535d1 100644 |
--- a/ash/shelf/shelf_view.h |
+++ b/ash/shelf/shelf_view.h |
@@ -9,10 +9,10 @@ |
#include <utility> |
#include <vector> |
-#include "ash/shelf/shelf_button_host.h" |
#include "ash/shelf/shelf_button_pressed_metric_tracker.h" |
#include "ash/shelf/shelf_item_delegate.h" |
#include "ash/shelf/shelf_model_observer.h" |
+#include "ash/shelf/shelf_tooltip_manager.h" |
#include "ash/wm/gestures/shelf_gesture_handler.h" |
#include "base/macros.h" |
#include "base/observer_list.h" |
@@ -44,7 +44,6 @@ class DragImageView; |
class OverflowBubble; |
class OverflowButton; |
class ShelfButton; |
-class ShelfTooltipManager; |
namespace test { |
class ShelfViewTestAPI; |
@@ -58,7 +57,6 @@ extern const int SHELF_ALIGNMENT_UMA_ENUM_VALUE_COUNT; |
class ASH_EXPORT ShelfView : public views::View, |
public ShelfModelObserver, |
public views::ButtonListener, |
- public ShelfButtonHost, |
public views::ContextMenuController, |
public views::FocusTraversable, |
public views::BoundsAnimatorObserver, |
@@ -67,8 +65,6 @@ class ASH_EXPORT ShelfView : public views::View, |
ShelfView(ShelfModel* model, ShelfDelegate* delegate, Shelf* shelf); |
~ShelfView() override; |
- ShelfTooltipManager* tooltip_manager() { return tooltip_.get(); } |
- |
Shelf* shelf() const { return shelf_; } |
ShelfModel* model() const { return model_; } |
@@ -106,7 +102,13 @@ class ASH_EXPORT ShelfView : public views::View, |
// There are thin gaps between launcher buttons but the tooltip shouldn't hide |
// in the gaps, but the tooltip should hide if the mouse moved totally outside |
// of the buttons area. |
- bool ShouldHideTooltip(const gfx::Point& cursor_location); |
+ bool ShouldHideTooltip(const gfx::Point& cursor_location) const; |
+ |
+ // Returns true if a tooltip should be shown for the shelf item |view|. |
+ bool ShouldShowTooltipForView(const views::View* view) const; |
+ |
+ // Returns the title of the shelf item |view|. |
+ base::string16 GetTitleForView(const views::View* view) const; |
// Returns rectangle bounding all visible launcher items. Used screen |
// coordinate system. |
@@ -131,6 +133,18 @@ class ASH_EXPORT ShelfView : public views::View, |
bool Drag(const gfx::Point& location_in_screen_coordinates) override; |
void EndDrag(bool cancel) override; |
+ // The shelf buttons use the Pointer interface to enable item reordering. |
+ enum Pointer { NONE, DRAG_AND_DROP, MOUSE, TOUCH }; |
+ void PointerPressedOnButton(views::View* view, |
+ Pointer pointer, |
+ const ui::LocatedEvent& event); |
+ void PointerDraggedOnButton(views::View* view, |
+ Pointer pointer, |
+ const ui::LocatedEvent& event); |
+ void PointerReleasedOnButton(views::View* view, |
+ Pointer pointer, |
+ bool canceled); |
+ |
// Return the view model for test purposes. |
const views::ViewModel* view_model_for_test() const { |
return view_model_.get(); |
@@ -246,6 +260,8 @@ class ASH_EXPORT ShelfView : public views::View, |
void OnBoundsChanged(const gfx::Rect& previous_bounds) override; |
FocusTraversable* GetPaneFocusTraversable() override; |
void GetAccessibleState(ui::AXViewState* state) override; |
+ void ViewHierarchyChanged( |
+ const ViewHierarchyChangedDetails& details) override; |
// Overridden from ui::EventHandler: |
void OnGestureEvent(ui::GestureEvent* event) override; |
@@ -256,21 +272,6 @@ class ASH_EXPORT ShelfView : public views::View, |
void ShelfItemChanged(int model_index, const ShelfItem& old_item) override; |
void ShelfItemMoved(int start_index, int target_index) override; |
- // Overridden from ShelfButtonHost: |
- void PointerPressedOnButton(views::View* view, |
- Pointer pointer, |
- const ui::LocatedEvent& event) override; |
- void PointerDraggedOnButton(views::View* view, |
- Pointer pointer, |
- const ui::LocatedEvent& event) override; |
- void PointerReleasedOnButton(views::View* view, |
- Pointer pointer, |
- bool canceled) override; |
- void MouseMovedOverButton(views::View* view) override; |
- void MouseEnteredButton(views::View* view) override; |
- void MouseExitedButton(views::View* view) override; |
- base::string16 GetAccessibleName(const views::View* view) override; |
- |
// Overridden from views::ButtonListener: |
void ButtonPressed(views::Button* sender, const ui::Event& event) override; |
@@ -309,9 +310,6 @@ class ASH_EXPORT ShelfView : public views::View, |
// Convenience accessor to model_->items(). |
const ShelfItem* ShelfItemForView(const views::View* view) const; |
- // Returns true if a tooltip should be shown for |view|. |
- bool ShouldShowTooltipForView(const views::View* view) const; |
- |
// Get the distance from the given |coordinate| to the closest point on this |
// launcher/shelf. |
int CalculateShelfDistance(const gfx::Point& coordinate) const; |
@@ -344,7 +342,7 @@ class ASH_EXPORT ShelfView : public views::View, |
OverflowBubble* owner_overflow_bubble_; |
- scoped_ptr<ShelfTooltipManager> tooltip_; |
+ ShelfTooltipManager tooltip_; |
// Pointer device that initiated the current drag operation. If there is no |
// current dragging operation, this is NONE. |