158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)// found in the LICENSE file. 458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#ifndef CC_LAYERS_SOLID_COLOR_SCROLLBAR_LAYER_H_ 658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#define CC_LAYERS_SOLID_COLOR_SCROLLBAR_LAYER_H_ 758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#include "cc/base/cc_export.h" 958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#include "cc/layers/layer.h" 1058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#include "cc/layers/scrollbar_layer_interface.h" 1158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 1258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)namespace cc { 1358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 1458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)class CC_EXPORT SolidColorScrollbarLayer : public ScrollbarLayerInterface, 1558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) public Layer { 1658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) public: 1758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual scoped_ptr<LayerImpl> CreateLayerImpl(LayerTreeImpl* tree_impl) 1858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) OVERRIDE; 1958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 2058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) static scoped_refptr<SolidColorScrollbarLayer> Create( 2158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) ScrollbarOrientation orientation, 2258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) int thumb_thickness, 23a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch int track_start, 2458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) bool is_left_side_vertical_scrollbar, 2558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) int scroll_layer_id); 2658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 2758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) // Layer overrides. 2858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual bool OpacityCanAnimateOnImplThread() const OVERRIDE; 2958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual ScrollbarLayerInterface* ToScrollbarLayer() OVERRIDE; 3058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 315d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual void PushPropertiesTo(LayerImpl* layer) OVERRIDE; 325d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual void PushScrollClipPropertiesTo(LayerImpl* layer) OVERRIDE; 335d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) 34a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) virtual void SetNeedsDisplayRect(const gfx::RectF&) OVERRIDE; 35a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) 3658537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) // ScrollbarLayerInterface 3758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual int ScrollLayerId() const OVERRIDE; 385d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual void SetScrollLayer(int layer_id) OVERRIDE; 395d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) virtual void SetClipLayer(int layer_id) OVERRIDE; 4058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 4158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual ScrollbarOrientation orientation() const OVERRIDE; 4258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 4358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) protected: 4458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) SolidColorScrollbarLayer(ScrollbarOrientation orientation, 4558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) int thumb_thickness, 46a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch int track_start, 4758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) bool is_left_side_vertical_scrollbar, 4858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) int scroll_layer_id); 4958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) virtual ~SolidColorScrollbarLayer(); 5058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 5158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) private: 5258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) int scroll_layer_id_; 535d1f7b1de12d16ceb2c938c56701a3e8bfa558f7Torne (Richard Coles) int clip_layer_id_; 5458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) ScrollbarOrientation orientation_; 5558537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) int thumb_thickness_; 56a02191e04bc25c4935f804f2c080ae28663d096dBen Murdoch int track_start_; 5758537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) bool is_left_side_vertical_scrollbar_; 5858537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 5958537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) DISALLOW_COPY_AND_ASSIGN(SolidColorScrollbarLayer); 6058537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)}; 6158537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 6258537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)} // namespace cc 6358537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles) 6458537e28ecd584eab876aee8be7156509866d23aTorne (Richard Coles)#endif // CC_LAYERS_SOLID_COLOR_SCROLLBAR_LAYER_H_ 65