OLD | NEW |
| (Empty) |
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 CONTENT_BROWSER_WEB_CONTENTS_WEB_CONTENTS_VIEW_OVERSCROLL_ANIMATOR_MAC_H
_ | |
6 #define CONTENT_BROWSER_WEB_CONTENTS_WEB_CONTENTS_VIEW_OVERSCROLL_ANIMATOR_MAC_H
_ | |
7 | |
8 #import <Cocoa/Cocoa.h> | |
9 | |
10 namespace content { | |
11 class WebContentsImpl; | |
12 | |
13 // The direction of the overscroll animations. Backwards means that the user | |
14 // wants to navigate backwards in the navigation history. The opposite applies | |
15 // to forwards. | |
16 enum OverscrollAnimatorDirection { | |
17 OVERSCROLL_ANIMATOR_DIRECTION_BACKWARDS, | |
18 OVERSCROLL_ANIMATOR_DIRECTION_FORWARDS, | |
19 }; | |
20 } // namespace content | |
21 | |
22 // NSViews that intend to manage the animation associated with an overscroll | |
23 // must implement this protocol. | |
24 @protocol WebContentsOverscrollAnimator | |
25 // Some implementations require the WebContentsView to supply a snapshot of a | |
26 // previous navigation state. This method determines whether the snapshot passed | |
27 // to the overscroll animator is expected to be non-nil. | |
28 - (BOOL)needsNavigationSnapshot; | |
29 | |
30 // Begin an overscroll animation. The method -needsNavigationSnapshot determines | |
31 // whether |snapshot| can be nil. | |
32 - (void)beginOverscrollInDirection: | |
33 (content::OverscrollAnimatorDirection)direction | |
34 navigationSnapshot:(NSImage*)snapshot; | |
35 | |
36 // Due to the nature of some of the overscroll animations, implementators of | |
37 // this protocol must have control over the layout of the RenderWidgetHost's | |
38 // NativeView. When there is no overscroll animation in progress, the | |
39 // implementor must guarantee that the frame of the RenderWidgetHost's | |
40 // NativeView in screen coordinates is the same as its own frame in screen | |
41 // coordinates. | |
42 // Due to the odd ownership cycles of the RenderWidgetHost's NativeView, it is | |
43 // important that its presence in the NSView hierarchy is the only strong | |
44 // reference, and that when it gets removed from the NSView hierarchy, it will | |
45 // be dealloc'ed shortly thereafter. | |
46 - (void)addRenderWidgetHostNativeView:(NSView*)view; | |
47 | |
48 // During an overscroll animation, |progress| ranges from 0 to 2, and indicates | |
49 // how close the overscroll is to completing. If the overscroll ends with | |
50 // |progress| >= 1, then the overscroll is considered completed. | |
51 - (void)updateOverscrollProgress:(CGFloat)progress; | |
52 | |
53 // Animate the finish of the overscroll and perform a navigation. The navigation | |
54 // may not happen synchronously, but is guaranteed to eventually occur. | |
55 - (void)completeOverscroll:(content::WebContentsImpl*)webContents; | |
56 | |
57 // Animate the cancellation of the overscroll. | |
58 - (void)cancelOverscroll; | |
59 @end | |
60 | |
61 #endif // CONTENT_BROWSER_WEB_CONTENTS_WEB_CONTENTS_VIEW_OVERSCROLL_ANIMATOR_MA
C_H_ | |
OLD | NEW |