OLD | NEW |
| (Empty) |
1 // Copyright 2013 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 CC_INPUT_LAYER_SCROLL_OFFSET_DELEGATE_H_ | |
6 #define CC_INPUT_LAYER_SCROLL_OFFSET_DELEGATE_H_ | |
7 | |
8 #include "base/basictypes.h" | |
9 #include "ui/gfx/geometry/scroll_offset.h" | |
10 #include "ui/gfx/geometry/size_f.h" | |
11 | |
12 namespace cc { | |
13 | |
14 // The LayerScrollOffsetDelegate allows for the embedder to take ownership of | |
15 // the scroll offset of the root layer. | |
16 // | |
17 // The LayerScrollOffsetDelegate is only used on the impl thread. | |
18 class LayerScrollOffsetDelegate { | |
19 public: | |
20 // This is called by the compositor to query the current scroll offset of the | |
21 // layer. | |
22 // There is no requirement that the return values of this method are | |
23 // stable in time (two subsequent calls may yield different results). | |
24 // The return value is not required to be related to the values passed in to | |
25 // the SetTotalScrollOffset method in any way however it is required to be no | |
26 // more than the value passed to the most recent SetMaxScrollOffset call. | |
27 virtual gfx::ScrollOffset GetTotalScrollOffset() = 0; | |
28 | |
29 // This is called by the compositor to notify the delegate of any change to | |
30 // the following parameters: | |
31 // |total_scroll_offset| current scroll offset of the root layer, | |
32 // |max_scroll_offset| total scroll offset upper bound for the root layer, | |
33 // |scrollable_size| root layer scrollable size, | |
34 // |page_scale_factor| current page scale, | |
35 // |min_page_scale_factor| page scale lower limit, | |
36 // |max_page_scale_factor| page scale upper limit. | |
37 virtual void UpdateRootLayerState( | |
38 const gfx::ScrollOffset& total_scroll_offset, | |
39 const gfx::ScrollOffset& max_scroll_offset, | |
40 const gfx::SizeF& scrollable_size, | |
41 float page_scale_factor, | |
42 float min_page_scale_factor, | |
43 float max_page_scale_factor) = 0; | |
44 | |
45 // This is called by the compositor to check whether a delegate-managed fling | |
46 // is active or not. | |
47 virtual bool IsExternalFlingActive() const = 0; | |
48 | |
49 protected: | |
50 LayerScrollOffsetDelegate() {} | |
51 virtual ~LayerScrollOffsetDelegate() {} | |
52 | |
53 private: | |
54 DISALLOW_COPY_AND_ASSIGN(LayerScrollOffsetDelegate); | |
55 }; | |
56 | |
57 } // namespace cc | |
58 | |
59 #endif // CC_INPUT_LAYER_SCROLL_OFFSET_DELEGATE_H_ | |
OLD | NEW |