summaryrefslogtreecommitdiffstats
path: root/chrome/browser/cocoa/task_manager_mac.h
diff options
context:
space:
mode:
authorthakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-01-13 03:26:13 +0000
committerthakis@chromium.org <thakis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-01-13 03:26:13 +0000
commit15be81387f3ab40242d28f3ee53adc3d6a1fac1c (patch)
tree85ec956d20e07971d630aa1920eacdf73401347b /chrome/browser/cocoa/task_manager_mac.h
parent969a7b97029963ba6c6dd1456132d844160b5ad0 (diff)
downloadchromium_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/task_manager_mac.h')
-rw-r--r--chrome/browser/cocoa/task_manager_mac.h14
1 files changed, 13 insertions, 1 deletions
diff --git a/chrome/browser/cocoa/task_manager_mac.h b/chrome/browser/cocoa/task_manager_mac.h
index cbcb5d2..5d78cff 100644
--- a/chrome/browser/cocoa/task_manager_mac.h
+++ b/chrome/browser/cocoa/task_manager_mac.h
@@ -7,6 +7,7 @@
#import <Cocoa/Cocoa.h>
#include "base/scoped_nsobject.h"
+#include "chrome/browser/cocoa/table_row_nsimage_cache.h"
#include "chrome/browser/task_manager.h"
class TaskManagerMac;
@@ -39,7 +40,8 @@ class TaskManagerMac;
@end
// This class listens to task changed events sent by chrome.
-class TaskManagerMac : public TaskManagerModelObserver {
+class TaskManagerMac : public TaskManagerModelObserver,
+ public TableRowNSImageCache::Table {
public:
TaskManagerMac();
virtual ~TaskManagerMac();
@@ -54,6 +56,10 @@ class TaskManagerMac : public TaskManagerModelObserver {
// controller destroyed itself. Informs the model to stop updating.
void WindowWasClosed();
+ // TableRowNSImageCache::Table
+ virtual int RowCount() const { return model_->ResourceCount(); }
+ virtual SkBitmap GetIcon(int r) const { return model_->GetResourceIcon(r); }
+
// Creates the task manager if it doesn't exist; otherwise, it activates the
// existing task manager window.
static void Show();
@@ -61,6 +67,9 @@ class TaskManagerMac : public TaskManagerModelObserver {
// Returns the TaskManager observed by |this|.
TaskManager* task_manager() { return task_manager_; }
+ // Lazily converts the image at the given row and caches it in |icon_cache_|.
+ NSImage* GetImageForRow(int row);
+
private:
// The task manager.
TaskManager* const task_manager_; // weak
@@ -72,6 +81,9 @@ class TaskManagerMac : public TaskManagerModelObserver {
// is closed.
TaskManagerWindowController* window_controller_; // weak
+ // Caches favicons for all rows. Needs to be initalized after |model_|.
+ TableRowNSImageCache icon_cache_;
+
// An open task manager window. There can only be one open at a time. This
// is reset to NULL when the window is closed.
static TaskManagerMac* instance_;