Chromium Code Reviews| Index: ui/message_center/cocoa/status_item_view.mm |
| diff --git a/ui/message_center/cocoa/status_item_view.mm b/ui/message_center/cocoa/status_item_view.mm |
| index 166de9fa3182a71a1050bb655c1df4ea0d3050a6..6f0ecc3ebf641dd9cdca7015453166359bcd3dd5 100644 |
| --- a/ui/message_center/cocoa/status_item_view.mm |
| +++ b/ui/message_center/cocoa/status_item_view.mm |
| @@ -7,6 +7,7 @@ |
| #include <cmath> |
| #include "base/format_macros.h" |
| +#include "base/mac/sdk_forward_declarations.h" |
| #include "ui/base/resource/resource_bundle.h" |
| #include "ui/resources/grit/ui_resources.h" |
| @@ -148,19 +149,47 @@ const CGFloat kMargin = 5; |
| - (int)getTrayResourceId { |
| BOOL highlight = [self shouldHighlight]; |
| BOOL hasUnreadItems = unreadCount_ > 0; |
| - int kResourceIds[2][2][2] = { |
| + BOOL dark = NO; |
| + |
| + Class nsAppearanceClass = NSClassFromString(@"NSAppearance"); |
| + if ([self respondsToSelector:@selector(effectiveAppearance)] && |
| + [nsAppearanceClass |
| + instancesRespondToSelector:@selector(appearanceNamed:)]) { |
|
Robert Sesek
2014/09/24 17:15:00
Tested. This does need to change back to -responds
dewittj
2014/09/25 18:21:39
Is this what you mean? It compiles on my 10.9 box
Robert Sesek
2014/09/25 18:23:27
Yup. I'm not sure why it produced a compiler error
|
| + id<NSObject> darkAppearance = |
| + [nsAppearanceClass appearanceNamed:NSAppearanceNameVibrantDark]; |
| + dark = [[self effectiveAppearance] isEqual:darkAppearance]; |
| + } |
| + |
| + int kResourceIds[2][2][2][2] = { |
| { |
| - { IDR_TRAY_EMPTY, IDR_TRAY_EMPTY_PRESSED }, |
| - { IDR_TRAY_ATTENTION, IDR_TRAY_ATTENTION_PRESSED }, |
| + { |
| + { IDR_TRAY_EMPTY, IDR_TRAY_EMPTY_PRESSED }, |
| + { IDR_TRAY_ATTENTION, IDR_TRAY_ATTENTION_PRESSED }, |
| + }, |
| + { |
| + { IDR_TRAY_DO_NOT_DISTURB_EMPTY, |
| + IDR_TRAY_DO_NOT_DISTURB_EMPTY_PRESSED }, |
| + { IDR_TRAY_DO_NOT_DISTURB_ATTENTION, |
| + IDR_TRAY_DO_NOT_DISTURB_ATTENTION_PRESSED }, |
| + }, |
| }, |
| { |
| - { IDR_TRAY_DO_NOT_DISTURB_EMPTY, |
| - IDR_TRAY_DO_NOT_DISTURB_EMPTY_PRESSED }, |
| - { IDR_TRAY_DO_NOT_DISTURB_ATTENTION, |
| - IDR_TRAY_DO_NOT_DISTURB_ATTENTION_PRESSED }, |
| - }, |
| + { |
| + // We chose not to support the empty version of the pressed |
| + // resource for the dark theme, so we use the same resource |
| + // for both "pressed" options. |
| + { IDR_DARK_TRAY_EMPTY, IDR_DARK_TRAY_PRESSED }, |
| + { IDR_DARK_TRAY_ATTENTION, IDR_DARK_TRAY_PRESSED }, |
| + }, |
| + { |
| + { IDR_DARK_TRAY_DO_NOT_DISTURB_EMPTY, |
| + IDR_DARK_TRAY_DO_NOT_DISTURB_PRESSED }, |
| + { IDR_DARK_TRAY_DO_NOT_DISTURB_ATTENTION, |
| + IDR_DARK_TRAY_DO_NOT_DISTURB_PRESSED }, |
| + }, |
| + } |
| }; |
| - return kResourceIds[quietMode_][hasUnreadItems][highlight]; |
| + return kResourceIds[dark][quietMode_][hasUnreadItems][highlight]; |
| } |
| @end |