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 10 namespace views { 11 class View; 12 } 13 14 namespace athena { 15 class 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 29 enum DragHandleScrollDirection { DRAG_HANDLE_VERTICAL, DRAG_HANDLE_HORIZONTAL }; 30 31 // Creates a handle view which notifies the delegate of the scrolls performed on 32 // it. 33 ATHENA_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