Chromium Code Reviews| 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/message_center/views/notification_view.h" | 5 #include "ui/message_center/views/notification_view.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/strings/string_util.h" | 8 #include "base/strings/string_util.h" |
| 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 27 matching lines...) Expand all Loading... | |
| 38 const int kTextLeftPadding = kIconSize + message_center::kIconToTextPadding; | 38 const int kTextLeftPadding = kIconSize + message_center::kIconToTextPadding; |
| 39 const int kTextBottomPadding = 12; | 39 const int kTextBottomPadding = 12; |
| 40 const int kTextRightPadding = 23; | 40 const int kTextRightPadding = 23; |
| 41 const int kItemTitleToMessagePadding = 3; | 41 const int kItemTitleToMessagePadding = 3; |
| 42 const int kProgressBarWidth = message_center::kNotificationWidth - | 42 const int kProgressBarWidth = message_center::kNotificationWidth - |
| 43 kTextLeftPadding - kTextRightPadding; | 43 kTextLeftPadding - kTextRightPadding; |
| 44 const int kProgressBarBottomPadding = 0; | 44 const int kProgressBarBottomPadding = 0; |
| 45 const int kButtonVecticalPadding = 0; | 45 const int kButtonVecticalPadding = 0; |
| 46 const int kButtonTitleTopPadding = 0; | 46 const int kButtonTitleTopPadding = 0; |
| 47 | 47 |
| 48 // Character limits: Displayed text will be subject to the line limits above, | 48 // Character limits: Displayed text will be subject to the ine limits above, |
|
jianli
2013/08/28 21:30:54
ine?
dewittj
2013/08/29 17:40:10
Done.
| |
| 49 // but we also remove trailing characters from text to reduce processing cost. | 49 // but we also remove trailing characters from text to reduce processing cost. |
| 50 // Character limit = pixels per line * line limit / min. pixels per character. | 50 // Character limit = pixels per line * line limit / min. pixels per character. |
| 51 const size_t kTitleCharacterLimit = | 51 const size_t kTitleCharacterLimit = |
| 52 message_center::kNotificationWidth * message_center::kTitleLineLimit / 4; | 52 message_center::kNotificationWidth * message_center::kTitleLineLimit / 4; |
| 53 const size_t kMessageCharacterLimit = | 53 const size_t kMessageCharacterLimit = |
| 54 message_center::kNotificationWidth * | 54 message_center::kNotificationWidth * |
| 55 message_center::kMessageExpandedLineLimit / 3; | 55 message_center::kMessageExpandedLineLimit / 3; |
| 56 const size_t kContextMessageCharacterLimit = | |
| 57 message_center::kNotificationWidth * | |
| 58 message_center::kContextMessageLineLimit / 3; | |
| 56 | 59 |
| 57 // Notification colors. The text background colors below are used only to keep | 60 // Notification colors. The text background colors below are used only to keep |
| 58 // view::Label from modifying the text color and will not actually be drawn. | 61 // view::Label from modifying the text color and will not actually be drawn. |
| 59 // See view::Label's RecalculateColors() for details. | 62 // See view::Label's RecalculateColors() for details. |
| 60 const SkColor kRegularTextBackgroundColor = SK_ColorWHITE; | 63 const SkColor kRegularTextBackgroundColor = SK_ColorWHITE; |
| 61 const SkColor kDimTextBackgroundColor = SK_ColorWHITE; | 64 const SkColor kDimTextBackgroundColor = SK_ColorWHITE; |
| 65 const SkColor kContextTextBackgroundColor = SK_ColorWHITE; | |
| 62 | 66 |
| 63 // static | 67 // static |
| 64 views::Background* MakeBackground( | 68 views::Background* MakeBackground( |
| 65 SkColor color = message_center::kNotificationBackgroundColor) { | 69 SkColor color = message_center::kNotificationBackgroundColor) { |
| 66 return views::Background::CreateSolidBackground(color); | 70 return views::Background::CreateSolidBackground(color); |
| 67 } | 71 } |
| 68 | 72 |
| 69 // static | 73 // static |
| 70 views::Border* MakeEmptyBorder(int top, int left, int bottom, int right) { | 74 views::Border* MakeEmptyBorder(int top, int left, int bottom, int right) { |
| 71 return views::Border::CreateEmptyBorder(top, left, bottom, right); | 75 return views::Border::CreateEmptyBorder(top, left, bottom, right); |
| (...skipping 414 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 486 ui::TruncateString(notification.message(), kMessageCharacterLimit)); | 490 ui::TruncateString(notification.message(), kMessageCharacterLimit)); |
| 487 message_view_->SetLineHeight(kMessageLineHeight); | 491 message_view_->SetLineHeight(kMessageLineHeight); |
| 488 message_view_->SetVisible(!is_expanded() || !notification.items().size()); | 492 message_view_->SetVisible(!is_expanded() || !notification.items().size()); |
| 489 message_view_->SetColors(message_center::kDimTextColor, | 493 message_view_->SetColors(message_center::kDimTextColor, |
| 490 kDimTextBackgroundColor); | 494 kDimTextBackgroundColor); |
| 491 message_view_->set_border(MakeTextBorder(padding, 4, 0)); | 495 message_view_->set_border(MakeTextBorder(padding, 4, 0)); |
| 492 top_view_->AddChildView(message_view_); | 496 top_view_->AddChildView(message_view_); |
| 493 accessible_lines.push_back(notification.message()); | 497 accessible_lines.push_back(notification.message()); |
| 494 } | 498 } |
| 495 | 499 |
| 500 // Create the context message view if appropriate. | |
| 501 context_message_view_ = NULL; | |
| 502 LOG(INFO) << "Context message: " << notification.context_message(); | |
| 503 if (!notification.context_message().empty()) { | |
| 504 gfx::Font font = views::Label().font().DeriveFont(0, gfx::Font::ITALIC); | |
| 505 int padding = kContextMessageLineHeight - views::Label().font().GetHeight(); | |
| 506 context_message_view_ = | |
| 507 new BoundedLabel(ui::TruncateString(notification.context_message(), | |
| 508 kContextMessageCharacterLimit), | |
| 509 font); | |
| 510 context_message_view_->SetLineLimit( | |
| 511 message_center::kContextMessageLineLimit); | |
| 512 context_message_view_->SetLineHeight(kContextMessageLineHeight); | |
| 513 context_message_view_->SetColors(message_center::kContextTextColor, | |
| 514 kContextTextBackgroundColor); | |
| 515 context_message_view_->set_border(MakeTextBorder(padding, 4, 0)); | |
| 516 top_view_->AddChildView(context_message_view_); | |
| 517 accessible_lines.push_back(notification.context_message()); | |
| 518 } | |
| 519 | |
| 496 // Create the progress bar view. | 520 // Create the progress bar view. |
| 497 progress_bar_view_ = NULL; | 521 progress_bar_view_ = NULL; |
| 498 if (notification.type() == NOTIFICATION_TYPE_PROGRESS) { | 522 if (notification.type() == NOTIFICATION_TYPE_PROGRESS) { |
| 499 progress_bar_view_ = new NotificationProgressBar(); | 523 progress_bar_view_ = new NotificationProgressBar(); |
| 500 progress_bar_view_->set_border(MakeProgressBarBorder( | 524 progress_bar_view_->set_border(MakeProgressBarBorder( |
| 501 message_center::kProgressBarTopPadding, kProgressBarBottomPadding)); | 525 message_center::kProgressBarTopPadding, kProgressBarBottomPadding)); |
| 502 progress_bar_view_->SetValue(notification.progress() / 100.0); | 526 progress_bar_view_->SetValue(notification.progress() / 100.0); |
| 503 top_view_->AddChildView(progress_bar_view_); | 527 top_view_->AddChildView(progress_bar_view_); |
| 504 } | 528 } |
| 505 | 529 |
| (...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 757 return message_view_ ? | 781 return message_view_ ? |
| 758 message_view_->GetLinesForWidthAndLimit(width, limit) : 0; | 782 message_view_->GetLinesForWidthAndLimit(width, limit) : 0; |
| 759 } | 783 } |
| 760 | 784 |
| 761 int NotificationView::GetMessageHeight(int width, int limit) { | 785 int NotificationView::GetMessageHeight(int width, int limit) { |
| 762 return message_view_ ? | 786 return message_view_ ? |
| 763 message_view_->GetSizeForWidthAndLines(width, limit).height() : 0; | 787 message_view_->GetSizeForWidthAndLines(width, limit).height() : 0; |
| 764 } | 788 } |
| 765 | 789 |
| 766 } // namespace message_center | 790 } // namespace message_center |
| OLD | NEW |