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..793fae47fea1265556adcee2ada675ace51c650c 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,46 @@ 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 respondsToSelector:@selector(appearanceNamed:)]) { |
+ 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 |