OLD | NEW |
---|---|
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef UI_AURA_SHELL_IMAGE_GRID_H_ | 5 #ifndef UI_AURA_SHELL_IMAGE_GRID_H_ |
6 #define UI_AURA_SHELL_IMAGE_GRID_H_ | 6 #define UI_AURA_SHELL_IMAGE_GRID_H_ |
7 #pragma once | 7 #pragma once |
8 | 8 |
9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
10 #include "base/gtest_prod_util.h" | 10 #include "base/gtest_prod_util.h" |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
74 return grid_->bottom_left_layer_.get(); | 74 return grid_->bottom_left_layer_.get(); |
75 } | 75 } |
76 ui::Layer* bottom_layer() const { return grid_->bottom_layer_.get(); } | 76 ui::Layer* bottom_layer() const { return grid_->bottom_layer_.get(); } |
77 ui::Layer* bottom_right_layer() const { | 77 ui::Layer* bottom_right_layer() const { |
78 return grid_->bottom_right_layer_.get(); | 78 return grid_->bottom_right_layer_.get(); |
79 } | 79 } |
80 | 80 |
81 // Returns |layer|'s bounds after applying the layer's current transform. | 81 // Returns |layer|'s bounds after applying the layer's current transform. |
82 gfx::Rect GetTransformedLayerBounds(const ui::Layer& layer); | 82 gfx::Rect GetTransformedLayerBounds(const ui::Layer& layer); |
83 | 83 |
84 gfx::Rect GetTopLeftClipRect() const { | |
Ben Goodger (Google)
2011/12/06 19:27:03
I believe you can use unix_hacker for this type of
Daniel Erat
2011/12/06 21:34:18
Done.
| |
85 return grid_->top_left_painter_->clip_rect_; | |
86 } | |
87 gfx::Rect GetTopRightClipRect() const { | |
88 return grid_->top_right_painter_->clip_rect_; | |
89 } | |
90 gfx::Rect GetBottomLeftClipRect() const { | |
91 return grid_->bottom_left_painter_->clip_rect_; | |
92 } | |
93 gfx::Rect GetBottomRightClipRect() const { | |
94 return grid_->bottom_right_painter_->clip_rect_; | |
95 } | |
96 | |
84 private: | 97 private: |
85 ImageGrid* grid_; // not owned | 98 ImageGrid* grid_; // not owned |
86 | 99 |
87 DISALLOW_COPY_AND_ASSIGN(TestAPI); | 100 DISALLOW_COPY_AND_ASSIGN(TestAPI); |
88 }; | 101 }; |
89 | 102 |
90 ImageGrid(); | 103 ImageGrid(); |
91 ~ImageGrid(); | 104 ~ImageGrid(); |
92 | 105 |
93 ui::Layer* layer() { return layer_.get(); } | 106 ui::Layer* layer() { return layer_.get(); } |
(...skipping 16 matching lines...) Expand all Loading... | |
110 | 123 |
111 void SetSize(const gfx::Size& size); | 124 void SetSize(const gfx::Size& size); |
112 | 125 |
113 private: | 126 private: |
114 // Delegate responsible for painting a specific image on a layer. | 127 // Delegate responsible for painting a specific image on a layer. |
115 class ImagePainter : public ui::LayerDelegate { | 128 class ImagePainter : public ui::LayerDelegate { |
116 public: | 129 public: |
117 ImagePainter(const gfx::Image* image) : image_(image) {} | 130 ImagePainter(const gfx::Image* image) : image_(image) {} |
118 virtual ~ImagePainter() {} | 131 virtual ~ImagePainter() {} |
119 | 132 |
133 // Clips |layer| to |clip_rect|. Triggers a repaint if the clipping | |
134 // rectangle has changed. An empty rectangle disables clipping. | |
135 void SetClipRect(const gfx::Rect& clip_rect, ui::Layer* layer); | |
136 | |
120 // ui::LayerDelegate implementation: | 137 // ui::LayerDelegate implementation: |
121 virtual void OnPaintLayer(gfx::Canvas* canvas) OVERRIDE; | 138 virtual void OnPaintLayer(gfx::Canvas* canvas) OVERRIDE; |
122 | 139 |
123 private: | 140 private: |
141 friend class TestAPI; | |
142 | |
124 const gfx::Image* image_; // not owned | 143 const gfx::Image* image_; // not owned |
125 | 144 |
145 gfx::Rect clip_rect_; | |
146 | |
126 DISALLOW_COPY_AND_ASSIGN(ImagePainter); | 147 DISALLOW_COPY_AND_ASSIGN(ImagePainter); |
127 }; | 148 }; |
128 | 149 |
129 // Returns the dimensions of |image| if non-NULL or gfx::Size(0, 0) otherwise. | 150 // Returns the dimensions of |image| if non-NULL or gfx::Size(0, 0) otherwise. |
130 static gfx::Size GetImageSize(const gfx::Image* image); | 151 static gfx::Size GetImageSize(const gfx::Image* image); |
131 | 152 |
153 // Returns true if |layer|'s bounds don't fit within |size|. | |
154 static bool LayerExceedsSize(const ui::Layer* layer, const gfx::Size& size); | |
155 | |
132 // Initializes |layer_ptr| and |painter_ptr| to display |image|. | 156 // Initializes |layer_ptr| and |painter_ptr| to display |image|. |
133 // Also adds the passed-in layer to |layer_|. | 157 // Also adds the passed-in layer to |layer_|. |
134 void InitImage(const gfx::Image* image, | 158 void InitImage(const gfx::Image* image, |
135 scoped_ptr<ui::Layer>* layer_ptr, | 159 scoped_ptr<ui::Layer>* layer_ptr, |
136 scoped_ptr<ImagePainter>* painter_ptr); | 160 scoped_ptr<ImagePainter>* painter_ptr); |
137 | 161 |
138 // Layer that contains all of the image layers. | 162 // Layer that contains all of the image layers. |
139 scoped_ptr<ui::Layer> layer_; | 163 scoped_ptr<ui::Layer> layer_; |
140 | 164 |
141 // The grid's dimensions. | 165 // The grid's dimensions. |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
179 scoped_ptr<ImagePainter> bottom_painter_; | 203 scoped_ptr<ImagePainter> bottom_painter_; |
180 scoped_ptr<ImagePainter> bottom_right_painter_; | 204 scoped_ptr<ImagePainter> bottom_right_painter_; |
181 | 205 |
182 DISALLOW_COPY_AND_ASSIGN(ImageGrid); | 206 DISALLOW_COPY_AND_ASSIGN(ImageGrid); |
183 }; | 207 }; |
184 | 208 |
185 } // namespace internal | 209 } // namespace internal |
186 } // namespace aura_shell | 210 } // namespace aura_shell |
187 | 211 |
188 #endif // UI_AURA_SHELL_IMAGE_GRID_H_ | 212 #endif // UI_AURA_SHELL_IMAGE_GRID_H_ |
OLD | NEW |