Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(7588)

Unified Diff: chrome/browser/ui/views/frame/browser_non_client_frame_view_ash.cc

Issue 148003003: Use white header for app windows part #2 (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/views/frame/browser_non_client_frame_view_ash.cc
diff --git a/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash.cc b/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash.cc
index 6f75116b5eff8d6f3a1977dd4c5091f7fbd7bd12..8ca9008feb7f870d6ecb79a713e551fc55330dca 100644
--- a/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash.cc
+++ b/chrome/browser/ui/views/frame/browser_non_client_frame_view_ash.cc
@@ -243,20 +243,19 @@ void BrowserNonClientFrameViewAsh::OnPaint(gfx::Canvas* canvas) {
return;
}
+ caption_button_container_->SetPaintAsActive(ShouldPaintAsActive());
+
// The primary header image changes based on window activation state and
// theme, so we look it up for each paint.
- int theme_frame_image_id = GetThemeFrameImageId();
- int theme_frame_overlay_image_id = GetThemeFrameOverlayImageId();
+ int theme_frame_image_id = 0;
+ int theme_frame_overlay_image_id = 0;
+ GetFrameImageIds(&theme_frame_image_id, &theme_frame_overlay_image_id);
- ui::ThemeProvider* theme_provider = GetThemeProvider();
- if (!theme_provider->HasCustomImage(theme_frame_image_id) &&
- (theme_frame_overlay_image_id == 0 ||
- !theme_provider->HasCustomImage(theme_frame_overlay_image_id))) {
- if (frame()->IsMaximized() || frame()->IsFullscreen())
- theme_frame_image_id = IDR_AURA_WINDOW_HEADER_BASE_MINIMAL;
- }
+ ash::HeaderPainter::Mode header_mode = ShouldPaintAsActive() ?
+ ash::HeaderPainter::MODE_ACTIVE : ash::HeaderPainter::MODE_INACTIVE;
header_painter_->PaintHeader(
canvas,
+ header_mode,
theme_frame_image_id,
theme_frame_overlay_image_id);
if (browser_view()->ShouldShowWindowTitle())
@@ -436,7 +435,7 @@ void BrowserNonClientFrameViewAsh::PaintImmersiveLightbarStyleHeader(
gfx::Canvas* canvas) {
// The light bar header is not themed because theming it does not look good.
gfx::ImageSkia* frame_image = GetThemeProvider()->GetImageSkiaNamed(
- IDR_AURA_WINDOW_HEADER_BASE_MINIMAL);
+ IDR_AURA_BROWSER_WINDOW_HEADER_BASE_MAXIMIZED);
canvas->TileImageInt(*frame_image, 0, 0, width(), frame_image->height());
}
@@ -516,7 +515,9 @@ void BrowserNonClientFrameViewAsh::PaintToolbarBackground(gfx::Canvas* canvas) {
void BrowserNonClientFrameViewAsh::PaintContentEdge(gfx::Canvas* canvas) {
if (UsePackagedAppHeaderStyle()) {
- header_painter_->PaintHeaderContentSeparator(canvas);
+ ash::HeaderPainter::Mode header_mode = ShouldPaintAsActive() ?
+ ash::HeaderPainter::MODE_ACTIVE : ash::HeaderPainter::MODE_INACTIVE;
+ header_painter_->PaintHeaderContentSeparator(canvas, header_mode);
} else {
canvas->FillRect(gfx::Rect(0, caption_button_container_->bounds().bottom(),
width(), kClientEdgeThickness),
@@ -525,35 +526,52 @@ void BrowserNonClientFrameViewAsh::PaintContentEdge(gfx::Canvas* canvas) {
}
}
-int BrowserNonClientFrameViewAsh::GetThemeFrameImageId() const {
+void BrowserNonClientFrameViewAsh::GetFrameImageIds(
James Cook 2014/02/03 18:46:35 This function is long and complex. I suggest break
+ int* frame_image_id,
+ int* frame_overlay_image_id) const {
+ *frame_overlay_image_id = 0;
+
bool is_incognito = !browser_view()->IsRegularOrGuestSession();
if (browser_view()->IsBrowserTypeNormal()) {
- // Use the standard resource ids to allow users to theme the frames.
+ // Tabbed browser windows.
+ ui::ThemeProvider* tp = GetThemeProvider();
+ if (tp->HasCustomImage(IDR_THEME_FRAME_OVERLAY) &&
+ !is_incognito) {
+ *frame_overlay_image_id = ShouldPaintAsActive() ?
+ IDR_THEME_FRAME_OVERLAY : IDR_THEME_FRAME_OVERLAY_INACTIVE;
+ }
+
if (ShouldPaintAsActive()) {
- return is_incognito ?
+ *frame_image_id = is_incognito ?
IDR_THEME_FRAME_INCOGNITO : IDR_THEME_FRAME;
+ } else {
+ *frame_image_id = is_incognito ?
+ IDR_THEME_FRAME_INCOGNITO_INACTIVE : IDR_THEME_FRAME_INACTIVE;
}
- return is_incognito ?
- IDR_THEME_FRAME_INCOGNITO_INACTIVE : IDR_THEME_FRAME_INACTIVE;
- }
- // Never theme app and popup windows.
- if (ShouldPaintAsActive()) {
- return is_incognito ?
- IDR_AURA_WINDOW_HEADER_BASE_INCOGNITO_ACTIVE :
- IDR_AURA_WINDOW_HEADER_BASE_ACTIVE;
- }
- return is_incognito ?
- IDR_AURA_WINDOW_HEADER_BASE_INCOGNITO_INACTIVE :
- IDR_AURA_WINDOW_HEADER_BASE_INACTIVE;
-}
-int BrowserNonClientFrameViewAsh::GetThemeFrameOverlayImageId() const {
- ui::ThemeProvider* tp = GetThemeProvider();
- if (tp->HasCustomImage(IDR_THEME_FRAME_OVERLAY) &&
- browser_view()->IsBrowserTypeNormal() &&
- !browser_view()->IsOffTheRecord()) {
- return ShouldPaintAsActive() ?
- IDR_THEME_FRAME_OVERLAY : IDR_THEME_FRAME_OVERLAY_INACTIVE;
+ if ((frame()->IsMaximized() || frame()->IsFullscreen()) &&
+ !tp->HasCustomImage(IDR_THEME_FRAME) &&
+ !tp->HasCustomImage(*frame_image_id) &&
+ *frame_overlay_image_id == 0) {
+ *frame_image_id = IDR_AURA_BROWSER_WINDOW_HEADER_BASE_MAXIMIZED;
+ }
+ } else if (UsePackagedAppHeaderStyle()) {
+ // Apps are not themeable.
+ *frame_image_id = ShouldPaintAsActive() ?
+ IDR_AURA_WINDOW_HEADER_BASE_ACTIVE :
+ IDR_AURA_WINDOW_HEADER_BASE_INACTIVE;
+ } else {
+ // Browser popups are not themeable.
+ if (frame()->IsMaximized() || frame()->IsFullscreen()) {
+ *frame_image_id = IDR_AURA_BROWSER_WINDOW_HEADER_BASE_MAXIMIZED;
+ } else if (ShouldPaintAsActive()) {
+ *frame_image_id = is_incognito ?
+ IDR_AURA_BROWSER_WINDOW_HEADER_BASE_RESTORED_INCOGNITO_ACTIVE :
+ IDR_AURA_BROWSER_WINDOW_HEADER_BASE_RESTORED_ACTIVE;
+ } else {
+ *frame_image_id = is_incognito ?
+ IDR_AURA_BROWSER_WINDOW_HEADER_BASE_RESTORED_INCOGNITO_INACTIVE :
+ IDR_AURA_BROWSER_WINDOW_HEADER_BASE_RESTORED_INACTIVE;
+ }
}
- return 0;
}
« ash/wm/header_painter.cc ('K') | « chrome/browser/ui/views/frame/browser_non_client_frame_view_ash.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698