summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authoratwilson@chromium.org <atwilson@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-10 21:44:41 +0000
committeratwilson@chromium.org <atwilson@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-03-10 21:44:41 +0000
commit595c64daedc4001c93691088c6d7cc76122ef639 (patch)
treed6b47f33adb478ae64a11cae699eec548d70d9a5 /chrome
parent6d2464543977cd709ae1108f958dee5d2c09667b (diff)
downloadchromium_src-595c64daedc4001c93691088c6d7cc76122ef639.zip
chromium_src-595c64daedc4001c93691088c6d7cc76122ef639.tar.gz
chromium_src-595c64daedc4001c93691088c6d7cc76122ef639.tar.bz2
Added monochrome status icons for the mac.
Added support for setting an alternate "pressed" image for status icons. BUG=37375 TEST=updated unit tests Review URL: http://codereview.chromium.org/752002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@41211 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r--chrome/app/theme/theme_resources.grd17
-rw-r--r--chrome/browser/cocoa/status_icons/status_icon_mac.h3
-rw-r--r--chrome/browser/cocoa/status_icons/status_icon_mac.mm9
-rw-r--r--chrome/browser/cocoa/status_icons/status_icon_mac_unittest.mm3
-rw-r--r--chrome/browser/status_icons/status_icon.h3
-rw-r--r--chrome/browser/status_icons/status_tray_manager.cc3
-rw-r--r--chrome/browser/status_icons/status_tray_unittest.cc1
7 files changed, 38 insertions, 1 deletions
diff --git a/chrome/app/theme/theme_resources.grd b/chrome/app/theme/theme_resources.grd
index e3d59ee..2c58d2a 100644
--- a/chrome/app/theme/theme_resources.grd
+++ b/chrome/app/theme/theme_resources.grd
@@ -340,7 +340,6 @@
<include name="IDR_WIZARD_ICON_RTL" file="google_chrome/wizard_icon_rtl.png" type="BINDATA" />
<include name="IDR_PRODUCT_ICON_32" file="google_chrome/google_chrome_icon_32.png" type="BINDATA" />
<include name="IDR_INFOBAR_TRANSLATE" file="google_chrome/infobar_translate.png" type="BINDATA" />
- <include name="IDR_STATUS_TRAY_ICON" file="google_chrome/product_logo_22.png" type="BINDATA" />
</if>
<if expr="not pp_ifdef('_google_chrome')">
@@ -356,7 +355,23 @@
<include name="IDR_WIZARD_ICON_RTL" file="chromium/wizard_icon_rtl.png" type="BINDATA" />
<include name="IDR_PRODUCT_ICON_32" file="chromium/chromium_icon_32.png" type="BINDATA" />
<include name="IDR_INFOBAR_TRANSLATE" file="chromium/infobar_translate.png" type="BINDATA" />
+ </if>
+
+ <if expr="pp_ifdef('_google_chrome') and (os == 'darwin')">
+ <include name="IDR_STATUS_TRAY_ICON" file="google_chrome/product_logo_22_mono.png" type="BINDATA" />
+ <include name="IDR_STATUS_TRAY_ICON_PRESSED" file="google_chrome/product_logo_22_mono_invert.png" type="BINDATA" />
+ </if>
+ <if expr="not pp_ifdef('_google_chrome') and (os == 'darwin')">
+ <include name="IDR_STATUS_TRAY_ICON" file="chromium/product_logo_22_mono.png" type="BINDATA" />
+ <include name="IDR_STATUS_TRAY_ICON_PRESSED" file="chromium/product_logo_22_mono_invert.png" type="BINDATA" />
+ </if>
+ <if expr="pp_ifdef('_google_chrome') and (os != 'darwin')">
+ <include name="IDR_STATUS_TRAY_ICON" file="google_chrome/product_logo_22.png" type="BINDATA" />
+ <include name="IDR_STATUS_TRAY_ICON_PRESSED" file="google_chrome/product_logo_22.png" type="BINDATA" />
+ </if>
+ <if expr="not pp_ifdef('_google_chrome') and (os != 'darwin')">
<include name="IDR_STATUS_TRAY_ICON" file="chromium/product_logo_22.png" type="BINDATA" />
+ <include name="IDR_STATUS_TRAY_ICON_PRESSED" file="chromium/product_logo_22.png" type="BINDATA" />
</if>
<if expr="pp_ifdef('chromeos') or pp_ifdef('toolkit_views')">
diff --git a/chrome/browser/cocoa/status_icons/status_icon_mac.h b/chrome/browser/cocoa/status_icons/status_icon_mac.h
index d606429..e032476 100644
--- a/chrome/browser/cocoa/status_icons/status_icon_mac.h
+++ b/chrome/browser/cocoa/status_icons/status_icon_mac.h
@@ -25,6 +25,9 @@ class StatusIconMac : public StatusIcon {
// Sets the image associated with this status icon.
virtual void SetImage(const SkBitmap& image);
+ // Sets the pressed image associated with this status icon.
+ virtual void SetPressedImage(const SkBitmap& image);
+
// Sets the hover text for this status icon.
virtual void SetToolTip(const string16& tool_tip);
diff --git a/chrome/browser/cocoa/status_icons/status_icon_mac.mm b/chrome/browser/cocoa/status_icons/status_icon_mac.mm
index 201b6d4..0711184 100644
--- a/chrome/browser/cocoa/status_icons/status_icon_mac.mm
+++ b/chrome/browser/cocoa/status_icons/status_icon_mac.mm
@@ -51,6 +51,7 @@ NSStatusItem* StatusIconMac::item() {
[item_ setEnabled:YES];
[item_ setTarget:controller_];
[item_ setAction:@selector(handleClick:)];
+ [item_ setHighlightMode:YES];
}
return item_.get();
}
@@ -63,6 +64,14 @@ void StatusIconMac::SetImage(const SkBitmap& bitmap) {
}
}
+void StatusIconMac::SetPressedImage(const SkBitmap& bitmap) {
+ if (!bitmap.isNull()) {
+ NSImage* image = gfx::SkBitmapToNSImage(bitmap);
+ if (image)
+ [item() setAlternateImage:image];
+ }
+}
+
void StatusIconMac::SetToolTip(const string16& tool_tip) {
[item() setToolTip:base::SysUTF16ToNSString(tool_tip)];
}
diff --git a/chrome/browser/cocoa/status_icons/status_icon_mac_unittest.mm b/chrome/browser/cocoa/status_icons/status_icon_mac_unittest.mm
index 4a7b284..8051320 100644
--- a/chrome/browser/cocoa/status_icons/status_icon_mac_unittest.mm
+++ b/chrome/browser/cocoa/status_icons/status_icon_mac_unittest.mm
@@ -27,6 +27,9 @@ TEST_F(StatusIconMacTest, Create) {
SkBitmap* bitmap = ResourceBundle::GetSharedInstance().GetBitmapNamed(
IDR_STATUS_TRAY_ICON);
icon->SetImage(*bitmap);
+ SkBitmap* pressed = ResourceBundle::GetSharedInstance().GetBitmapNamed(
+ IDR_STATUS_TRAY_ICON_PRESSED);
+ icon->SetPressedImage(*pressed);
icon->SetToolTip(ASCIIToUTF16("tool tip"));
}
diff --git a/chrome/browser/status_icons/status_icon.h b/chrome/browser/status_icons/status_icon.h
index aeefdfe..a2bc089 100644
--- a/chrome/browser/status_icons/status_icon.h
+++ b/chrome/browser/status_icons/status_icon.h
@@ -19,6 +19,9 @@ class StatusIcon {
// Sets the image associated with this status icon.
virtual void SetImage(const SkBitmap& image) = 0;
+ // Sets the image associated with this status icon when pressed.
+ virtual void SetPressedImage(const SkBitmap& image) = 0;
+
// Sets the hover text for this status icon.
virtual void SetToolTip(const string16& tool_tip) = 0;
diff --git a/chrome/browser/status_icons/status_tray_manager.cc b/chrome/browser/status_icons/status_tray_manager.cc
index 26d0840..f0ef268 100644
--- a/chrome/browser/status_icons/status_tray_manager.cc
+++ b/chrome/browser/status_icons/status_tray_manager.cc
@@ -44,7 +44,10 @@ void StatusTrayManager::Init(Profile* profile) {
// Create an icon and add ourselves as a click observer on it
SkBitmap* bitmap = ResourceBundle::GetSharedInstance().GetBitmapNamed(
IDR_STATUS_TRAY_ICON);
+ SkBitmap* pressed = ResourceBundle::GetSharedInstance().GetBitmapNamed(
+ IDR_STATUS_TRAY_ICON_PRESSED);
icon->SetImage(*bitmap);
+ icon->SetPressedImage(*pressed);
icon->AddObserver(this);
}
}
diff --git a/chrome/browser/status_icons/status_tray_unittest.cc b/chrome/browser/status_icons/status_tray_unittest.cc
index 01f9c30..e224fac 100644
--- a/chrome/browser/status_icons/status_tray_unittest.cc
+++ b/chrome/browser/status_icons/status_tray_unittest.cc
@@ -12,6 +12,7 @@ using testing::Return;
class MockStatusIcon : public StatusIcon {
virtual void SetImage(const SkBitmap& image) {}
+ virtual void SetPressedImage(const SkBitmap& image) {}
virtual void SetToolTip(const string16& tool_tip) {}
virtual void AddObserver(StatusIcon::StatusIconObserver* observer) {}
virtual void RemoveObserver(StatusIcon::StatusIconObserver* observer) {}