OLD | NEW |
---|---|
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 Loading... | |
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 |
OLD | NEW |