Index: chrome/browser/ui/cocoa/tabs/media_indicator_view.mm |
diff --git a/chrome/browser/ui/cocoa/tabs/media_indicator_view.mm b/chrome/browser/ui/cocoa/tabs/media_indicator_view.mm |
deleted file mode 100644 |
index e3e71cdbcb1d09675e34b21602bb938ffe22a097..0000000000000000000000000000000000000000 |
--- a/chrome/browser/ui/cocoa/tabs/media_indicator_view.mm |
+++ /dev/null |
@@ -1,114 +0,0 @@ |
-// Copyright 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 "chrome/browser/ui/cocoa/tabs/media_indicator_view.h" |
- |
-#include "ui/gfx/animation/animation.h" |
-#include "ui/gfx/animation/animation_delegate.h" |
-#include "ui/gfx/image/image.h" |
- |
-class MediaIndicatorViewAnimationDelegate : public gfx::AnimationDelegate { |
- public: |
- MediaIndicatorViewAnimationDelegate(NSView* view, |
- TabMediaState* mediaState, |
- TabMediaState* animatingMediaState) |
- : view_(view), mediaState_(mediaState), |
- animatingMediaState_(animatingMediaState), |
- doneCallbackObject_(nil), doneCallbackSelector_(nil) {} |
- ~MediaIndicatorViewAnimationDelegate() override {} |
- |
- void SetAnimationDoneCallback(id anObject, SEL selector) { |
- doneCallbackObject_ = anObject; |
- doneCallbackSelector_ = selector; |
- } |
- |
- void AnimationEnded(const gfx::Animation* animation) override { |
- *animatingMediaState_ = *mediaState_; |
- [view_ setNeedsDisplay:YES]; |
- [doneCallbackObject_ performSelector:doneCallbackSelector_]; |
- } |
- void AnimationProgressed(const gfx::Animation* animation) override { |
- [view_ setNeedsDisplay:YES]; |
- } |
- void AnimationCanceled(const gfx::Animation* animation) override { |
- AnimationEnded(animation); |
- } |
- |
- private: |
- NSView* const view_; |
- TabMediaState* const mediaState_; |
- TabMediaState* const animatingMediaState_; |
- |
- id doneCallbackObject_; |
- SEL doneCallbackSelector_; |
-}; |
- |
-@implementation MediaIndicatorView |
- |
-@synthesize mediaState = mediaState_; |
-@synthesize animatingMediaState = animatingMediaState_; |
- |
-- (id)init { |
- if ((self = [super initWithFrame:NSZeroRect])) { |
- mediaState_ = animatingMediaState_ = TAB_MEDIA_STATE_NONE; |
- delegate_.reset(new MediaIndicatorViewAnimationDelegate( |
- self, &mediaState_, &animatingMediaState_)); |
- } |
- return self; |
-} |
- |
-- (void)updateIndicator:(TabMediaState)mediaState { |
- if (mediaState == mediaState_) |
- return; |
- |
- mediaState_ = mediaState; |
- animation_.reset(); |
- |
- // Prepare this view if the new TabMediaState is an active one. |
- if (mediaState_ != TAB_MEDIA_STATE_NONE) { |
- animatingMediaState_ = mediaState_; |
- NSImage* const image = |
- chrome::GetTabMediaIndicatorImage(mediaState_).ToNSImage(); |
- NSRect frame = [self frame]; |
- frame.size = [image size]; |
- [self setFrame:frame]; |
- [self setImage:image]; |
- } |
- |
- // If the animation delegate is missing, that means animations were disabled |
- // for testing; so, go directly to animating completion state. |
- if (!delegate_) { |
- animatingMediaState_ = mediaState_; |
- return; |
- } |
- |
- animation_ = chrome::CreateTabMediaIndicatorFadeAnimation(mediaState_); |
- animation_->set_delegate(delegate_.get()); |
- animation_->Start(); |
-} |
- |
-- (void)setAnimationDoneCallbackObject:(id)anObject withSelector:(SEL)selector { |
- if (delegate_) |
- delegate_->SetAnimationDoneCallback(anObject, selector); |
-} |
- |
-- (void)drawRect:(NSRect)rect { |
- if (!animation_) |
- return; |
- |
- double opaqueness = animation_->GetCurrentValue(); |
- if (mediaState_ == TAB_MEDIA_STATE_NONE) |
- opaqueness = 1.0 - opaqueness; // Fading out, not in. |
- |
- [[self image] drawInRect:[self bounds] |
- fromRect:NSZeroRect |
- operation:NSCompositeSourceOver |
- fraction:opaqueness]; |
-} |
- |
-- (void)disableAnimations { |
- delegate_.reset(); |
-} |
- |
-@end |