1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef ATHENA_UTIL_DRAG_HANDLE_H_ 6#define ATHENA_UTIL_DRAG_HANDLE_H_ 7 8#include "athena/athena_export.h" 9 10namespace views { 11class View; 12} 13 14namespace athena { 15class DragHandleScrollDelegate { 16 public: 17 virtual ~DragHandleScrollDelegate() {} 18 19 // Beginning of a scroll gesture. 20 virtual void HandleScrollBegin(float delta) = 0; 21 22 // End of the current scroll gesture. 23 virtual void HandleScrollEnd() = 0; 24 25 // Update of the scroll position for the currently active scroll gesture. 26 virtual void HandleScrollUpdate(float delta) = 0; 27}; 28 29enum DragHandleScrollDirection { DRAG_HANDLE_VERTICAL, DRAG_HANDLE_HORIZONTAL }; 30 31// Creates a handle view which notifies the delegate of the scrolls performed on 32// it. 33ATHENA_EXPORT views::View* CreateDragHandleView( 34 DragHandleScrollDirection scroll_direction, 35 DragHandleScrollDelegate* delegate, 36 int preferred_width, 37 int preferred_height); 38 39} // namespace athena 40 41#endif // ATHENA_UTIL_DRAG_HANDLE_H_ 42