| 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 "ui/views/window/custom_frame_view.h" | 5 #include "ui/views/window/custom_frame_view.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "base/strings/utf_string_conversions.h" | 9 #include "base/strings/utf_string_conversions.h" |
| 10 #include "grit/ui_resources.h" | 10 #include "grit/ui_resources.h" |
| (...skipping 370 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 381 SK_ColorWHITE, GetMirroredXForRect(title_bounds_), | 381 SK_ColorWHITE, GetMirroredXForRect(title_bounds_), |
| 382 title_bounds_.y(), title_bounds_.width(), | 382 title_bounds_.y(), title_bounds_.width(), |
| 383 title_bounds_.height()); | 383 title_bounds_.height()); |
| 384 } | 384 } |
| 385 | 385 |
| 386 void CustomFrameView::PaintRestoredClientEdge(gfx::Canvas* canvas) { | 386 void CustomFrameView::PaintRestoredClientEdge(gfx::Canvas* canvas) { |
| 387 gfx::Rect client_area_bounds = frame_->client_view()->bounds(); | 387 gfx::Rect client_area_bounds = frame_->client_view()->bounds(); |
| 388 int client_area_top = client_area_bounds.y(); | 388 int client_area_top = client_area_bounds.y(); |
| 389 | 389 |
| 390 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); | 390 ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance(); |
| 391 const gfx::ImageSkia* top_left = rb.GetImageNamed( | |
| 392 IDR_APP_TOP_LEFT).ToImageSkia(); | |
| 393 const gfx::ImageSkia* top = rb.GetImageNamed( | |
| 394 IDR_APP_TOP_CENTER).ToImageSkia(); | |
| 395 const gfx::ImageSkia* top_right = rb.GetImageNamed( | |
| 396 IDR_APP_TOP_RIGHT).ToImageSkia(); | |
| 397 const gfx::ImageSkia* right = rb.GetImageNamed( | |
| 398 IDR_CONTENT_RIGHT_SIDE).ToImageSkia(); | |
| 399 const gfx::ImageSkia* bottom_right = rb.GetImageNamed( | |
| 400 IDR_CONTENT_BOTTOM_RIGHT_CORNER).ToImageSkia(); | |
| 401 const gfx::ImageSkia* bottom = rb.GetImageNamed( | |
| 402 IDR_CONTENT_BOTTOM_CENTER).ToImageSkia(); | |
| 403 const gfx::ImageSkia* bottom_left = rb.GetImageNamed( | |
| 404 IDR_CONTENT_BOTTOM_LEFT_CORNER).ToImageSkia(); | |
| 405 const gfx::ImageSkia* left = rb.GetImageNamed( | |
| 406 IDR_CONTENT_LEFT_SIDE).ToImageSkia(); | |
| 407 | 391 |
| 408 // Top. | 392 // Top: left, center, right sides. |
| 409 int top_edge_y = client_area_top - top->height(); | 393 const gfx::ImageSkia* top_left = rb.GetImageSkiaNamed(IDR_APP_TOP_LEFT); |
| 410 canvas->DrawImageInt(*top_left, client_area_bounds.x() - top_left->width(), | 394 const gfx::ImageSkia* top_center = rb.GetImageSkiaNamed(IDR_APP_TOP_CENTER); |
| 395 const gfx::ImageSkia* top_right = rb.GetImageSkiaNamed(IDR_APP_TOP_RIGHT); |
| 396 int top_edge_y = client_area_top - top_center->height(); |
| 397 canvas->DrawImageInt(*top_left, |
| 398 client_area_bounds.x() - top_left->width(), |
| 411 top_edge_y); | 399 top_edge_y); |
| 412 canvas->TileImageInt(*top, client_area_bounds.x(), top_edge_y, | 400 canvas->TileImageInt(*top_center, |
| 413 client_area_bounds.width(), top->height()); | 401 client_area_bounds.x(), |
| 402 top_edge_y, |
| 403 client_area_bounds.width(), |
| 404 top_center->height()); |
| 414 canvas->DrawImageInt(*top_right, client_area_bounds.right(), top_edge_y); | 405 canvas->DrawImageInt(*top_right, client_area_bounds.right(), top_edge_y); |
| 415 | 406 |
| 416 // Right. | 407 // Right side. |
| 408 const gfx::ImageSkia* right = rb.GetImageSkiaNamed(IDR_CONTENT_RIGHT_SIDE); |
| 417 int client_area_bottom = | 409 int client_area_bottom = |
| 418 std::max(client_area_top, client_area_bounds.bottom()); | 410 std::max(client_area_top, client_area_bounds.bottom()); |
| 419 int client_area_height = client_area_bottom - client_area_top; | 411 int client_area_height = client_area_bottom - client_area_top; |
| 420 canvas->TileImageInt(*right, client_area_bounds.right(), client_area_top, | 412 canvas->TileImageInt(*right, |
| 421 right->width(), client_area_height); | 413 client_area_bounds.right(), |
| 414 client_area_top, |
| 415 right->width(), |
| 416 client_area_height); |
| 422 | 417 |
| 423 // Bottom. | 418 // Bottom: left, center, right sides. |
| 424 canvas->DrawImageInt(*bottom_right, client_area_bounds.right(), | 419 const gfx::ImageSkia* bottom_left = |
| 420 rb.GetImageSkiaNamed(IDR_CONTENT_BOTTOM_LEFT_CORNER); |
| 421 const gfx::ImageSkia* bottom_center = |
| 422 rb.GetImageSkiaNamed(IDR_CONTENT_BOTTOM_CENTER); |
| 423 const gfx::ImageSkia* bottom_right = |
| 424 rb.GetImageSkiaNamed(IDR_CONTENT_BOTTOM_RIGHT_CORNER); |
| 425 |
| 426 canvas->DrawImageInt(*bottom_left, |
| 427 client_area_bounds.x() - bottom_left->width(), |
| 425 client_area_bottom); | 428 client_area_bottom); |
| 426 canvas->TileImageInt(*bottom, client_area_bounds.x(), client_area_bottom, | |
| 427 client_area_bounds.width(), bottom_right->height()); | |
| 428 canvas->DrawImageInt(*bottom_left, | |
| 429 client_area_bounds.x() - bottom_left->width(), client_area_bottom); | |
| 430 | 429 |
| 431 // Left. | 430 canvas->TileImageInt(*bottom_center, |
| 432 canvas->TileImageInt(*left, client_area_bounds.x() - left->width(), | 431 client_area_bounds.x(), |
| 433 client_area_top, left->width(), client_area_height); | 432 client_area_bottom, |
| 433 client_area_bounds.width(), |
| 434 bottom_right->height()); |
| 435 |
| 436 canvas->DrawImageInt(*bottom_right, |
| 437 client_area_bounds.right(), |
| 438 client_area_bottom); |
| 439 // Left side. |
| 440 const gfx::ImageSkia* left = rb.GetImageSkiaNamed(IDR_CONTENT_LEFT_SIDE); |
| 441 canvas->TileImageInt(*left, |
| 442 client_area_bounds.x() - left->width(), |
| 443 client_area_top, |
| 444 left->width(), |
| 445 client_area_height); |
| 434 | 446 |
| 435 // Draw the color to fill in the edges. | 447 // Draw the color to fill in the edges. |
| 436 canvas->FillRect(gfx::Rect(client_area_bounds.x() - 1, client_area_top - 1, | 448 canvas->FillRect(gfx::Rect(client_area_bounds.x() - 1, |
| 437 client_area_bounds.width() + 1, client_area_bottom - client_area_top + 1), | 449 client_area_top - 1, |
| 438 kClientEdgeColor); | 450 client_area_bounds.width() + 1, |
| 451 client_area_bottom - client_area_top + 1), |
| 452 kClientEdgeColor); |
| 439 } | 453 } |
| 440 | 454 |
| 441 SkColor CustomFrameView::GetFrameColor() const { | 455 SkColor CustomFrameView::GetFrameColor() const { |
| 442 return frame_->IsActive() ? kDefaultColorFrame : kDefaultColorFrameInactive; | 456 return frame_->IsActive() ? kDefaultColorFrame : kDefaultColorFrameInactive; |
| 443 } | 457 } |
| 444 | 458 |
| 445 const gfx::ImageSkia* CustomFrameView::GetFrameImage() const { | 459 const gfx::ImageSkia* CustomFrameView::GetFrameImage() const { |
| 446 return ui::ResourceBundle::GetSharedInstance().GetImageNamed( | 460 return ui::ResourceBundle::GetSharedInstance().GetImageNamed( |
| 447 frame_->IsActive() ? IDR_FRAME : IDR_FRAME_INACTIVE).ToImageSkia(); | 461 frame_->IsActive() ? IDR_FRAME : IDR_FRAME_INACTIVE).ToImageSkia(); |
| 448 } | 462 } |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 557 rb.GetImageNamed(normal_image_id).ToImageSkia()); | 571 rb.GetImageNamed(normal_image_id).ToImageSkia()); |
| 558 button->SetImage(CustomButton::STATE_HOVERED, | 572 button->SetImage(CustomButton::STATE_HOVERED, |
| 559 rb.GetImageNamed(hot_image_id).ToImageSkia()); | 573 rb.GetImageNamed(hot_image_id).ToImageSkia()); |
| 560 button->SetImage(CustomButton::STATE_PRESSED, | 574 button->SetImage(CustomButton::STATE_PRESSED, |
| 561 rb.GetImageNamed(pushed_image_id).ToImageSkia()); | 575 rb.GetImageNamed(pushed_image_id).ToImageSkia()); |
| 562 AddChildView(button); | 576 AddChildView(button); |
| 563 return button; | 577 return button; |
| 564 } | 578 } |
| 565 | 579 |
| 566 } // namespace views | 580 } // namespace views |
| OLD | NEW |