| Index: chrome/browser/ui/touch/tabs/touch_tab_strip.h
|
| diff --git a/chrome/browser/ui/touch/tabs/touch_tab_strip.h b/chrome/browser/ui/touch/tabs/touch_tab_strip.h
|
| index 1ba8b400d714fbd6c572db608c284a3797c6d418..770fcc230fd378e5e3baf5bb73f6514c76fa4631 100644
|
| --- a/chrome/browser/ui/touch/tabs/touch_tab_strip.h
|
| +++ b/chrome/browser/ui/touch/tabs/touch_tab_strip.h
|
| @@ -19,6 +19,7 @@ class TouchTab;
|
| // - It implements the TabStripModelObserver interface, and acts as a
|
| // container for Tabs, and is also responsible for creating them.
|
| //
|
| +// TODO(wyck): Use transformable views for scrolling.
|
| ///////////////////////////////////////////////////////////////////////////////
|
| class TouchTabStrip : public BaseTabStrip {
|
| public:
|
| @@ -48,6 +49,12 @@ class TouchTabStrip : public BaseTabStrip {
|
| bool initial_drag);
|
| virtual int GetSizeNeededForTabs(const std::vector<BaseTab*>& tabs);
|
|
|
| + // views::View overrides:
|
| + virtual bool OnMousePressed(const views::MouseEvent& event) OVERRIDE;
|
| + virtual bool OnMouseDragged(const views::MouseEvent& event) OVERRIDE;
|
| + virtual void OnMouseReleased(const views::MouseEvent& event,
|
| + bool canceled) OVERRIDE;
|
| +
|
| // Retrieves the Tab at the specified index. Remember, the specified index
|
| // is in terms of tab_data, *not* the model.
|
| TouchTab* GetTabAtTabDataIndex(int tab_data_index) const;
|
| @@ -64,6 +71,24 @@ class TouchTabStrip : public BaseTabStrip {
|
| View* parent,
|
| View* child) OVERRIDE;
|
|
|
| + // Adjusts the state of scroll interaction when a mouse press occurs at the
|
| + // given point. Sets an appropriate |initial_scroll_offset_|.
|
| + void BeginScroll(const gfx::Point& point);
|
| +
|
| + // Adjusts the state of scroll interaction when the mouse is dragged to the
|
| + // given point. If the scroll is not beyond the minimum threshold, the tabs
|
| + // will not actually scroll.
|
| + void ContinueScroll(const gfx::Point& point);
|
| +
|
| + // Adjusts the state of scroll interaction when the mouse is released. Either
|
| + // scrolls to the final mouse release point or selects the current tab
|
| + // depending on whether the mouse was dragged beyone the minimum threshold.
|
| + void EndScroll(const gfx::Point& point);
|
| +
|
| + // Adjust the positions of the tabs to perform a scroll of |delta_x| relative
|
| + // to the |initial_scroll_offset_|.
|
| + void ScrollTo(int delta_x);
|
| +
|
| // True if PrepareForCloseAt has been invoked. When true remove animations
|
| // preserve current tab bounds.
|
| bool in_tab_close_;
|
| @@ -74,6 +99,29 @@ class TouchTabStrip : public BaseTabStrip {
|
| // The view that was tapped last.
|
| View* last_tapped_view_;
|
|
|
| + // Records the mouse x coordinate at the start of a drag operation.
|
| + int initial_mouse_x_;
|
| +
|
| + // Records the scroll offset at the time of the start of a drag operation.
|
| + int initial_scroll_offset_;
|
| +
|
| + // The current offset of the view. Positive scroll offsets move the icons to
|
| + // the left. Negative scroll offsets move the icons to the right.
|
| + int scroll_offset_;
|
| +
|
| + // State of the scrolling interaction. Will be true once the drag has been
|
| + // displaced beyond the minimum dragging threshold.
|
| + bool scrolling_;
|
| +
|
| + // Records the tab that was under the initial mouse press. Must match the
|
| + // tab that was under the final mouse release in order for the tab to
|
| + // be selected.
|
| + TouchTab* initial_tab_;
|
| +
|
| + // The minimum value that |scroll_offset_| can have. Based on the total
|
| + // width of all the content to be scrolled, less the viewport size.
|
| + int min_scroll_offset_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(TouchTabStrip);
|
| };
|
|
|
|
|