// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef CC_TEST_FAKE_PAINTED_SCROLLBAR_LAYER_H_
#define CC_TEST_FAKE_PAINTED_SCROLLBAR_LAYER_H_
#include "base/memory/scoped_ptr.h"
#include "cc/layers/painted_scrollbar_layer.h"
#include "cc/test/fake_scrollbar.h"
namespace base { template<typename T> class AutoReset; }
namespace cc {
class FakePaintedScrollbarLayer : public PaintedScrollbarLayer {
public:
static scoped_refptr<FakePaintedScrollbarLayer>
Create(bool paint_during_update, bool has_thumb, int scrolling_layer_id);
int update_count() const { return update_count_; }
void reset_update_count() { update_count_ = 0; }
virtual bool Update(ResourceUpdateQueue* queue,
const OcclusionTracker<Layer>* occlusion) OVERRIDE;
virtual void PushPropertiesTo(LayerImpl* layer) OVERRIDE;
scoped_ptr<base::AutoReset<bool> > IgnoreSetNeedsCommit();
size_t push_properties_count() const { return push_properties_count_; }
void reset_push_properties_count() { push_properties_count_ = 0; }
// For unit tests
UIResourceId track_resource_id() {
return PaintedScrollbarLayer::track_resource_id();
}
UIResourceId thumb_resource_id() {
return PaintedScrollbarLayer::thumb_resource_id();
}
FakeScrollbar* fake_scrollbar() {
return fake_scrollbar_;
}
using PaintedScrollbarLayer::UpdateThumbAndTrackGeometry;
private:
FakePaintedScrollbarLayer(FakeScrollbar* fake_scrollbar,
int scrolling_layer_id);
virtual ~FakePaintedScrollbarLayer();
int update_count_;
size_t push_properties_count_;
FakeScrollbar* fake_scrollbar_;
};
} // namespace cc
#endif // CC_TEST_FAKE_PAINTED_SCROLLBAR_LAYER_H_