diff options
author | thakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-01-13 03:26:13 +0000 |
---|---|---|
committer | thakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-01-13 03:26:13 +0000 |
commit | 15be81387f3ab40242d28f3ee53adc3d6a1fac1c (patch) | |
tree | 85ec956d20e07971d630aa1920eacdf73401347b /chrome/browser/cocoa/keyword_editor_cocoa_controller.mm | |
parent | 969a7b97029963ba6c6dd1456132d844160b5ad0 (diff) | |
download | chromium_src-15be81387f3ab40242d28f3ee53adc3d6a1fac1c.zip chromium_src-15be81387f3ab40242d28f3ee53adc3d6a1fac1c.tar.gz chromium_src-15be81387f3ab40242d28f3ee53adc3d6a1fac1c.tar.bz2 |
Mac: Add favicons to task manager.
Pull NSImage cache out of search engine dialog into its own class, reuse that.
Implement browser icon code in task_manager_resource_provider's browser resource provider.
BUG=13156
TEST=Open task manager. You should see icons. Open search engine manager, should still show icons.
Review URL: http://codereview.chromium.org/549021
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36087 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/cocoa/keyword_editor_cocoa_controller.mm')
-rw-r--r-- | chrome/browser/cocoa/keyword_editor_cocoa_controller.mm | 62 |
1 files changed, 14 insertions, 48 deletions
diff --git a/chrome/browser/cocoa/keyword_editor_cocoa_controller.mm b/chrome/browser/cocoa/keyword_editor_cocoa_controller.mm index d2e1d7a..7440a17 100644 --- a/chrome/browser/cocoa/keyword_editor_cocoa_controller.mm +++ b/chrome/browser/cocoa/keyword_editor_cocoa_controller.mm @@ -30,11 +30,7 @@ KeywordEditorModelObserver::KeywordEditorModelObserver( KeywordEditorCocoaController* controller) : controller_(controller), - iconImages_([[NSPointerArray alloc] initWithOptions: - NSPointerFunctionsStrongMemory | - NSPointerFunctionsObjectPersonality]) { - int count = [controller_ controller]->table_model()->RowCount(); - [iconImages_ setCount:count]; + icon_cache_(this) { } KeywordEditorModelObserver::~KeywordEditorModelObserver() { @@ -59,65 +55,35 @@ void KeywordEditorModelObserver::OnEditedKeyword( } void KeywordEditorModelObserver::OnModelChanged() { - int count = [controller_ controller]->table_model()->RowCount(); - [iconImages_ setCount:0]; - [iconImages_ setCount:count]; + icon_cache_.OnModelChanged(); [controller_ modelChanged]; } void KeywordEditorModelObserver::OnItemsChanged(int start, int length) { - DCHECK_LE(start + length, static_cast<int>([iconImages_ count])); - for (int i = start; i < (start + length); ++i) { - [iconImages_ replacePointerAtIndex:i withPointer:NULL]; - } - DCHECK_EQ([controller_ controller]->table_model()->RowCount(), - static_cast<int>([iconImages_ count])); + icon_cache_.OnItemsChanged(start, length); [controller_ modelChanged]; } void KeywordEditorModelObserver::OnItemsAdded(int start, int length) { - DCHECK_LE(start, static_cast<int>([iconImages_ count])); - - // -[NSPointerArray insertPointer:atIndex:] throws if index == count. - // Instead expand the array with NULLs. - if (start == static_cast<int>([iconImages_ count])) { - [iconImages_ setCount:start + length]; - } else { - for (int i = 0; i < length; ++i) { - [iconImages_ insertPointer:NULL atIndex:start]; // Values slide up. - } - } - DCHECK_EQ([controller_ controller]->table_model()->RowCount(), - static_cast<int>([iconImages_ count])); + icon_cache_.OnItemsAdded(start, length); [controller_ modelChanged]; } void KeywordEditorModelObserver::OnItemsRemoved(int start, int length) { - DCHECK_LE(start + length, static_cast<int>([iconImages_ count])); - for (int i = 0; i < length; ++i) { - [iconImages_ removePointerAtIndex:start]; // Values slide down. - } - DCHECK_EQ([controller_ controller]->table_model()->RowCount(), - static_cast<int>([iconImages_ count])); + icon_cache_.OnItemsRemoved(start, length); [controller_ modelChanged]; } +int KeywordEditorModelObserver::RowCount() const { + return [controller_ controller]->table_model()->RowCount(); +} + +SkBitmap KeywordEditorModelObserver::GetIcon(int row) const { + return [controller_ controller]->table_model()->GetIcon(row); +} + NSImage* KeywordEditorModelObserver::GetImageForRow(int row) { - DCHECK_EQ([controller_ controller]->table_model()->RowCount(), - static_cast<int>([iconImages_ count])); - DCHECK_GE(row, 0); - DCHECK_LT(row, static_cast<int>([iconImages_ count])); - NSImage* image = static_cast<NSImage*>([iconImages_ pointerAtIndex:row]); - if (!image) { - const SkBitmap bitmapIcon = - [controller_ controller]->table_model()->GetIcon(row); - if (!bitmapIcon.isNull()) { - image = gfx::SkBitmapToNSImage(bitmapIcon); - DCHECK(image); - [iconImages_ replacePointerAtIndex:row withPointer:image]; - } - } - return image; + return icon_cache_.GetImageForRow(row); } // KeywordEditorCocoaController ----------------------------------------------- |