13551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
23551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
33551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)// found in the LICENSE file.
43551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
53551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#ifndef CC_TEST_FAKE_PAINTED_SCROLLBAR_LAYER_H_
63551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#define CC_TEST_FAKE_PAINTED_SCROLLBAR_LAYER_H_
73551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
83551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "base/memory/scoped_ptr.h"
93551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "cc/layers/painted_scrollbar_layer.h"
103551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#include "cc/test/fake_scrollbar.h"
113551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
123551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)namespace base { template<typename T> class AutoReset; }
133551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
143551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)namespace cc {
153551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
163551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)class FakePaintedScrollbarLayer : public PaintedScrollbarLayer {
173551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) public:
183551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  static scoped_refptr<FakePaintedScrollbarLayer>
193551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)      Create(bool paint_during_update, bool has_thumb, int scrolling_layer_id);
203551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  int update_count() const { return update_count_; }
213551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  void reset_update_count() { update_count_ = 0; }
223551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
233551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  virtual bool Update(ResourceUpdateQueue* queue,
24a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles)                      const OcclusionTracker<Layer>* occlusion) OVERRIDE;
253551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
263551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  virtual void PushPropertiesTo(LayerImpl* layer) OVERRIDE;
273551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
283551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  scoped_ptr<base::AutoReset<bool> > IgnoreSetNeedsCommit();
293551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
303551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  size_t push_properties_count() const { return push_properties_count_; }
313551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  void reset_push_properties_count() { push_properties_count_ = 0; }
323551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
333551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  // For unit tests
343551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  UIResourceId track_resource_id() {
353551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    return PaintedScrollbarLayer::track_resource_id();
363551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  }
373551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  UIResourceId thumb_resource_id() {
383551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    return PaintedScrollbarLayer::thumb_resource_id();
393551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  }
403551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  FakeScrollbar* fake_scrollbar() {
413551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)    return fake_scrollbar_;
423551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  }
433551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  using PaintedScrollbarLayer::UpdateThumbAndTrackGeometry;
443551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
453551c9c881056c480085172ff9840cab31610854Torne (Richard Coles) private:
463551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  FakePaintedScrollbarLayer(FakeScrollbar* fake_scrollbar,
473551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)                            int scrolling_layer_id);
483551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  virtual ~FakePaintedScrollbarLayer();
493551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
503551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  int update_count_;
513551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  size_t push_properties_count_;
523551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)  FakeScrollbar* fake_scrollbar_;
533551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)};
543551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
553551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)}  // namespace cc
563551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)
573551c9c881056c480085172ff9840cab31610854Torne (Richard Coles)#endif  // CC_TEST_FAKE_PAINTED_SCROLLBAR_LAYER_H_
58