#include <cmath>
#include "base/format_macros.h"
+#include "base/mac/sdk_forward_declarations.h"
#include "grit/ui_resources.h"
#include "ui/base/resource/resource_bundle.h"
- (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