| Index: cc/layers/picture_scrollbar_layer.h
|
| ===================================================================
|
| --- cc/layers/picture_scrollbar_layer.h (revision 0)
|
| +++ cc/layers/picture_scrollbar_layer.h (revision 0)
|
| @@ -0,0 +1,91 @@
|
| +// Copyright 2012 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_LAYERS_PICTURE_SCROLLBAR_LAYER_H_
|
| +#define CC_LAYERS_PICTURE_SCROLLBAR_LAYER_H_
|
| +
|
| +#include "cc/base/cc_export.h"
|
| +#include "cc/input/scrollbar.h"
|
| +#include "cc/layers/contents_scaling_layer.h"
|
| +#include "cc/layers/scrollbar_theme_painter.h"
|
| +#include "cc/resources/layer_updater.h"
|
| +#include "cc/resources/ui_resource_manager.h"
|
| +
|
| +namespace cc {
|
| +class ResourceUpdateQueue;
|
| +class ScrollbarThemeComposite;
|
| +
|
| +class CC_EXPORT ScrollbarLayer : public ContentsScalingLayer,
|
| + public UIResourceManagerClient {
|
| + public:
|
| + virtual scoped_ptr<LayerImpl> CreateLayerImpl(LayerTreeImpl* tree_impl)
|
| + OVERRIDE;
|
| +
|
| + static scoped_refptr<ScrollbarLayer> Create(
|
| + scoped_ptr<Scrollbar> scrollbar,
|
| + int scroll_layer_id);
|
| +
|
| + int scroll_layer_id() const { return scroll_layer_id_; }
|
| + void SetScrollLayerId(int id);
|
| +
|
| + virtual bool OpacityCanAnimateOnImplThread() const OVERRIDE;
|
| +
|
| + ScrollbarOrientation Orientation() const;
|
| +
|
| + // Layer interface
|
| + virtual void Update(ResourceUpdateQueue* queue,
|
| + const OcclusionTracker* occlusion) OVERRIDE;
|
| + virtual void SetLayerTreeHost(LayerTreeHost* host) OVERRIDE;
|
| + virtual void PushPropertiesTo(LayerImpl* layer) OVERRIDE;
|
| + virtual void CalculateContentsScale(float ideal_contents_scale,
|
| + float device_scale_factor,
|
| + float page_scale_factor,
|
| + bool animating_transform_to_screen,
|
| + float* contents_scale_x,
|
| + float* contents_scale_y,
|
| + gfx::Size* content_bounds) OVERRIDE;
|
| +
|
| + virtual ScrollbarLayer* ToScrollbarLayer() OVERRIDE;
|
| +
|
| + virtual void UIResourceReady(UIResourceId id) OVERRIDE;
|
| + virtual void UIResourceLost(UIResourceId id) OVERRIDE;
|
| +
|
| + protected:
|
| + ScrollbarLayer(scoped_ptr<Scrollbar> scrollbar,
|
| + int scroll_layer_id);
|
| + virtual ~ScrollbarLayer();
|
| +
|
| + private:
|
| + gfx::Rect ScrollbarLayerRectToContentRect(gfx::Rect layer_rect) const;
|
| + gfx::Rect OriginThumbRect() const;
|
| +
|
| + bool is_dirty() const { return !dirty_rect_.IsEmpty(); }
|
| +
|
| + int MaxTextureSize();
|
| + float ClampScaleToMaxTextureSize(float scale);
|
| +
|
| + scoped_ptr<Scrollbar> scrollbar_;
|
| +
|
| + int thumb_thickness_;
|
| + int thumb_length_;
|
| + gfx::Rect track_rect_;
|
| + int scroll_layer_id_;
|
| +
|
| + gfx::RectF dirty_rect_;
|
| +
|
| + UIResourceId track_ui_resource_id_;
|
| + UIResourceId thumb_ui_resource_id_;
|
| + UIResourceStatus track_ui_resource_status_;
|
| + UIResourceStatus thumb_ui_resource_status_;
|
| + scoped_refptr<UIResourceBitmap> track_bitmap_;
|
| + scoped_refptr<UIResourceBitmap> thumb_bitmap_;
|
| + bool skip_update_;
|
| +
|
| + DISALLOW_COPY_AND_ASSIGN(ScrollbarLayer);
|
| +};
|
| +
|
| +
|
| +} // namespace cc
|
| +
|
| +#endif // CC_LAYERS_PICTURE_SCROLLBAR_LAYER_H_
|
|
|