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

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
« no previous file with comments | « ash/wm/header_painter.h ('k') | ash/wm/panels/panel_frame_view.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_ = rb.GetImageNamed(
174 IDR_AURA_BROWSER_WINDOW_HEADER_SHADE_TOP_LEFT).ToImageSkia();
175 top_edge_ = rb.GetImageNamed(
176 IDR_AURA_BROWSER_WINDOW_HEADER_SHADE_TOP).ToImageSkia();
177 top_right_corner_ = rb.GetImageNamed(
178 IDR_AURA_BROWSER_WINDOW_HEADER_SHADE_TOP_RIGHT).ToImageSkia();
179 header_left_edge_ = rb.GetImageNamed(
180 IDR_AURA_BROWSER_WINDOW_HEADER_SHADE_LEFT).ToImageSkia();
181 header_right_edge_ = rb.GetImageNamed(
182 IDR_AURA_BROWSER_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;
322
368 canvas->FillRect(gfx::Rect(0, 323 canvas->FillRect(gfx::Rect(0,
369 header_height_ - kHeaderContentSeparatorSize, 324 header_height_ - kHeaderContentSeparatorSize,
370 header_view_->width(), 325 header_view_->width(),
371 kHeaderContentSeparatorSize), 326 kHeaderContentSeparatorSize),
372 kHeaderContentSeparatorColor); 327 color);
373 } 328 }
374 329
375 int HeaderPainter::HeaderContentSeparatorSize() const { 330 int HeaderPainter::HeaderContentSeparatorSize() const {
376 return kHeaderContentSeparatorSize; 331 return kHeaderContentSeparatorSize;
377 } 332 }
378 333
379 void HeaderPainter::PaintTitleBar(gfx::Canvas* canvas, 334 void HeaderPainter::PaintTitleBar(gfx::Canvas* canvas,
380 const gfx::FontList& title_font_list) { 335 const gfx::FontList& title_font_list) {
381 // The window icon is painted by its own views::View. 336 // The window icon is painted by its own views::View.
382 views::WidgetDelegate* delegate = frame_->widget_delegate(); 337 views::WidgetDelegate* delegate = frame_->widget_delegate();
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
442 /////////////////////////////////////////////////////////////////////////////// 397 ///////////////////////////////////////////////////////////////////////////////
443 // gfx::AnimationDelegate overrides: 398 // gfx::AnimationDelegate overrides:
444 399
445 void HeaderPainter::AnimationProgressed(const gfx::Animation* animation) { 400 void HeaderPainter::AnimationProgressed(const gfx::Animation* animation) {
446 header_view_->SchedulePaintInRect(GetHeaderLocalBounds()); 401 header_view_->SchedulePaintInRect(GetHeaderLocalBounds());
447 } 402 }
448 403
449 /////////////////////////////////////////////////////////////////////////////// 404 ///////////////////////////////////////////////////////////////////////////////
450 // HeaderPainter, private: 405 // HeaderPainter, private:
451 406
407 void HeaderPainter::PaintBorder(gfx::Canvas* canvas, Mode mode) {
408 if (frame_->IsMaximized() ||
409 frame_->IsFullscreen() ||
410 (style_ == STYLE_OTHER && mode == MODE_ACTIVE)) {
411 return;
412 }
413
414 gfx::ImageSkia top_left_corner;
415 gfx::ImageSkia top_right_corner;
416 gfx::ImageSkia top_edge;
417 gfx::ImageSkia left_edge;
418 gfx::ImageSkia right_edge;
419 gfx::ImageSkia bottom_edge;
420
421 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
422 if (style_ == STYLE_BROWSER) {
423 top_left_corner = *rb.GetImageSkiaNamed(
424 IDR_AURA_BROWSER_WINDOW_HEADER_SHADE_TOP_LEFT);
425 top_right_corner = *rb.GetImageSkiaNamed(
426 IDR_AURA_BROWSER_WINDOW_HEADER_SHADE_TOP_RIGHT);
427 top_edge = *rb.GetImageSkiaNamed(IDR_AURA_BROWSER_WINDOW_HEADER_SHADE_TOP);
428 left_edge = *rb.GetImageSkiaNamed(
429 IDR_AURA_BROWSER_WINDOW_HEADER_SHADE_LEFT);
430 right_edge = *rb.GetImageSkiaNamed(
431 IDR_AURA_BROWSER_WINDOW_HEADER_SHADE_RIGHT);
432 } else {
433 top_edge = *rb.GetImageSkiaNamed(
434 IDR_AURA_WINDOW_HEADER_SHADE_INACTIVE_TOP);
435 left_edge = *rb.GetImageSkiaNamed(
436 IDR_AURA_WINDOW_HEADER_SHADE_INACTIVE_LEFT);
437 right_edge = *rb.GetImageSkiaNamed(
438 IDR_AURA_WINDOW_HEADER_SHADE_INACTIVE_RIGHT);
439 bottom_edge = *rb.GetImageSkiaNamed(
440 IDR_AURA_WINDOW_HEADER_SHADE_INACTIVE_BOTTOM);
441 }
442
443 DCHECK(!top_edge.isNull());
444 DCHECK(!left_edge.isNull());
445 DCHECK(!right_edge.isNull());
446
447 int top_left_width = top_left_corner.width();
448 int top_left_height = top_left_corner.height();
449 if (!top_left_corner.isNull()) {
450 canvas->DrawImageInt(top_left_corner, 0, 0);
451 }
452
453 int top_right_height = top_right_corner.height();
454 if (!top_right_corner.isNull()) {
455 canvas->DrawImageInt(top_right_corner,
456 header_view_->width() - top_right_corner.width(),
457 top_right_height);
458 }
459
460 canvas->TileImageInt(top_edge,
461 top_left_width,
462 0,
463 header_view_->width() - top_left_width - top_right_corner.width(),
464 top_edge.height());
465
466 // TODO(pkotwicz): Compute |bottom| more accurately. The computation is
467 // inaccurate for browser windows.
468 int bottom = header_height_ - kHeaderContentSeparatorSize;
469 int bottom_height = bottom_edge.height();
470 if (!bottom_edge.isNull()) {
471 canvas->TileImageInt(bottom_edge,
472 0, bottom - bottom_height,
473 header_view_->width(), bottom_height);
474 }
475
476 int left_edge_height = bottom - bottom_height - top_left_height;
477 canvas->TileImageInt(left_edge,
478 0, top_left_height,
479 left_edge.width(), left_edge_height);
480
481 int right_edge_height = bottom - bottom_height - top_right_height;
482 canvas->TileImageInt(right_edge,
483 header_view_->width() - right_edge.width(),
484 top_right_height,
485 right_edge.width(),
486 right_edge_height);
487 }
488
452 void HeaderPainter::UpdateCaptionButtonImages() { 489 void HeaderPainter::UpdateCaptionButtonImages() {
453 if (frame_->IsMaximized() || frame_->IsFullscreen()) { 490 if (style_ == STYLE_BROWSER) {
491 if (frame_->IsMaximized() || frame_->IsFullscreen()) {
492 caption_button_container_->SetButtonImages(
493 CAPTION_BUTTON_ICON_MINIMIZE,
494 IDR_AURA_BROWSER_WINDOW_CONTROL_ICON_MAXIMIZED_MINIMIZE,
495 IDR_AURA_BROWSER_WINDOW_CONTROL_ICON_MAXIMIZED_MINIMIZE,
496 IDR_AURA_BROWSER_WINDOW_CONTROL_BACKGROUND_MAXIMIZED_H,
497 IDR_AURA_BROWSER_WINDOW_CONTROL_BACKGROUND_MAXIMIZED_P);
498 caption_button_container_->SetButtonImages(
499 CAPTION_BUTTON_ICON_MAXIMIZE_RESTORE,
500 IDR_AURA_BROWSER_WINDOW_CONTROL_ICON_MAXIMIZED_SIZE,
501 IDR_AURA_BROWSER_WINDOW_CONTROL_ICON_MAXIMIZED_SIZE,
502 IDR_AURA_BROWSER_WINDOW_CONTROL_BACKGROUND_MAXIMIZED_H,
503 IDR_AURA_BROWSER_WINDOW_CONTROL_BACKGROUND_MAXIMIZED_P);
504 caption_button_container_->SetButtonImages(
505 CAPTION_BUTTON_ICON_CLOSE,
506 IDR_AURA_BROWSER_WINDOW_CONTROL_ICON_MAXIMIZED_CLOSE,
507 IDR_AURA_BROWSER_WINDOW_CONTROL_ICON_MAXIMIZED_CLOSE,
508 IDR_AURA_BROWSER_WINDOW_CONTROL_BACKGROUND_MAXIMIZED_H,
509 IDR_AURA_BROWSER_WINDOW_CONTROL_BACKGROUND_MAXIMIZED_P);
510 caption_button_container_->SetButtonImages(
511 CAPTION_BUTTON_ICON_LEFT_SNAPPED,
512 IDR_AURA_BROWSER_WINDOW_CONTROL_ICON_MAXIMIZED_LEFT_SNAPPED,
513 IDR_AURA_BROWSER_WINDOW_CONTROL_ICON_MAXIMIZED_LEFT_SNAPPED,
514 IDR_AURA_BROWSER_WINDOW_CONTROL_BACKGROUND_MAXIMIZED_H,
515 IDR_AURA_BROWSER_WINDOW_CONTROL_BACKGROUND_MAXIMIZED_P);
516 caption_button_container_->SetButtonImages(
517 CAPTION_BUTTON_ICON_RIGHT_SNAPPED,
518 IDR_AURA_BROWSER_WINDOW_CONTROL_ICON_MAXIMIZED_RIGHT_SNAPPED,
519 IDR_AURA_BROWSER_WINDOW_CONTROL_ICON_MAXIMIZED_RIGHT_SNAPPED,
520 IDR_AURA_BROWSER_WINDOW_CONTROL_BACKGROUND_MAXIMIZED_H,
521 IDR_AURA_BROWSER_WINDOW_CONTROL_BACKGROUND_MAXIMIZED_P);
522 } else {
523 caption_button_container_->SetButtonImages(
524 CAPTION_BUTTON_ICON_MINIMIZE,
525 IDR_AURA_BROWSER_WINDOW_CONTROL_ICON_RESTORED_MINIMIZE,
526 IDR_AURA_BROWSER_WINDOW_CONTROL_ICON_RESTORED_MINIMIZE,
527 IDR_AURA_BROWSER_WINDOW_CONTROL_BACKGROUND_RESTORED_H,
528 IDR_AURA_BROWSER_WINDOW_CONTROL_BACKGROUND_RESTORED_P);
529 caption_button_container_->SetButtonImages(
530 CAPTION_BUTTON_ICON_MAXIMIZE_RESTORE,
531 IDR_AURA_BROWSER_WINDOW_CONTROL_ICON_RESTORED_SIZE,
532 IDR_AURA_BROWSER_WINDOW_CONTROL_ICON_RESTORED_SIZE,
533 IDR_AURA_BROWSER_WINDOW_CONTROL_BACKGROUND_RESTORED_H,
534 IDR_AURA_BROWSER_WINDOW_CONTROL_BACKGROUND_RESTORED_P);
535 caption_button_container_->SetButtonImages(
536 CAPTION_BUTTON_ICON_CLOSE,
537 IDR_AURA_BROWSER_WINDOW_CONTROL_ICON_RESTORED_CLOSE,
538 IDR_AURA_BROWSER_WINDOW_CONTROL_ICON_RESTORED_CLOSE,
539 IDR_AURA_BROWSER_WINDOW_CONTROL_BACKGROUND_RESTORED_H,
540 IDR_AURA_BROWSER_WINDOW_CONTROL_BACKGROUND_RESTORED_P);
541 caption_button_container_->SetButtonImages(
542 CAPTION_BUTTON_ICON_LEFT_SNAPPED,
543 IDR_AURA_BROWSER_WINDOW_CONTROL_ICON_RESTORED_LEFT_SNAPPED,
544 IDR_AURA_BROWSER_WINDOW_CONTROL_ICON_RESTORED_LEFT_SNAPPED,
545 IDR_AURA_BROWSER_WINDOW_CONTROL_BACKGROUND_RESTORED_H,
546 IDR_AURA_BROWSER_WINDOW_CONTROL_BACKGROUND_RESTORED_P);
547 caption_button_container_->SetButtonImages(
548 CAPTION_BUTTON_ICON_RIGHT_SNAPPED,
549 IDR_AURA_BROWSER_WINDOW_CONTROL_ICON_RESTORED_RIGHT_SNAPPED,
550 IDR_AURA_BROWSER_WINDOW_CONTROL_ICON_RESTORED_RIGHT_SNAPPED,
551 IDR_AURA_BROWSER_WINDOW_CONTROL_BACKGROUND_RESTORED_H,
552 IDR_AURA_BROWSER_WINDOW_CONTROL_BACKGROUND_RESTORED_P);
553 }
554 } else {
555 caption_button_container_->SetButtonImages(
556 CAPTION_BUTTON_ICON_MINIMIZE,
557 IDR_AURA_WINDOW_CONTROL_ICON_MINIMIZE,
558 IDR_AURA_WINDOW_CONTROL_ICON_MINIMIZE_I,
559 IDR_AURA_WINDOW_CONTROL_BACKGROUND_H,
560 IDR_AURA_WINDOW_CONTROL_BACKGROUND_P);
454 caption_button_container_->SetButtonImages( 561 caption_button_container_->SetButtonImages(
455 CAPTION_BUTTON_ICON_MAXIMIZE_RESTORE, 562 CAPTION_BUTTON_ICON_MAXIMIZE_RESTORE,
456 IDR_AURA_WINDOW_MAXIMIZED_RESTORE2, 563 IDR_AURA_WINDOW_CONTROL_ICON_SIZE,
457 IDR_AURA_WINDOW_MAXIMIZED_RESTORE2_H, 564 IDR_AURA_WINDOW_CONTROL_ICON_SIZE_I,
458 IDR_AURA_WINDOW_MAXIMIZED_RESTORE2_P); 565 IDR_AURA_WINDOW_CONTROL_BACKGROUND_H,
566 IDR_AURA_WINDOW_CONTROL_BACKGROUND_P);
459 caption_button_container_->SetButtonImages( 567 caption_button_container_->SetButtonImages(
460 CAPTION_BUTTON_ICON_CLOSE, 568 CAPTION_BUTTON_ICON_CLOSE,
461 IDR_AURA_WINDOW_MAXIMIZED_CLOSE2, 569 IDR_AURA_WINDOW_CONTROL_ICON_CLOSE,
462 IDR_AURA_WINDOW_MAXIMIZED_CLOSE2_H, 570 IDR_AURA_WINDOW_CONTROL_ICON_CLOSE_I,
463 IDR_AURA_WINDOW_MAXIMIZED_CLOSE2_P); 571 IDR_AURA_WINDOW_CONTROL_BACKGROUND_H,
572 IDR_AURA_WINDOW_CONTROL_BACKGROUND_P);
573
574 // There is no dedicated icon for the snap-left and snap-right buttons
575 // when |frame_| is inactive because they should never be visible while
576 // |frame_| is inactive.
464 caption_button_container_->SetButtonImages( 577 caption_button_container_->SetButtonImages(
465 CAPTION_BUTTON_ICON_LEFT_SNAPPED, 578 CAPTION_BUTTON_ICON_LEFT_SNAPPED,
466 IDR_AURA_WINDOW_MAXIMIZED_RESTORE2, 579 IDR_AURA_WINDOW_CONTROL_ICON_LEFT_SNAPPED,
467 IDR_AURA_WINDOW_MAXIMIZED_RESTORE2_H, 580 IDR_AURA_WINDOW_CONTROL_ICON_LEFT_SNAPPED,
468 IDR_AURA_WINDOW_MAXIMIZED_RESTORE2_P); 581 IDR_AURA_WINDOW_CONTROL_BACKGROUND_H,
582 IDR_AURA_WINDOW_CONTROL_BACKGROUND_P);
469 caption_button_container_->SetButtonImages( 583 caption_button_container_->SetButtonImages(
470 CAPTION_BUTTON_ICON_RIGHT_SNAPPED, 584 CAPTION_BUTTON_ICON_RIGHT_SNAPPED,
471 IDR_AURA_WINDOW_MAXIMIZED_RESTORE2, 585 IDR_AURA_WINDOW_CONTROL_ICON_RIGHT_SNAPPED,
472 IDR_AURA_WINDOW_MAXIMIZED_RESTORE2_H, 586 IDR_AURA_WINDOW_CONTROL_ICON_RIGHT_SNAPPED,
473 IDR_AURA_WINDOW_MAXIMIZED_RESTORE2_P); 587 IDR_AURA_WINDOW_CONTROL_BACKGROUND_H,
474 } else if (style_ == STYLE_BROWSER) { 588 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 } 589 }
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 } 590 }
524 591
525 gfx::Rect HeaderPainter::GetHeaderLocalBounds() const { 592 gfx::Rect HeaderPainter::GetHeaderLocalBounds() const {
526 return gfx::Rect(header_view_->width(), header_height_); 593 return gfx::Rect(header_view_->width(), header_height_);
527 } 594 }
528 595
529 int HeaderPainter::GetTitleOffsetX() const { 596 int HeaderPainter::GetTitleOffsetX() const {
530 return window_icon_ ? 597 return window_icon_ ?
531 window_icon_->bounds().right() + kTitleIconOffsetX : 598 window_icon_->bounds().right() + kTitleIconOffsetX :
532 kTitleNoIconOffsetX; 599 kTitleNoIconOffsetX;
(...skipping 18 matching lines...) Expand all
551 int title_y = 618 int title_y =
552 GetCaptionButtonContainerCenterY() - title_font_list.GetHeight() / 2; 619 GetCaptionButtonContainerCenterY() - title_font_list.GetHeight() / 2;
553 return gfx::Rect( 620 return gfx::Rect(
554 title_x, 621 title_x,
555 std::max(0, title_y), 622 std::max(0, title_y),
556 std::max(0, caption_button_container_->x() - kTitleLogoSpacing - title_x), 623 std::max(0, caption_button_container_->x() - kTitleLogoSpacing - title_x),
557 title_font_list.GetHeight()); 624 title_font_list.GetHeight());
558 } 625 }
559 626
560 } // namespace ash 627 } // namespace ash
OLDNEW
« no previous file with comments | « ash/wm/header_painter.h ('k') | ash/wm/panels/panel_frame_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698