| OLD | NEW | 
|     1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |     1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
|     2 // Use of this source code is governed by a BSD-style license that can be |     2 // Use of this source code is governed by a BSD-style license that can be | 
|     3 // found in the LICENSE file. |     3 // found in the LICENSE file. | 
|     4  |     4  | 
|     5 #import "chrome/browser/ui/cocoa/tabs/tab_strip_controller.h" |     5 #import "chrome/browser/ui/cocoa/tabs/tab_strip_controller.h" | 
|     6  |     6  | 
|     7 #import <QuartzCore/QuartzCore.h> |     7 #import <QuartzCore/QuartzCore.h> | 
|     8  |     8  | 
|     9 #include <cmath> |     9 #include <cmath> | 
|    10 #include <limits> |    10 #include <limits> | 
| (...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|    58 #include "chrome/common/pref_names.h" |    58 #include "chrome/common/pref_names.h" | 
|    59 #include "content/public/browser/navigation_controller.h" |    59 #include "content/public/browser/navigation_controller.h" | 
|    60 #include "content/public/browser/user_metrics.h" |    60 #include "content/public/browser/user_metrics.h" | 
|    61 #include "content/public/browser/web_contents.h" |    61 #include "content/public/browser/web_contents.h" | 
|    62 #include "content/public/browser/web_contents_view.h" |    62 #include "content/public/browser/web_contents_view.h" | 
|    63 #include "grit/generated_resources.h" |    63 #include "grit/generated_resources.h" | 
|    64 #include "grit/theme_resources.h" |    64 #include "grit/theme_resources.h" | 
|    65 #include "grit/ui_resources.h" |    65 #include "grit/ui_resources.h" | 
|    66 #include "skia/ext/skia_utils_mac.h" |    66 #include "skia/ext/skia_utils_mac.h" | 
|    67 #import "third_party/GTM/AppKit/GTMNSAnimation+Duration.h" |    67 #import "third_party/GTM/AppKit/GTMNSAnimation+Duration.h" | 
 |    68 #import "ui/base/animation/animation_container.h" | 
|    68 #import "ui/base/cocoa/tracking_area.h" |    69 #import "ui/base/cocoa/tracking_area.h" | 
|    69 #include "ui/base/l10n/l10n_util.h" |    70 #include "ui/base/l10n/l10n_util.h" | 
|    70 #include "ui/base/models/list_selection_model.h" |    71 #include "ui/base/models/list_selection_model.h" | 
|    71 #include "ui/base/resource/resource_bundle.h" |    72 #include "ui/base/resource/resource_bundle.h" | 
|    72 #include "ui/base/theme_provider.h" |    73 #include "ui/base/theme_provider.h" | 
|    73 #include "ui/gfx/image/image.h" |    74 #include "ui/gfx/image/image.h" | 
|    74  |    75  | 
|    75 using content::OpenURLParams; |    76 using content::OpenURLParams; | 
|    76 using content::Referrer; |    77 using content::Referrer; | 
|    77 using content::UserMetricsAction; |    78 using content::UserMetricsAction; | 
| (...skipping 415 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   493     switchView_ = switchView; |   494     switchView_ = switchView; | 
|   494     browser_ = browser; |   495     browser_ = browser; | 
|   495     tabStripModel_ = browser_->tab_strip_model(); |   496     tabStripModel_ = browser_->tab_strip_model(); | 
|   496     hoverTabSelector_.reset(new HoverTabSelector(tabStripModel_)); |   497     hoverTabSelector_.reset(new HoverTabSelector(tabStripModel_)); | 
|   497     delegate_ = delegate; |   498     delegate_ = delegate; | 
|   498     bridge_.reset(new TabStripModelObserverBridge(tabStripModel_, self)); |   499     bridge_.reset(new TabStripModelObserverBridge(tabStripModel_, self)); | 
|   499     dragController_.reset( |   500     dragController_.reset( | 
|   500         [[TabStripDragController alloc] initWithTabStripController:self]); |   501         [[TabStripDragController alloc] initWithTabStripController:self]); | 
|   501     tabContentsArray_.reset([[NSMutableArray alloc] init]); |   502     tabContentsArray_.reset([[NSMutableArray alloc] init]); | 
|   502     tabArray_.reset([[NSMutableArray alloc] init]); |   503     tabArray_.reset([[NSMutableArray alloc] init]); | 
 |   504     animationContainer_ = new ui::AnimationContainer; | 
|   503     NSWindow* browserWindow = [view window]; |   505     NSWindow* browserWindow = [view window]; | 
|   504  |   506  | 
|   505     // Important note: any non-tab subviews not added to |permanentSubviews_| |   507     // Important note: any non-tab subviews not added to |permanentSubviews_| | 
|   506     // (see |-addSubviewToPermanentList:|) will be wiped out. |   508     // (see |-addSubviewToPermanentList:|) will be wiped out. | 
|   507     permanentSubviews_.reset([[NSMutableArray alloc] init]); |   509     permanentSubviews_.reset([[NSMutableArray alloc] init]); | 
|   508  |   510  | 
|   509     ResourceBundle& rb = ResourceBundle::GetSharedInstance(); |   511     ResourceBundle& rb = ResourceBundle::GetSharedInstance(); | 
|   510     defaultFavicon_.reset( |   512     defaultFavicon_.reset( | 
|   511         rb.GetNativeImageNamed(IDR_DEFAULT_FAVICON).CopyNSImage()); |   513         rb.GetNativeImageNamed(IDR_DEFAULT_FAVICON).CopyNSImage()); | 
|   512  |   514  | 
| (...skipping 1103 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  1616         if (theme && [tabController projecting]) { |  1618         if (theme && [tabController projecting]) { | 
|  1617           NSImage* projectorGlow = |  1619           NSImage* projectorGlow = | 
|  1618               theme->GetNSImageNamed(IDR_TAB_CAPTURE_GLOW, true); |  1620               theme->GetNSImageNamed(IDR_TAB_CAPTURE_GLOW, true); | 
|  1619           NSImage* projector = theme->GetNSImageNamed(IDR_TAB_CAPTURE, true); |  1621           NSImage* projector = theme->GetNSImageNamed(IDR_TAB_CAPTURE, true); | 
|  1620  |  1622  | 
|  1621           NSRect frame = NSMakeRect(0, |  1623           NSRect frame = NSMakeRect(0, | 
|  1622                                     0, |  1624                                     0, | 
|  1623                                     kProjectingIconWidthAndHeight, |  1625                                     kProjectingIconWidthAndHeight, | 
|  1624                                     kProjectingIconWidthAndHeight); |  1626                                     kProjectingIconWidthAndHeight); | 
|  1625           TabProjectingImageView* projectingView = |  1627           TabProjectingImageView* projectingView = | 
|  1626               [[[TabProjectingImageView alloc] initWithFrame:frame |  1628               [[[TabProjectingImageView alloc] | 
|  1627                                          backgroundImage:[imageView image] |  1629                   initWithFrame:frame | 
|  1628                                           projectorImage:projector |  1630                 backgroundImage:[imageView image] | 
|  1629                                               throbImage:projectorGlow |  1631                  projectorImage:projector | 
|  1630                                               durationMS:kRecordingDurationMs] |  1632                      throbImage:projectorGlow | 
|  1631                   autorelease]; |  1633                      durationMS:kRecordingDurationMs | 
 |  1634              animationContainer:animationContainer_] autorelease]; | 
|  1632  |  1635  | 
|  1633           iconView = projectingView; |  1636           iconView = projectingView; | 
|  1634         } else if (theme && chrome::ShouldShowRecordingIndicator(contents)) { |  1637         } else if (theme && chrome::ShouldShowRecordingIndicator(contents)) { | 
|  1635           // Create a masked favicon. |  1638           // Create a masked favicon. | 
|  1636           NSImage* mask = theme->GetNSImageNamed(IDR_TAB_RECORDING_MASK, true); |  1639           NSImage* mask = theme->GetNSImageNamed(IDR_TAB_RECORDING_MASK, true); | 
|  1637           NSImage* recording = theme->GetNSImageNamed(IDR_TAB_RECORDING, true); |  1640           NSImage* recording = theme->GetNSImageNamed(IDR_TAB_RECORDING, true); | 
|  1638           NSImage* favIconMasked = CreateMaskedFaviconForRecording( |  1641           NSImage* favIconMasked = CreateMaskedFaviconForRecording( | 
|  1639                                        [imageView image], mask, recording); |  1642                                        [imageView image], mask, recording); | 
|  1640  |  1643  | 
|  1641           NSRect frame = |  1644           NSRect frame = | 
|  1642               NSMakeRect(0, 0, kIconWidthAndHeight, kIconWidthAndHeight); |  1645               NSMakeRect(0, 0, kIconWidthAndHeight, kIconWidthAndHeight); | 
|  1643           ThrobbingImageView* recordingView = |  1646           ThrobbingImageView* recordingView = | 
|  1644               [[[ThrobbingImageView alloc] |  1647               [[[ThrobbingImageView alloc] | 
|  1645                   initWithFrame:frame |  1648                   initWithFrame:frame | 
|  1646                 backgroundImage:favIconMasked |  1649                 backgroundImage:favIconMasked | 
|  1647                      throbImage:recording |  1650                      throbImage:recording | 
|  1648                      durationMS:kRecordingDurationMs |  1651                      durationMS:kRecordingDurationMs | 
|  1649                   throbPosition:kThrobPositionBottomRight] autorelease]; |  1652                   throbPosition:kThrobPositionBottomRight | 
 |  1653              animationContainer:animationContainer_] autorelease]; | 
|  1650  |  1654  | 
|  1651           iconView = recordingView; |  1655           iconView = recordingView; | 
|  1652         } else if (chrome::IsPlayingAudio(contents) || |  1656         } else if (chrome::IsPlayingAudio(contents) || | 
|  1653                    [tabAudioIndicatorViewMac isAnimating]) { |  1657                    [tabAudioIndicatorViewMac isAnimating]) { | 
|  1654           if (!tabAudioIndicatorViewMac) { |  1658           if (!tabAudioIndicatorViewMac) { | 
|  1655             NSRect frame = |  1659             NSRect frame = | 
|  1656                 NSMakeRect(0, 0, kIconWidthAndHeight, kIconWidthAndHeight); |  1660                 NSMakeRect(0, 0, kIconWidthAndHeight, kIconWidthAndHeight); | 
|  1657             tabAudioIndicatorViewMac = [[[TabAudioIndicatorViewMac alloc] |  1661             tabAudioIndicatorViewMac = [[[TabAudioIndicatorViewMac alloc] | 
|  1658                 initWithFrame:frame] autorelease]; |  1662                 initWithFrame:frame] autorelease]; | 
 |  1663             [tabAudioIndicatorViewMac | 
 |  1664                 setAnimationContainer:animationContainer_]; | 
|  1659           } |  1665           } | 
|  1660           [tabAudioIndicatorViewMac |  1666           [tabAudioIndicatorViewMac | 
|  1661               setIsPlayingAudio:chrome::IsPlayingAudio(contents)]; |  1667               setIsPlayingAudio:chrome::IsPlayingAudio(contents)]; | 
|  1662           [tabAudioIndicatorViewMac setBackgroundImage:[imageView image]]; |  1668           [tabAudioIndicatorViewMac setBackgroundImage:[imageView image]]; | 
|  1663           iconView = tabAudioIndicatorViewMac; |  1669           iconView = tabAudioIndicatorViewMac; | 
|  1664         } else { |  1670         } else { | 
|  1665           iconView = imageView; |  1671           iconView = imageView; | 
|  1666         } |  1672         } | 
|  1667       } else if (newState == kTabCrashed) { |  1673       } else if (newState == kTabCrashed) { | 
|  1668         NSImage* oldImage = [[self iconImageViewForContents:contents] image]; |  1674         NSImage* oldImage = [[self iconImageViewForContents:contents] image]; | 
| (...skipping 620 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  2289 NSView* GetSheetParentViewForWebContents(WebContents* web_contents) { |  2295 NSView* GetSheetParentViewForWebContents(WebContents* web_contents) { | 
|  2290   // View hierarchy of the contents view: |  2296   // View hierarchy of the contents view: | 
|  2291   // NSView  -- switchView, same for all tabs |  2297   // NSView  -- switchView, same for all tabs | 
|  2292   // +- NSView  -- TabContentsController's view |  2298   // +- NSView  -- TabContentsController's view | 
|  2293   //    +- TabContentsViewCocoa |  2299   //    +- TabContentsViewCocoa | 
|  2294   // |  2300   // | 
|  2295   // Changing it? Do not forget to modify |  2301   // Changing it? Do not forget to modify | 
|  2296   // -[TabStripController swapInTabAtIndex:] too. |  2302   // -[TabStripController swapInTabAtIndex:] too. | 
|  2297   return [web_contents->GetView()->GetNativeView() superview]; |  2303   return [web_contents->GetView()->GetNativeView() superview]; | 
|  2298 } |  2304 } | 
| OLD | NEW |