Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(34)

Side by Side Diff: content/browser/web_contents/web_contents_view_overscroll_animator_mac.h

Issue 314393003: mac: Add overscroll animator slider (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase against top of tree. Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(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_
OLDNEW
« no previous file with comments | « base/mac/sdk_forward_declarations.h ('k') | content/browser/web_contents/web_contents_view_overscroll_animator_slider_mac.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698