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 #include "chrome/browser/ui/views/frame/opaque_browser_frame_view.h" | 5 #include "chrome/browser/ui/views/frame/opaque_browser_frame_view.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 #include <string> | 8 #include <string> |
9 | 9 |
10 #include "base/compiler_specific.h" | 10 #include "base/compiler_specific.h" |
(...skipping 598 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
609 ui::ThemeProvider* tp = GetThemeProvider(); | 609 ui::ThemeProvider* tp = GetThemeProvider(); |
610 frame_background_->set_frame_color(GetFrameColor()); | 610 frame_background_->set_frame_color(GetFrameColor()); |
611 frame_background_->set_theme_image(GetFrameImage()); | 611 frame_background_->set_theme_image(GetFrameImage()); |
612 frame_background_->set_theme_overlay_image(GetFrameOverlayImage()); | 612 frame_background_->set_theme_overlay_image(GetFrameOverlayImage()); |
613 frame_background_->set_top_area_height(GetTopAreaHeight()); | 613 frame_background_->set_top_area_height(GetTopAreaHeight()); |
614 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) | 614 #if defined(OS_LINUX) && !defined(OS_CHROMEOS) |
615 // The window manager typically shows a gradient in the native title bar (when | 615 // The window manager typically shows a gradient in the native title bar (when |
616 // the system title bar pref is set, or when maximized on Ubuntu). Hide the | 616 // the system title bar pref is set, or when maximized on Ubuntu). Hide the |
617 // gradient in the tab strip (by shifting it up vertically) to avoid a | 617 // gradient in the tab strip (by shifting it up vertically) to avoid a |
618 // double-gradient effect. | 618 // double-gradient effect. |
619 if (tp->UsingNativeTheme()) | 619 if (tp->UsingSystemTheme()) |
620 frame_background_->set_maximized_top_inset(kGTKThemeCondensedFrameTopInset); | 620 frame_background_->set_maximized_top_inset(kGTKThemeCondensedFrameTopInset); |
621 #endif | 621 #endif |
622 | 622 |
623 frame_background_->PaintMaximized(canvas, this); | 623 frame_background_->PaintMaximized(canvas, this); |
624 | 624 |
625 // TODO(jamescook): Migrate this into FrameBackground. | 625 // TODO(jamescook): Migrate this into FrameBackground. |
626 if (!browser_view()->IsToolbarVisible()) { | 626 if (!browser_view()->IsToolbarVisible()) { |
627 // There's no toolbar to edge the frame border, so we need to draw a bottom | 627 // There's no toolbar to edge the frame border, so we need to draw a bottom |
628 // edge. The graphic we use for this has a built in client edge, so we clip | 628 // edge. The graphic we use for this has a built in client edge, so we clip |
629 // it off the bottom. | 629 // it off the bottom. |
(...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
832 color_id = is_incognito ? | 832 color_id = is_incognito ? |
833 ThemeProperties::COLOR_FRAME_INCOGNITO : | 833 ThemeProperties::COLOR_FRAME_INCOGNITO : |
834 ThemeProperties::COLOR_FRAME; | 834 ThemeProperties::COLOR_FRAME; |
835 } else { | 835 } else { |
836 color_id = is_incognito ? | 836 color_id = is_incognito ? |
837 ThemeProperties::COLOR_FRAME_INCOGNITO_INACTIVE : | 837 ThemeProperties::COLOR_FRAME_INCOGNITO_INACTIVE : |
838 ThemeProperties::COLOR_FRAME_INACTIVE; | 838 ThemeProperties::COLOR_FRAME_INACTIVE; |
839 } | 839 } |
840 | 840 |
841 if (browser_view()->IsBrowserTypeNormal() || | 841 if (browser_view()->IsBrowserTypeNormal() || |
842 platform_observer_->IsUsingNativeTheme()) { | 842 platform_observer_->IsUsingSystemTheme()) { |
843 return GetThemeProvider()->GetColor(color_id); | 843 return GetThemeProvider()->GetColor(color_id); |
844 } | 844 } |
845 | 845 |
846 // Never theme app and popup windows unless the |platform_observer_| | 846 // Never theme app and popup windows unless the |platform_observer_| |
847 // requested an override. | 847 // requested an override. |
848 return ThemeProperties::GetDefaultColor(color_id); | 848 return ThemeProperties::GetDefaultColor(color_id); |
849 } | 849 } |
850 | 850 |
851 gfx::ImageSkia* OpaqueBrowserFrameView::GetFrameImage() const { | 851 gfx::ImageSkia* OpaqueBrowserFrameView::GetFrameImage() const { |
852 bool is_incognito = browser_view()->IsOffTheRecord(); | 852 bool is_incognito = browser_view()->IsOffTheRecord(); |
853 int resource_id; | 853 int resource_id; |
854 if (browser_view()->IsBrowserTypeNormal()) { | 854 if (browser_view()->IsBrowserTypeNormal()) { |
855 if (ShouldPaintAsActive()) { | 855 if (ShouldPaintAsActive()) { |
856 resource_id = is_incognito ? | 856 resource_id = is_incognito ? |
857 IDR_THEME_FRAME_INCOGNITO : IDR_THEME_FRAME; | 857 IDR_THEME_FRAME_INCOGNITO : IDR_THEME_FRAME; |
858 } else { | 858 } else { |
859 resource_id = is_incognito ? | 859 resource_id = is_incognito ? |
860 IDR_THEME_FRAME_INCOGNITO_INACTIVE : IDR_THEME_FRAME_INACTIVE; | 860 IDR_THEME_FRAME_INCOGNITO_INACTIVE : IDR_THEME_FRAME_INACTIVE; |
861 } | 861 } |
862 return GetThemeProvider()->GetImageSkiaNamed(resource_id); | 862 return GetThemeProvider()->GetImageSkiaNamed(resource_id); |
863 } | 863 } |
864 if (ShouldPaintAsActive()) { | 864 if (ShouldPaintAsActive()) { |
865 resource_id = is_incognito ? | 865 resource_id = is_incognito ? |
866 IDR_THEME_FRAME_INCOGNITO : IDR_FRAME; | 866 IDR_THEME_FRAME_INCOGNITO : IDR_FRAME; |
867 } else { | 867 } else { |
868 resource_id = is_incognito ? | 868 resource_id = is_incognito ? |
869 IDR_THEME_FRAME_INCOGNITO_INACTIVE : IDR_THEME_FRAME_INACTIVE; | 869 IDR_THEME_FRAME_INCOGNITO_INACTIVE : IDR_THEME_FRAME_INACTIVE; |
870 } | 870 } |
871 | 871 |
872 if (platform_observer_->IsUsingNativeTheme()) { | 872 if (platform_observer_->IsUsingSystemTheme()) { |
873 // We want to use theme images provided by the platform theme when enabled, | 873 // We want to use theme images provided by the system theme when enabled, |
874 // even if we are an app or popup window. | 874 // even if we are an app or popup window. |
875 return GetThemeProvider()->GetImageSkiaNamed(resource_id); | 875 return GetThemeProvider()->GetImageSkiaNamed(resource_id); |
876 } | 876 } |
877 | 877 |
878 // Otherwise, never theme app and popup windows. | 878 // Otherwise, never theme app and popup windows. |
879 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); | 879 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); |
880 return rb.GetImageSkiaNamed(chrome::MapThemeImage( | 880 return rb.GetImageSkiaNamed(chrome::MapThemeImage( |
881 chrome::GetHostDesktopTypeForNativeWindow( | 881 chrome::GetHostDesktopTypeForNativeWindow( |
882 browser_view()->GetNativeWindow()), | 882 browser_view()->GetNativeWindow()), |
883 resource_id)); | 883 resource_id)); |
(...skipping 12 matching lines...) Expand all Loading... |
896 | 896 |
897 int OpaqueBrowserFrameView::GetTopAreaHeight() const { | 897 int OpaqueBrowserFrameView::GetTopAreaHeight() const { |
898 gfx::ImageSkia* frame_image = GetFrameImage(); | 898 gfx::ImageSkia* frame_image = GetFrameImage(); |
899 int top_area_height = frame_image->height(); | 899 int top_area_height = frame_image->height(); |
900 if (browser_view()->IsTabStripVisible()) { | 900 if (browser_view()->IsTabStripVisible()) { |
901 top_area_height = std::max(top_area_height, | 901 top_area_height = std::max(top_area_height, |
902 GetBoundsForTabStrip(browser_view()->tabstrip()).bottom()); | 902 GetBoundsForTabStrip(browser_view()->tabstrip()).bottom()); |
903 } | 903 } |
904 return top_area_height; | 904 return top_area_height; |
905 } | 905 } |
OLD | NEW |