OLD | NEW |
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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 #include "chrome/browser/ui/cocoa/table_row_nsimage_cache.h" | 5 #include "chrome/browser/ui/cocoa/table_row_nsimage_cache.h" |
6 | 6 |
7 #include "base/logging.h" | 7 #include "base/logging.h" |
8 #include "skia/ext/skia_utils_mac.h" | 8 #include "skia/ext/skia_utils_mac.h" |
9 #include "third_party/skia/include/core/SkBitmap.h" | 9 #include "third_party/skia/include/core/SkBitmap.h" |
10 | 10 |
11 TableRowNSImageCache::TableRowNSImageCache(Table* model) | 11 TableRowNSImageCache::TableRowNSImageCache(Table* model) |
12 : model_(model), | 12 : model_(model), |
13 icon_images_([[NSPointerArray alloc] initWithOptions: | 13 icon_images_([[NSPointerArray alloc] initWithOptions: |
14 NSPointerFunctionsStrongMemory | | 14 NSPointerFunctionsStrongMemory | |
15 NSPointerFunctionsObjectPersonality]) { | 15 NSPointerFunctionsObjectPersonality]) { |
16 int count = model_->RowCount(); | 16 int count = model_->RowCount(); |
17 [icon_images_ setCount:count]; | 17 [icon_images_ setCount:count]; |
18 } | 18 } |
19 | 19 |
| 20 TableRowNSImageCache::~TableRowNSImageCache() {} |
| 21 |
20 void TableRowNSImageCache::OnModelChanged() { | 22 void TableRowNSImageCache::OnModelChanged() { |
21 int count = model_->RowCount(); | 23 int count = model_->RowCount(); |
22 [icon_images_ setCount:0]; | 24 [icon_images_ setCount:0]; |
23 [icon_images_ setCount:count]; | 25 [icon_images_ setCount:count]; |
24 } | 26 } |
25 | 27 |
26 void TableRowNSImageCache::OnItemsChanged(int start, int length) { | 28 void TableRowNSImageCache::OnItemsChanged(int start, int length) { |
27 DCHECK_LE(start + length, static_cast<int>([icon_images_ count])); | 29 DCHECK_LE(start + length, static_cast<int>([icon_images_ count])); |
28 for (int i = start; i < (start + length); ++i) { | 30 for (int i = start; i < (start + length); ++i) { |
29 [icon_images_ replacePointerAtIndex:i withPointer:NULL]; | 31 [icon_images_ replacePointerAtIndex:i withPointer:NULL]; |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
70 // Empty bitmaps are intentionally not cached. | 72 // Empty bitmaps are intentionally not cached. |
71 if (!bitmap_icon.isNull()) { | 73 if (!bitmap_icon.isNull()) { |
72 image = gfx::SkBitmapToNSImage(bitmap_icon); | 74 image = gfx::SkBitmapToNSImage(bitmap_icon); |
73 DCHECK(image); | 75 DCHECK(image); |
74 [icon_images_ replacePointerAtIndex:row withPointer:image]; | 76 [icon_images_ replacePointerAtIndex:row withPointer:image]; |
75 } | 77 } |
76 } | 78 } |
77 return image; | 79 return image; |
78 } | 80 } |
79 | 81 |
OLD | NEW |