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_TEST_FAKE_PAINTED_SCROLLBAR_LAYER_H_ 6 #define CC_TEST_FAKE_PAINTED_SCROLLBAR_LAYER_H_ 7 8 #include "base/memory/scoped_ptr.h" 9 #include "cc/layers/painted_scrollbar_layer.h" 10 #include "cc/test/fake_scrollbar.h" 11 12 namespace base { template<typename T> class AutoReset; } 13 14 namespace cc { 15 16 class FakePaintedScrollbarLayer : public PaintedScrollbarLayer { 17 public: 18 static scoped_refptr<FakePaintedScrollbarLayer> 19 Create(bool paint_during_update, bool has_thumb, int scrolling_layer_id); update_count()20 int update_count() const { return update_count_; } reset_update_count()21 void reset_update_count() { update_count_ = 0; } 22 23 virtual bool Update(ResourceUpdateQueue* queue, 24 const OcclusionTracker<Layer>* occlusion) OVERRIDE; 25 26 virtual void PushPropertiesTo(LayerImpl* layer) OVERRIDE; 27 28 scoped_ptr<base::AutoReset<bool> > IgnoreSetNeedsCommit(); 29 push_properties_count()30 size_t push_properties_count() const { return push_properties_count_; } reset_push_properties_count()31 void reset_push_properties_count() { push_properties_count_ = 0; } 32 33 // For unit tests track_resource_id()34 UIResourceId track_resource_id() { 35 return PaintedScrollbarLayer::track_resource_id(); 36 } thumb_resource_id()37 UIResourceId thumb_resource_id() { 38 return PaintedScrollbarLayer::thumb_resource_id(); 39 } fake_scrollbar()40 FakeScrollbar* fake_scrollbar() { 41 return fake_scrollbar_; 42 } 43 using PaintedScrollbarLayer::UpdateThumbAndTrackGeometry; 44 45 private: 46 FakePaintedScrollbarLayer(FakeScrollbar* fake_scrollbar, 47 int scrolling_layer_id); 48 virtual ~FakePaintedScrollbarLayer(); 49 50 int update_count_; 51 size_t push_properties_count_; 52 FakeScrollbar* fake_scrollbar_; 53 }; 54 55 } // namespace cc 56 57 #endif // CC_TEST_FAKE_PAINTED_SCROLLBAR_LAYER_H_ 58