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

Side by Side Diff: ash/wm/header_painter.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, 10 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "ash/wm/header_painter.h" 5 #include "ash/wm/header_painter.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "ash/wm/caption_buttons/frame_caption_button_container_view.h" 9 #include "ash/wm/caption_buttons/frame_caption_button_container_view.h"
10 #include "base/logging.h" // DCHECK 10 #include "base/logging.h" // DCHECK
(...skipping 25 matching lines...) Expand all
36 // Space between the title text and the caption buttons. 36 // Space between the title text and the caption buttons.
37 const int kTitleLogoSpacing = 5; 37 const int kTitleLogoSpacing = 5;
38 // Space between window icon and title text. 38 // Space between window icon and title text.
39 const int kTitleIconOffsetX = 5; 39 const int kTitleIconOffsetX = 5;
40 // Space between window edge and title text, when there is no icon. 40 // Space between window edge and title text, when there is no icon.
41 const int kTitleNoIconOffsetX = 8; 41 const int kTitleNoIconOffsetX = 8;
42 // Color for the non-maximized window title text. 42 // Color for the non-maximized window title text.
43 const SkColor kNonMaximizedWindowTitleTextColor = SkColorSetRGB(40, 40, 40); 43 const SkColor kNonMaximizedWindowTitleTextColor = SkColorSetRGB(40, 40, 40);
44 // Color for the maximized window title text. 44 // Color for the maximized window title text.
45 const SkColor kMaximizedWindowTitleTextColor = SK_ColorWHITE; 45 const SkColor kMaximizedWindowTitleTextColor = SK_ColorWHITE;
46 // Size of header/content separator line below the header image. 46 // Size of header/content separator line below the header image for non-browser
47 // windows.
47 const int kHeaderContentSeparatorSize = 1; 48 const int kHeaderContentSeparatorSize = 1;
48 // Color of header bottom edge line. 49 // Color of the active window header/content separator line for non-browser
49 const SkColor kHeaderContentSeparatorColor = SkColorSetRGB(128, 128, 128); 50 // windows.
51 const SkColor kHeaderContentSeparatorColor = SkColorSetRGB(180, 180, 182);
52 // Color of the inactive window header/content separator line for non-browser
53 // windows.
54 const SkColor kHeaderContentSeparatorInactiveColor =
55 SkColorSetRGB(150, 150, 152);
50 // In the pre-Ash era the web content area had a frame along the left edge, so 56 // In the pre-Ash era the web content area had a frame along the left edge, so
51 // user-generated theme images for the new tab page assume they are shifted 57 // user-generated theme images for the new tab page assume they are shifted
52 // right relative to the header. Now that we have removed the left edge frame 58 // right relative to the header. Now that we have removed the left edge frame
53 // we need to copy the theme image for the window header from a few pixels 59 // we need to copy the theme image for the window header from a few pixels
54 // inset to preserve alignment with the NTP image, or else we'll break a bunch 60 // inset to preserve alignment with the NTP image, or else we'll break a bunch
55 // of existing themes. We do something similar on OS X for the same reason. 61 // of existing themes. We do something similar on OS X for the same reason.
56 const int kThemeFrameImageInsetX = 5; 62 const int kThemeFrameImageInsetX = 5;
57 // Duration of crossfade animation for activating and deactivating frame. 63 // Duration of crossfade animation for activating and deactivating frame.
58 const int kActivationCrossfadeDurationMs = 200; 64 const int kActivationCrossfadeDurationMs = 200;
59 65
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
132 138
133 /////////////////////////////////////////////////////////////////////////////// 139 ///////////////////////////////////////////////////////////////////////////////
134 // HeaderPainter, public: 140 // HeaderPainter, public:
135 141
136 HeaderPainter::HeaderPainter() 142 HeaderPainter::HeaderPainter()
137 : frame_(NULL), 143 : frame_(NULL),
138 header_view_(NULL), 144 header_view_(NULL),
139 window_icon_(NULL), 145 window_icon_(NULL),
140 caption_button_container_(NULL), 146 caption_button_container_(NULL),
141 header_height_(0), 147 header_height_(0),
142 top_left_corner_(NULL),
143 top_edge_(NULL),
144 top_right_corner_(NULL),
145 header_left_edge_(NULL),
146 header_right_edge_(NULL),
147 previous_theme_frame_id_(0), 148 previous_theme_frame_id_(0),
148 previous_theme_frame_overlay_id_(0), 149 previous_theme_frame_overlay_id_(0),
149 crossfade_theme_frame_id_(0), 150 crossfade_theme_frame_id_(0),
150 crossfade_theme_frame_overlay_id_(0) {} 151 crossfade_theme_frame_overlay_id_(0) {}
151 152
152 HeaderPainter::~HeaderPainter() { 153 HeaderPainter::~HeaderPainter() {
153 } 154 }
154 155
155 void HeaderPainter::Init( 156 void HeaderPainter::Init(
156 Style style, 157 Style style,
157 views::Widget* frame, 158 views::Widget* frame,
158 views::View* header_view, 159 views::View* header_view,
159 views::View* window_icon, 160 views::View* window_icon,
160 FrameCaptionButtonContainerView* caption_button_container) { 161 FrameCaptionButtonContainerView* caption_button_container) {
161 DCHECK(frame); 162 DCHECK(frame);
162 DCHECK(header_view); 163 DCHECK(header_view);
163 // window_icon may be NULL. 164 // window_icon may be NULL.
164 DCHECK(caption_button_container); 165 DCHECK(caption_button_container);
165 style_ = style; 166 style_ = style;
166 frame_ = frame; 167 frame_ = frame;
167 header_view_ = header_view; 168 header_view_ = header_view;
168 window_icon_ = window_icon; 169 window_icon_ = window_icon;
169 caption_button_container_ = caption_button_container; 170 caption_button_container_ = caption_button_container;
170
171 // Window frame image parts.
172 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
173 top_left_corner_ =
174 rb.GetImageNamed(IDR_AURA_WINDOW_HEADER_SHADE_TOP_LEFT).ToImageSkia();
175 top_edge_ =
176 rb.GetImageNamed(IDR_AURA_WINDOW_HEADER_SHADE_TOP).ToImageSkia();
177 top_right_corner_ =
178 rb.GetImageNamed(IDR_AURA_WINDOW_HEADER_SHADE_TOP_RIGHT).ToImageSkia();
179 header_left_edge_ =
180 rb.GetImageNamed(IDR_AURA_WINDOW_HEADER_SHADE_LEFT).ToImageSkia();
181 header_right_edge_ =
182 rb.GetImageNamed(IDR_AURA_WINDOW_HEADER_SHADE_RIGHT).ToImageSkia();
183 } 171 }
184 172
185 // static 173 // static
186 gfx::Rect HeaderPainter::GetBoundsForClientView( 174 gfx::Rect HeaderPainter::GetBoundsForClientView(
187 int header_height, 175 int header_height,
188 const gfx::Rect& window_bounds) { 176 const gfx::Rect& window_bounds) {
189 gfx::Rect client_bounds(window_bounds); 177 gfx::Rect client_bounds(window_bounds);
190 client_bounds.Inset(0, header_height, 0, 0); 178 client_bounds.Inset(0, header_height, 0, 0);
191 return client_bounds; 179 return client_bounds;
192 } 180 }
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
229 217
230 int HeaderPainter::GetRightInset() const { 218 int HeaderPainter::GetRightInset() const {
231 return caption_button_container_->GetPreferredSize().width(); 219 return caption_button_container_->GetPreferredSize().width();
232 } 220 }
233 221
234 int HeaderPainter::GetThemeBackgroundXInset() const { 222 int HeaderPainter::GetThemeBackgroundXInset() const {
235 return kThemeFrameImageInsetX; 223 return kThemeFrameImageInsetX;
236 } 224 }
237 225
238 void HeaderPainter::PaintHeader(gfx::Canvas* canvas, 226 void HeaderPainter::PaintHeader(gfx::Canvas* canvas,
227 Mode mode,
239 int theme_frame_id, 228 int theme_frame_id,
240 int theme_frame_overlay_id) { 229 int theme_frame_overlay_id) {
241 bool initial_paint = (previous_theme_frame_id_ == 0); 230 bool initial_paint = (previous_theme_frame_id_ == 0);
242 if (!initial_paint && 231 if (!initial_paint &&
243 (previous_theme_frame_id_ != theme_frame_id || 232 (previous_theme_frame_id_ != theme_frame_id ||
244 previous_theme_frame_overlay_id_ != theme_frame_overlay_id)) { 233 previous_theme_frame_overlay_id_ != theme_frame_overlay_id)) {
245 aura::Window* parent = frame_->GetNativeWindow()->parent(); 234 aura::Window* parent = frame_->GetNativeWindow()->parent();
246 // Don't animate the header if the parent (a workspace) is already 235 // Don't animate the header if the parent (a workspace) is already
247 // animating. Doing so results in continually painting during the animation 236 // animating. Doing so results in continually painting during the animation
248 // and gives a slower frame rate. 237 // and gives a slower frame rate.
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
314 theme_frame, 303 theme_frame,
315 theme_frame_overlay, 304 theme_frame_overlay,
316 paint, 305 paint,
317 GetHeaderLocalBounds(), 306 GetHeaderLocalBounds(),
318 corner_radius, 307 corner_radius,
319 GetThemeBackgroundXInset()); 308 GetThemeBackgroundXInset());
320 309
321 previous_theme_frame_id_ = theme_frame_id; 310 previous_theme_frame_id_ = theme_frame_id;
322 previous_theme_frame_overlay_id_ = theme_frame_overlay_id; 311 previous_theme_frame_overlay_id_ = theme_frame_overlay_id;
323 312
324 // We don't need the extra lightness in the edges when the window is maximized 313 PaintBorder(canvas, mode);
325 // or fullscreen.
326 if (frame_->IsMaximized() || frame_->IsFullscreen())
327 return;
328
329 // Draw the top corners and edge.
330 int top_left_width = top_left_corner_->width();
331 int top_left_height = top_left_corner_->height();
332 canvas->DrawImageInt(*top_left_corner_,
333 0, 0, top_left_width, top_left_height,
334 0, 0, top_left_width, top_left_height,
335 false);
336 canvas->TileImageInt(*top_edge_,
337 top_left_width,
338 0,
339 header_view_->width() - top_left_width - top_right_corner_->width(),
340 top_edge_->height());
341 int top_right_height = top_right_corner_->height();
342 canvas->DrawImageInt(*top_right_corner_,
343 0, 0,
344 top_right_corner_->width(), top_right_height,
345 header_view_->width() - top_right_corner_->width(), 0,
346 top_right_corner_->width(), top_right_height,
347 false);
348
349 // Header left edge.
350 int header_left_height = theme_frame->height() - top_left_height;
351 canvas->TileImageInt(*header_left_edge_,
352 0, top_left_height,
353 header_left_edge_->width(), header_left_height);
354
355 // Header right edge.
356 int header_right_height = theme_frame->height() - top_right_height;
357 canvas->TileImageInt(*header_right_edge_,
358 header_view_->width() - header_right_edge_->width(),
359 top_right_height,
360 header_right_edge_->width(),
361 header_right_height);
362
363 // We don't draw edges around the content area. Web content goes flush
364 // to the edge of the window.
365 } 314 }
366 315
367 void HeaderPainter::PaintHeaderContentSeparator(gfx::Canvas* canvas) { 316 void HeaderPainter::PaintHeaderContentSeparator(gfx::Canvas* canvas,
317 Mode mode) {
318 DCHECK_EQ(style_, STYLE_OTHER);
319 SkColor color = (mode == MODE_ACTIVE) ?
320 kHeaderContentSeparatorColor :
321 kHeaderContentSeparatorInactiveColor;
368 canvas->FillRect(gfx::Rect(0, 322 canvas->FillRect(gfx::Rect(0,
369 header_height_ - kHeaderContentSeparatorSize, 323 header_height_ - kHeaderContentSeparatorSize,
370 header_view_->width(), 324 header_view_->width(),
371 kHeaderContentSeparatorSize), 325 kHeaderContentSeparatorSize),
372 kHeaderContentSeparatorColor); 326 color);
373 } 327 }
374 328
375 int HeaderPainter::HeaderContentSeparatorSize() const { 329 int HeaderPainter::HeaderContentSeparatorSize() const {
376 return kHeaderContentSeparatorSize; 330 return kHeaderContentSeparatorSize;
377 } 331 }
378 332
379 void HeaderPainter::PaintTitleBar(gfx::Canvas* canvas, 333 void HeaderPainter::PaintTitleBar(gfx::Canvas* canvas,
380 const gfx::FontList& title_font_list) { 334 const gfx::FontList& title_font_list) {
381 // The window icon is painted by its own views::View. 335 // The window icon is painted by its own views::View.
382 views::WidgetDelegate* delegate = frame_->widget_delegate(); 336 views::WidgetDelegate* delegate = frame_->widget_delegate();
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
442 /////////////////////////////////////////////////////////////////////////////// 396 ///////////////////////////////////////////////////////////////////////////////
443 // gfx::AnimationDelegate overrides: 397 // gfx::AnimationDelegate overrides:
444 398
445 void HeaderPainter::AnimationProgressed(const gfx::Animation* animation) { 399 void HeaderPainter::AnimationProgressed(const gfx::Animation* animation) {
446 header_view_->SchedulePaintInRect(GetHeaderLocalBounds()); 400 header_view_->SchedulePaintInRect(GetHeaderLocalBounds());
447 } 401 }
448 402
449 /////////////////////////////////////////////////////////////////////////////// 403 ///////////////////////////////////////////////////////////////////////////////
450 // HeaderPainter, private: 404 // HeaderPainter, private:
451 405
406 void HeaderPainter::PaintBorder(gfx::Canvas* canvas, Mode mode) {
407 if (frame_->IsMaximized() ||
408 frame_->IsFullscreen() ||
409 (style_ == STYLE_OTHER && mode == MODE_ACTIVE)) {
410 return;
411 }
412
413 gfx::ImageSkia top_left_corner;
414 gfx::ImageSkia top_right_corner;
415 gfx::ImageSkia top_edge;
416 gfx::ImageSkia left_edge;
417 gfx::ImageSkia right_edge;
418 gfx::ImageSkia bottom_edge;
419
420 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
421 if (style_ == STYLE_BROWSER) {
422 top_left_corner = *rb.GetImageSkiaNamed(
423 IDR_AURA_BROWSER_WINDOW_HEADER_SHADE_TOP_LEFT);
424 top_right_corner = *rb.GetImageSkiaNamed(
425 IDR_AURA_BROWSER_WINDOW_HEADER_SHADE_TOP_RIGHT);
426 top_edge = *rb.GetImageSkiaNamed(IDR_AURA_BROWSER_WINDOW_HEADER_SHADE_TOP);
427 left_edge = *rb.GetImageSkiaNamed(
428 IDR_AURA_BROWSER_WINDOW_HEADER_SHADE_LEFT);
429 right_edge = *rb.GetImageSkiaNamed(
430 IDR_AURA_BROWSER_WINDOW_HEADER_SHADE_RIGHT);
431 } else {
432 top_edge = *rb.GetImageSkiaNamed(
433 IDR_AURA_WINDOW_HEADER_SHADE_INACTIVE_TOP);
434 left_edge = *rb.GetImageSkiaNamed(
435 IDR_AURA_WINDOW_HEADER_SHADE_INACTIVE_LEFT);
436 right_edge = *rb.GetImageSkiaNamed(
437 IDR_AURA_WINDOW_HEADER_SHADE_INACTIVE_RIGHT);
438 bottom_edge = *rb.GetImageSkiaNamed(
439 IDR_AURA_WINDOW_HEADER_SHADE_INACTIVE_BOTTOM);
440 }
441
442 int top_left_width = top_left_corner.width();
443 int top_left_height = top_left_corner.height();
444 if (!top_left_corner.isNull()) {
445 canvas->DrawImageInt(top_left_corner,
446 0, 0, top_left_width, top_left_height,
447 0, 0, top_left_width, top_left_height,
448 false);
449 }
450
451 int top_right_height = top_right_corner.height();
452 if (!top_right_corner.isNull()) {
453 canvas->DrawImageInt(top_right_corner,
454 0, 0,
455 top_right_corner.width(), top_right_height,
456 header_view_->width() - top_right_corner.width(), 0,
457 top_right_corner.width(), top_right_height,
458 false);
459 }
460
461 if (!top_edge.isNull()) {
James Cook 2014/02/03 18:46:35 There's always a top_edge, right?
462 canvas->TileImageInt(top_edge,
463 top_left_width,
464 0,
465 header_view_->width() - top_left_width - top_right_corner.width(),
466 top_edge.height());
467 }
468
469 int bottom_height = bottom_edge.height();
470 if (!bottom_edge.isNull()) {
471 canvas->TileImageInt(bottom_edge,
472 0, header_height_ - bottom_height,
473 header_view_->width(), bottom_edge.height());
474 }
475
476 int left_edge_height = header_height_ - top_left_height - bottom_height;
477 if (!left_edge.isNull()) {
James Cook 2014/02/03 18:46:35 ditto
478 canvas->TileImageInt(left_edge,
479 0, top_left_height,
480 left_edge.width(), left_edge_height);
481 }
482
483 int right_edge_height = header_height_ - top_right_height - bottom_height;
484 if (!right_edge.isNull()) {
James Cook 2014/02/03 18:46:35 ditto
485 canvas->TileImageInt(right_edge,
486 header_view_->width() - right_edge.width(),
487 top_right_height,
488 right_edge.width(),
489 right_edge_height);
490 }
491 }
492
452 void HeaderPainter::UpdateCaptionButtonImages() { 493 void HeaderPainter::UpdateCaptionButtonImages() {
453 if (frame_->IsMaximized() || frame_->IsFullscreen()) { 494 if (style_ == STYLE_BROWSER) {
495 if (frame_->IsMaximized() || frame_->IsFullscreen()) {
496 caption_button_container_->SetButtonImages(
497 CAPTION_BUTTON_ICON_MINIMIZE,
498 IDR_AURA_BROWSER_WINDOW_CONTROL_ICON_MAXIMIZED_MINIMIZE,
499 IDR_AURA_BROWSER_WINDOW_CONTROL_ICON_MAXIMIZED_MINIMIZE,
500 IDR_AURA_BROWSER_WINDOW_CONTROL_BACKGROUND_MAXIMIZED_H,
501 IDR_AURA_BROWSER_WINDOW_CONTROL_BACKGROUND_MAXIMIZED_P);
502 caption_button_container_->SetButtonImages(
503 CAPTION_BUTTON_ICON_MAXIMIZE_RESTORE,
504 IDR_AURA_BROWSER_WINDOW_CONTROL_ICON_MAXIMIZED_SIZE,
505 IDR_AURA_BROWSER_WINDOW_CONTROL_ICON_MAXIMIZED_SIZE,
506 IDR_AURA_BROWSER_WINDOW_CONTROL_BACKGROUND_MAXIMIZED_H,
507 IDR_AURA_BROWSER_WINDOW_CONTROL_BACKGROUND_MAXIMIZED_P);
508 caption_button_container_->SetButtonImages(
509 CAPTION_BUTTON_ICON_CLOSE,
510 IDR_AURA_BROWSER_WINDOW_CONTROL_ICON_MAXIMIZED_CLOSE,
511 IDR_AURA_BROWSER_WINDOW_CONTROL_ICON_MAXIMIZED_CLOSE,
512 IDR_AURA_BROWSER_WINDOW_CONTROL_BACKGROUND_MAXIMIZED_H,
513 IDR_AURA_BROWSER_WINDOW_CONTROL_BACKGROUND_MAXIMIZED_P);
514 caption_button_container_->SetButtonImages(
515 CAPTION_BUTTON_ICON_LEFT_SNAPPED,
516 IDR_AURA_BROWSER_WINDOW_CONTROL_ICON_MAXIMIZED_LEFT_SNAPPED,
517 IDR_AURA_BROWSER_WINDOW_CONTROL_ICON_MAXIMIZED_LEFT_SNAPPED,
518 IDR_AURA_BROWSER_WINDOW_CONTROL_BACKGROUND_MAXIMIZED_H,
519 IDR_AURA_BROWSER_WINDOW_CONTROL_BACKGROUND_MAXIMIZED_P);
520 caption_button_container_->SetButtonImages(
521 CAPTION_BUTTON_ICON_RIGHT_SNAPPED,
522 IDR_AURA_BROWSER_WINDOW_CONTROL_ICON_MAXIMIZED_RIGHT_SNAPPED,
523 IDR_AURA_BROWSER_WINDOW_CONTROL_ICON_MAXIMIZED_RIGHT_SNAPPED,
524 IDR_AURA_BROWSER_WINDOW_CONTROL_BACKGROUND_MAXIMIZED_H,
525 IDR_AURA_BROWSER_WINDOW_CONTROL_BACKGROUND_MAXIMIZED_P);
526 } else {
527 caption_button_container_->SetButtonImages(
528 CAPTION_BUTTON_ICON_MINIMIZE,
529 IDR_AURA_BROWSER_WINDOW_CONTROL_ICON_RESTORED_MINIMIZE,
530 IDR_AURA_BROWSER_WINDOW_CONTROL_ICON_RESTORED_MINIMIZE,
531 IDR_AURA_BROWSER_WINDOW_CONTROL_BACKGROUND_RESTORED_H,
532 IDR_AURA_BROWSER_WINDOW_CONTROL_BACKGROUND_RESTORED_P);
533 caption_button_container_->SetButtonImages(
534 CAPTION_BUTTON_ICON_MAXIMIZE_RESTORE,
535 IDR_AURA_BROWSER_WINDOW_CONTROL_ICON_RESTORED_SIZE,
536 IDR_AURA_BROWSER_WINDOW_CONTROL_ICON_RESTORED_SIZE,
537 IDR_AURA_BROWSER_WINDOW_CONTROL_BACKGROUND_RESTORED_H,
538 IDR_AURA_BROWSER_WINDOW_CONTROL_BACKGROUND_RESTORED_P);
539 caption_button_container_->SetButtonImages(
540 CAPTION_BUTTON_ICON_CLOSE,
541 IDR_AURA_BROWSER_WINDOW_CONTROL_ICON_RESTORED_CLOSE,
542 IDR_AURA_BROWSER_WINDOW_CONTROL_ICON_RESTORED_CLOSE,
543 IDR_AURA_BROWSER_WINDOW_CONTROL_BACKGROUND_RESTORED_H,
544 IDR_AURA_BROWSER_WINDOW_CONTROL_BACKGROUND_RESTORED_P);
545 caption_button_container_->SetButtonImages(
546 CAPTION_BUTTON_ICON_LEFT_SNAPPED,
547 IDR_AURA_BROWSER_WINDOW_CONTROL_ICON_RESTORED_LEFT_SNAPPED,
548 IDR_AURA_BROWSER_WINDOW_CONTROL_ICON_RESTORED_LEFT_SNAPPED,
549 IDR_AURA_BROWSER_WINDOW_CONTROL_BACKGROUND_RESTORED_H,
550 IDR_AURA_BROWSER_WINDOW_CONTROL_BACKGROUND_RESTORED_P);
551 caption_button_container_->SetButtonImages(
552 CAPTION_BUTTON_ICON_RIGHT_SNAPPED,
553 IDR_AURA_BROWSER_WINDOW_CONTROL_ICON_RESTORED_RIGHT_SNAPPED,
554 IDR_AURA_BROWSER_WINDOW_CONTROL_ICON_RESTORED_RIGHT_SNAPPED,
555 IDR_AURA_BROWSER_WINDOW_CONTROL_BACKGROUND_RESTORED_H,
556 IDR_AURA_BROWSER_WINDOW_CONTROL_BACKGROUND_RESTORED_P);
557 }
558 } else {
559 caption_button_container_->SetButtonImages(
560 CAPTION_BUTTON_ICON_MINIMIZE,
561 IDR_AURA_WINDOW_CONTROL_ICON_MINIMIZE,
562 IDR_AURA_WINDOW_CONTROL_ICON_MINIMIZE_I,
563 IDR_AURA_WINDOW_CONTROL_BACKGROUND_H,
564 IDR_AURA_WINDOW_CONTROL_BACKGROUND_P);
454 caption_button_container_->SetButtonImages( 565 caption_button_container_->SetButtonImages(
455 CAPTION_BUTTON_ICON_MAXIMIZE_RESTORE, 566 CAPTION_BUTTON_ICON_MAXIMIZE_RESTORE,
456 IDR_AURA_WINDOW_MAXIMIZED_RESTORE2, 567 IDR_AURA_WINDOW_CONTROL_ICON_SIZE,
457 IDR_AURA_WINDOW_MAXIMIZED_RESTORE2_H, 568 IDR_AURA_WINDOW_CONTROL_ICON_SIZE_I,
458 IDR_AURA_WINDOW_MAXIMIZED_RESTORE2_P); 569 IDR_AURA_WINDOW_CONTROL_BACKGROUND_H,
570 IDR_AURA_WINDOW_CONTROL_BACKGROUND_P);
459 caption_button_container_->SetButtonImages( 571 caption_button_container_->SetButtonImages(
460 CAPTION_BUTTON_ICON_CLOSE, 572 CAPTION_BUTTON_ICON_CLOSE,
461 IDR_AURA_WINDOW_MAXIMIZED_CLOSE2, 573 IDR_AURA_WINDOW_CONTROL_ICON_CLOSE,
462 IDR_AURA_WINDOW_MAXIMIZED_CLOSE2_H, 574 IDR_AURA_WINDOW_CONTROL_ICON_CLOSE_I,
463 IDR_AURA_WINDOW_MAXIMIZED_CLOSE2_P); 575 IDR_AURA_WINDOW_CONTROL_BACKGROUND_H,
576 IDR_AURA_WINDOW_CONTROL_BACKGROUND_P);
577
578 // There is no dedicated icon for the snap-left and snap-right buttons
579 // when |frame_| is inactive because they should never be visible while
580 // |frame_| is inactive.
464 caption_button_container_->SetButtonImages( 581 caption_button_container_->SetButtonImages(
465 CAPTION_BUTTON_ICON_LEFT_SNAPPED, 582 CAPTION_BUTTON_ICON_LEFT_SNAPPED,
466 IDR_AURA_WINDOW_MAXIMIZED_RESTORE2, 583 IDR_AURA_WINDOW_CONTROL_ICON_LEFT_SNAPPED,
467 IDR_AURA_WINDOW_MAXIMIZED_RESTORE2_H, 584 IDR_AURA_WINDOW_CONTROL_ICON_LEFT_SNAPPED,
468 IDR_AURA_WINDOW_MAXIMIZED_RESTORE2_P); 585 IDR_AURA_WINDOW_CONTROL_BACKGROUND_H,
586 IDR_AURA_WINDOW_CONTROL_BACKGROUND_P);
469 caption_button_container_->SetButtonImages( 587 caption_button_container_->SetButtonImages(
470 CAPTION_BUTTON_ICON_RIGHT_SNAPPED, 588 CAPTION_BUTTON_ICON_RIGHT_SNAPPED,
471 IDR_AURA_WINDOW_MAXIMIZED_RESTORE2, 589 IDR_AURA_WINDOW_CONTROL_ICON_RIGHT_SNAPPED,
472 IDR_AURA_WINDOW_MAXIMIZED_RESTORE2_H, 590 IDR_AURA_WINDOW_CONTROL_ICON_RIGHT_SNAPPED,
473 IDR_AURA_WINDOW_MAXIMIZED_RESTORE2_P); 591 IDR_AURA_WINDOW_CONTROL_BACKGROUND_H,
474 } else if (style_ == STYLE_BROWSER) { 592 IDR_AURA_WINDOW_CONTROL_BACKGROUND_P);
475 caption_button_container_->SetButtonImages(
476 CAPTION_BUTTON_ICON_MAXIMIZE_RESTORE,
477 IDR_AURA_WINDOW_MAXIMIZE,
478 IDR_AURA_WINDOW_MAXIMIZE_H,
479 IDR_AURA_WINDOW_MAXIMIZE_P);
480 caption_button_container_->SetButtonImages(
481 CAPTION_BUTTON_ICON_CLOSE,
482 IDR_AURA_WINDOW_CLOSE,
483 IDR_AURA_WINDOW_CLOSE_H,
484 IDR_AURA_WINDOW_CLOSE_P);
485 caption_button_container_->SetButtonImages(
486 CAPTION_BUTTON_ICON_LEFT_SNAPPED,
487 IDR_AURA_WINDOW_MAXIMIZE,
488 IDR_AURA_WINDOW_MAXIMIZE_H,
489 IDR_AURA_WINDOW_MAXIMIZE_P);
490 caption_button_container_->SetButtonImages(
491 CAPTION_BUTTON_ICON_RIGHT_SNAPPED,
492 IDR_AURA_WINDOW_MAXIMIZE,
493 IDR_AURA_WINDOW_MAXIMIZE_H,
494 IDR_AURA_WINDOW_MAXIMIZE_P);
495 } else {
496 caption_button_container_->SetButtonImages(
497 CAPTION_BUTTON_ICON_MAXIMIZE_RESTORE,
498 IDR_AURA_WINDOW_MAXIMIZED_RESTORE,
499 IDR_AURA_WINDOW_MAXIMIZED_RESTORE_H,
500 IDR_AURA_WINDOW_MAXIMIZED_RESTORE_P);
501 caption_button_container_->SetButtonImages(
502 CAPTION_BUTTON_ICON_CLOSE,
503 IDR_AURA_WINDOW_MAXIMIZED_CLOSE,
504 IDR_AURA_WINDOW_MAXIMIZED_CLOSE_H,
505 IDR_AURA_WINDOW_MAXIMIZED_CLOSE_P);
506 caption_button_container_->SetButtonImages(
507 CAPTION_BUTTON_ICON_LEFT_SNAPPED,
508 IDR_AURA_WINDOW_MAXIMIZED_RESTORE,
509 IDR_AURA_WINDOW_MAXIMIZED_RESTORE_H,
510 IDR_AURA_WINDOW_MAXIMIZED_RESTORE_P);
511 caption_button_container_->SetButtonImages(
512 CAPTION_BUTTON_ICON_RIGHT_SNAPPED,
513 IDR_AURA_WINDOW_MAXIMIZED_RESTORE,
514 IDR_AURA_WINDOW_MAXIMIZED_RESTORE_H,
515 IDR_AURA_WINDOW_MAXIMIZED_RESTORE_P);
516 } 593 }
517
518 caption_button_container_->SetButtonImages(
519 CAPTION_BUTTON_ICON_MINIMIZE,
520 IDR_AURA_WINDOW_MINIMIZE_SHORT,
521 IDR_AURA_WINDOW_MINIMIZE_SHORT_H,
522 IDR_AURA_WINDOW_MINIMIZE_SHORT_P);
523 } 594 }
524 595
525 gfx::Rect HeaderPainter::GetHeaderLocalBounds() const { 596 gfx::Rect HeaderPainter::GetHeaderLocalBounds() const {
526 return gfx::Rect(header_view_->width(), header_height_); 597 return gfx::Rect(header_view_->width(), header_height_);
527 } 598 }
528 599
529 int HeaderPainter::GetTitleOffsetX() const { 600 int HeaderPainter::GetTitleOffsetX() const {
530 return window_icon_ ? 601 return window_icon_ ?
531 window_icon_->bounds().right() + kTitleIconOffsetX : 602 window_icon_->bounds().right() + kTitleIconOffsetX :
532 kTitleNoIconOffsetX; 603 kTitleNoIconOffsetX;
(...skipping 18 matching lines...) Expand all
551 int title_y = 622 int title_y =
552 GetCaptionButtonContainerCenterY() - title_font_list.GetHeight() / 2; 623 GetCaptionButtonContainerCenterY() - title_font_list.GetHeight() / 2;
553 return gfx::Rect( 624 return gfx::Rect(
554 title_x, 625 title_x,
555 std::max(0, title_y), 626 std::max(0, title_y),
556 std::max(0, caption_button_container_->x() - kTitleLogoSpacing - title_x), 627 std::max(0, caption_button_container_->x() - kTitleLogoSpacing - title_x),
557 title_font_list.GetHeight()); 628 title_font_list.GetHeight());
558 } 629 }
559 630
560 } // namespace ash 631 } // namespace ash
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698