Chromium Code Reviews| Index: chrome/browser/ui/views/tabs/tab_strip.cc |
| diff --git a/chrome/browser/ui/views/tabs/tab_strip.cc b/chrome/browser/ui/views/tabs/tab_strip.cc |
| index a33da5211fe38f5b2a5cd5e5c06a7cf31fd3b5b1..056c6a00672945b290b781ad103686b8d1d84bd8 100644 |
| --- a/chrome/browser/ui/views/tabs/tab_strip.cc |
| +++ b/chrome/browser/ui/views/tabs/tab_strip.cc |
| @@ -70,9 +70,11 @@ namespace { |
| static const int kTabStripAnimationVSlop = 40; |
| // Inactive tabs in a native frame are slightly transparent. |
| static const int kNativeFrameInactiveTabAlpha = 200; |
| +#if defined(OS_WIN) |
| // If there are multiple tabs selected then make non-selected inactive tabs |
| // even more transparent. |
| static const int kNativeFrameInactiveTabAlphaMultiSelection = 150; |
|
sky
2014/02/03 21:53:03
Rename this to better match other naming.
Matt Giuca
2014/02/05 23:25:31
Done.
|
| +#endif |
| // Alpha applied to all elements save the selected tabs. |
| static const int kInactiveTabAndNewTabButtonAlphaAsh = 230; |
| @@ -333,7 +335,9 @@ class NewTabButton : public views::ImageButton { |
| virtual void OnGestureEvent(ui::GestureEvent* event) OVERRIDE; |
| private: |
| - bool ShouldUseNativeFrame() const; |
| + // Returns true on Windows if the Glass styling is being used. |
| + // This implies that the tab strip overlaps a native window frame. |
| + bool UsingWindowsGlass() const; |
| gfx::ImageSkia GetBackgroundImage(views::CustomButton::ButtonState state, |
| ui::ScaleFactor scale_factor) const; |
| gfx::ImageSkia GetImageForState(views::CustomButton::ButtonState state, |
| @@ -427,16 +431,19 @@ void NewTabButton::OnGestureEvent(ui::GestureEvent* event) { |
| event->SetHandled(); |
| } |
| -bool NewTabButton::ShouldUseNativeFrame() const { |
| +bool NewTabButton::UsingWindowsGlass() const { |
| +#if defined(OS_WIN) |
| return GetWidget() && |
| GetWidget()->GetTopLevelWidget()->ShouldUseNativeFrame(); |
| +#endif |
| +return false; |
| } |
| gfx::ImageSkia NewTabButton::GetBackgroundImage( |
| views::CustomButton::ButtonState state, |
| ui::ScaleFactor scale_factor) const { |
| int background_id = 0; |
| - if (ShouldUseNativeFrame()) { |
| + if (UsingWindowsGlass()) { |
| background_id = IDR_THEME_TAB_BACKGROUND_V; |
| } else if (tab_strip_->controller()->IsIncognito()) { |
| background_id = IDR_THEME_TAB_BACKGROUND_INCOGNITO; |
| @@ -452,7 +459,7 @@ gfx::ImageSkia NewTabButton::GetBackgroundImage( |
| switch (state) { |
| case views::CustomButton::STATE_NORMAL: |
| case views::CustomButton::STATE_HOVERED: |
| - alpha = ShouldUseNativeFrame() ? kNativeFrameInactiveTabAlpha : 255; |
| + alpha = UsingWindowsGlass() ? kNativeFrameInactiveTabAlpha : 255; |
| break; |
| case views::CustomButton::STATE_PRESSED: |
| alpha = 145; |
| @@ -525,7 +532,7 @@ gfx::ImageSkia NewTabButton::GetImageForState( |
| // Draw the button border with a slight alpha. |
| const int kNativeFrameOverlayAlpha = 178; |
|
sky
2014/02/03 21:53:03
rename these too.
Matt Giuca
2014/02/05 23:25:31
Done.
|
| const int kOpaqueFrameOverlayAlpha = 230; |
| - uint8 alpha = ShouldUseNativeFrame() ? |
| + uint8 alpha = UsingWindowsGlass() ? |
| kNativeFrameOverlayAlpha : kOpaqueFrameOverlayAlpha; |
| canvas.DrawImageInt(*overlay, 0, 0, alpha); |
| @@ -1332,7 +1339,9 @@ void TabStrip::PaintChildren(gfx::Canvas* canvas) { |
| if (inactive_tab_alpha < 255) |
| canvas->Restore(); |
| +#if defined(OS_WIN) |
|
sky
2014/02/03 21:53:03
I would rather move the ifdef to a function with a
Matt Giuca
2014/02/05 23:25:31
Done.
|
| if (GetWidget()->ShouldUseNativeFrame()) { |
| + // On Windows, a native frame implies Glass. |
| // Make sure non-active tabs are somewhat transparent. |
| SkPaint paint; |
| // If there are multiple tabs selected, fade non-selected tabs more to make |
| @@ -1346,6 +1355,7 @@ void TabStrip::PaintChildren(gfx::Canvas* canvas) { |
| // The tabstrip area overlaps the toolbar area by 2 px. |
| canvas->DrawRect(gfx::Rect(0, 0, width(), height() - 2), paint); |
| } |
| +#endif |
| // Now selected but not active. We don't want these dimmed if using native |
| // frame, so they're painted after initial pass. |