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 |
deleted file mode 100644 |
index 793fae47fea1265556adcee2ada675ace51c650c..0000000000000000000000000000000000000000 |
--- a/ui/message_center/cocoa/status_item_view.mm |
+++ /dev/null |
@@ -1,194 +0,0 @@ |
-// Copyright (c) 2013 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#import "ui/message_center/cocoa/status_item_view.h" |
- |
-#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" |
- |
-// The width of the status bar item when it's just the icon. |
-const CGFloat kStatusItemLength = 26; |
- |
-// The amount of space between the left and right edges and the content of the |
-// status item. |
-const CGFloat kMargin = 5; |
- |
- |
-@interface MCStatusItemView (Private) |
-// Whether or not the status item should be drawn highlighted. |
-- (BOOL)shouldHighlight; |
- |
-- (int)getTrayResourceId; |
-@end |
- |
-@implementation MCStatusItemView |
- |
-@synthesize highlight = highlight_; |
- |
-- (id)init { |
- statusItem_.reset([[[NSStatusBar systemStatusBar] statusItemWithLength: |
- NSVariableStatusItemLength] retain]); |
- CGFloat thickness = [[statusItem_ statusBar] thickness]; |
- |
- NSRect frame = NSMakeRect(0, 0, kStatusItemLength, thickness); |
- if ((self = [super initWithFrame:frame])) { |
- [statusItem_ setView:self]; |
- } |
- return self; |
-} |
- |
-- (void)removeItem { |
- [[NSStatusBar systemStatusBar] removeStatusItem:statusItem_]; |
- statusItem_.reset(); |
-} |
- |
-- (size_t)unreadCount { |
- return unreadCount_; |
-} |
- |
-- (message_center::StatusItemClickedCallback)callback { |
- return callback_.get(); |
-} |
- |
-- (void)setCallback:(message_center::StatusItemClickedCallback)callback { |
- callback_.reset(callback, base::scoped_policy::RETAIN); |
-} |
- |
-- (void)setUnreadCount:(size_t)unreadCount withQuietMode:(BOOL)quietMode { |
- unreadCount_ = unreadCount; |
- quietMode_ = quietMode; |
- |
- NSRect frame = [self frame]; |
- frame.size.width = kStatusItemLength; |
- [self setFrame:frame]; |
- |
- [self setNeedsDisplay:YES]; |
-} |
- |
-- (void)setHighlight:(BOOL)highlight { |
- highlight_ = highlight; |
- [self setNeedsDisplay:YES]; |
-} |
- |
-- (void)mouseDown:(NSEvent*)event { |
- inMouseEventSequence_ = YES; |
- [self setNeedsDisplay:YES]; |
- |
- if (callback_) |
- callback_.get()(); |
-} |
- |
-- (void)mouseUp:(NSEvent*)event { |
- inMouseEventSequence_ = NO; |
- [self setNeedsDisplay:YES]; |
-} |
- |
-- (void)rightMouseDown:(NSEvent*)event { |
- [self mouseDown:event]; |
-} |
- |
-- (void)rightMouseUp:(NSEvent*)event { |
- [self mouseUp:event]; |
-} |
- |
-- (void)otherMouseDown:(NSEvent*)event { |
- [self mouseDown:event]; |
-} |
- |
-- (void)otherMouseUp:(NSEvent*)event { |
- [self mouseUp:event]; |
-} |
- |
-- (void)drawRect:(NSRect)dirtyRect { |
- NSRect frame = [self bounds]; |
- |
- // Draw the background color. |
- BOOL highlight = [self shouldHighlight]; |
- [statusItem_ drawStatusBarBackgroundInRect:frame |
- withHighlight:highlight]; |
- |
- int resource_id = [self getTrayResourceId]; |
- // Draw the icon. |
- ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); |
- NSImage* image = rb.GetNativeImageNamed(resource_id).ToNSImage(); |
- NSSize size = [image size]; |
- NSRect drawRect = NSMakeRect(kMargin, |
- floorf((NSHeight(frame) - size.height) / 2), |
- size.width, |
- size.height); |
- [image drawInRect:drawRect |
- fromRect:NSZeroRect |
- operation:NSCompositeSourceOver |
- fraction:1.0]; |
-} |
- |
-- (NSArray*)accessibilityActionNames { |
- return @[ NSAccessibilityPressAction ]; |
-} |
- |
-- (void)accessibilityPerformAction:(NSString*)action { |
- if ([action isEqualToString:NSAccessibilityPressAction]) { |
- if (callback_) |
- callback_.get()(); |
- return; |
- } |
- [super accessibilityPerformAction:action]; |
-} |
- |
-// Private ///////////////////////////////////////////////////////////////////// |
- |
-- (BOOL)shouldHighlight { |
- return highlight_ || inMouseEventSequence_; |
-} |
- |
-- (int)getTrayResourceId { |
- BOOL highlight = [self shouldHighlight]; |
- BOOL hasUnreadItems = unreadCount_ > 0; |
- 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 }, |
Robert Sesek
2015/09/15 22:07:08
Can we remove these resources too?
dewittj
2015/09/15 22:52:22
Yes!
Done.
|
- { 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 }, |
- }, |
- }, |
- { |
- { |
- // 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[dark][quietMode_][hasUnreadItems][highlight]; |
-} |
- |
-@end |