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/utf_string_conversions.h" | 8 #include "base/utf_string_conversions.h" |
| 9 #include "grit/ui_resources.h" | 9 #include "grit/ui_resources.h" |
| 10 #include "ui/base/accessibility/accessible_view_state.h" | 10 #include "ui/base/accessibility/accessible_view_state.h" |
| (...skipping 14 matching lines...) Expand all Loading... | |
| 25 #include "ui/views/controls/label.h" | 25 #include "ui/views/controls/label.h" |
| 26 #include "ui/views/layout/box_layout.h" | 26 #include "ui/views/layout/box_layout.h" |
| 27 #include "ui/views/layout/fill_layout.h" | 27 #include "ui/views/layout/fill_layout.h" |
| 28 | 28 |
| 29 namespace { | 29 namespace { |
| 30 | 30 |
| 31 // Dimensions. | 31 // Dimensions. |
| 32 const int kIconColumnWidth = message_center::kNotificationIconSize; | 32 const int kIconColumnWidth = message_center::kNotificationIconSize; |
| 33 const int kLegacyIconSize = 40; | 33 const int kLegacyIconSize = 40; |
| 34 const int kTextLeftPadding = kIconColumnWidth + | 34 const int kTextLeftPadding = kIconColumnWidth + |
| 35 message_center::kIconToTextPadding; | 35 message_center::kIconToTextPadding; |
| 36 const int kTextBottomPadding = 6; | 36 const int kTextBottomPadding = 12; |
| 37 const int kTextRightPadding = 23; | 37 const int kTextRightPadding = 23; |
| 38 const int kItemTitleToMessagePadding = 3; | 38 const int kItemTitleToMessagePadding = 3; |
| 39 const int kButtonHeight = 38; | 39 const int kButtonHeight = 38; |
| 40 const int kButtonHorizontalPadding = 16; | 40 const int kButtonHorizontalPadding = 16; |
| 41 const int kButtonVecticalPadding = 0; | 41 const int kButtonVecticalPadding = 0; |
| 42 const int kButtonIconTopPadding = 11; | 42 const int kButtonIconTopPadding = 11; |
| 43 const int kButtonIconToTitlePadding = 16; | 43 const int kButtonIconToTitlePadding = 16; |
| 44 const int kButtonTitleTopPadding = 0; | 44 const int kButtonTitleTopPadding = 0; |
| 45 | 45 |
| 46 const size_t kTitleCharacterLimit = 100; | 46 const size_t kTitleCharacterLimit = 100; |
| (...skipping 309 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 356 bool expanded) | 356 bool expanded) |
| 357 : MessageView(notification, observer, expanded) { | 357 : MessageView(notification, observer, expanded) { |
| 358 // Create the opaque background that's above the view's shadow. | 358 // Create the opaque background that's above the view's shadow. |
| 359 background_view_ = new views::View(); | 359 background_view_ = new views::View(); |
| 360 background_view_->set_background(MakeBackground()); | 360 background_view_->set_background(MakeBackground()); |
| 361 | 361 |
| 362 // Create the top_view_, which collects into a vertical box all content | 362 // Create the top_view_, which collects into a vertical box all content |
| 363 // at the top of the notification (to the right of the icon) except for the | 363 // at the top of the notification (to the right of the icon) except for the |
| 364 // close button. | 364 // close button. |
| 365 top_view_ = new ContainerView(); | 365 top_view_ = new ContainerView(); |
| 366 top_view_->set_border(MakeBorder(kTextTopPadding - 5, | |
| 367 kTextBottomPadding - 4, | |
| 368 0, 0)); | |
| 366 | 369 |
| 367 // Create the title view if appropriate. | 370 // Create the title view if appropriate. |
| 368 title_view_ = NULL; | 371 title_view_ = NULL; |
| 369 if (!notification.title().empty()) { | 372 if (!notification.title().empty()) { |
| 370 title_view_ = new views::Label( | 373 title_view_ = new views::Label( |
| 371 MaybeTruncateText( notification.title(), kTitleCharacterLimit)); | 374 MaybeTruncateText( notification.title(), kTitleCharacterLimit)); |
| 372 title_view_->SetHorizontalAlignment(gfx::ALIGN_LEFT); | 375 title_view_->SetHorizontalAlignment(gfx::ALIGN_LEFT); |
| 373 if (is_expanded()) | 376 if (is_expanded()) |
| 374 title_view_->SetMultiLine(true); | 377 title_view_->SetMultiLine(true); |
| 375 else | 378 else |
| 376 title_view_->SetElideBehavior(views::Label::ELIDE_AT_END); | 379 title_view_->SetElideBehavior(views::Label::ELIDE_AT_END); |
| 377 title_view_->SetFont(title_view_->font().DeriveFont(2)); | 380 title_view_->SetFont(title_view_->font().DeriveFont(2)); |
| 378 title_view_->SetEnabledColor(message_center::kRegularTextColor); | 381 title_view_->SetEnabledColor(message_center::kRegularTextColor); |
| 379 title_view_->SetBackgroundColor(kRegularTextBackgroundColor); | 382 title_view_->SetBackgroundColor(kRegularTextBackgroundColor); |
| 380 title_view_->set_border(MakeBorder(kTextTopPadding, 3)); | 383 title_view_->set_border(MakeBorder(0, 0)); |
|
msw
2013/04/04 18:44:50
nit: this seems unnecessary now.
| |
| 381 top_view_->AddChildView(title_view_); | 384 top_view_->AddChildView(title_view_); |
| 382 } | 385 } |
| 383 | 386 |
| 384 // Create the message view if appropriate. | 387 // Create the message view if appropriate. |
| 385 message_view_ = NULL; | 388 message_view_ = NULL; |
| 386 if (!notification.message().empty()) { | 389 if (!notification.message().empty()) { |
| 387 message_view_ = new views::Label( | 390 message_view_ = new views::Label( |
| 388 MaybeTruncateText(notification.message(), kMessageCharacterLimit)); | 391 MaybeTruncateText(notification.message(), kMessageCharacterLimit)); |
| 389 message_view_->SetVisible(!is_expanded() || !notification.items().size()); | 392 message_view_->SetVisible(!is_expanded() || !notification.items().size()); |
| 390 message_view_->set_collapse_when_hidden(true); | 393 message_view_->set_collapse_when_hidden(true); |
| 391 message_view_->SetHorizontalAlignment(gfx::ALIGN_LEFT); | 394 message_view_->SetHorizontalAlignment(gfx::ALIGN_LEFT); |
| 392 if (is_expanded()) | 395 if (is_expanded()) |
| 393 message_view_->SetMultiLine(true); | 396 message_view_->SetMultiLine(true); |
| 394 else | 397 else |
| 395 message_view_->SetElideBehavior(views::Label::ELIDE_AT_END); | 398 message_view_->SetElideBehavior(views::Label::ELIDE_AT_END); |
| 396 message_view_->SetEnabledColor(message_center::kRegularTextColor); | 399 message_view_->SetEnabledColor(message_center::kRegularTextColor); |
| 397 message_view_->SetBackgroundColor(kRegularTextBackgroundColor); | 400 message_view_->SetBackgroundColor(kRegularTextBackgroundColor); |
| 398 message_view_->set_border(MakeBorder(0, 3)); | 401 message_view_->set_border(MakeBorder(1, 0)); |
| 399 top_view_->AddChildView(message_view_); | 402 top_view_->AddChildView(message_view_); |
| 400 } | 403 } |
| 401 | 404 |
| 402 // Create the list item views (up to a maximum). | 405 // Create the list item views (up to a maximum). |
| 403 std::vector<NotificationItem> items = notification.items(); | 406 std::vector<NotificationItem> items = notification.items(); |
| 404 for (size_t i = 0; i < items.size() && i < kNotificationMaximumItems; ++i) { | 407 for (size_t i = 0; i < items.size() && i < kNotificationMaximumItems; ++i) { |
| 405 ItemView* item_view = new ItemView(items[i]); | 408 ItemView* item_view = new ItemView(items[i]); |
| 406 item_view->SetVisible(is_expanded()); | 409 item_view->SetVisible(is_expanded()); |
| 407 item_view->set_border(MakeBorder(0, 4)); | 410 item_view->set_border(MakeBorder(1, 0)); |
| 408 item_views_.push_back(item_view); | 411 item_views_.push_back(item_view); |
| 409 top_view_->AddChildView(item_view); | 412 top_view_->AddChildView(item_view); |
| 410 } | 413 } |
| 411 | 414 |
| 412 // Create the notification icon view. | 415 // Create the notification icon view. |
| 413 if (notification.type() == NOTIFICATION_TYPE_SIMPLE) { | 416 if (notification.type() == NOTIFICATION_TYPE_SIMPLE) { |
| 414 views::ImageView* icon_view = new views::ImageView(); | 417 views::ImageView* icon_view = new views::ImageView(); |
| 415 icon_view->SetImage(notification.icon().AsImageSkia()); | 418 icon_view->SetImage(notification.icon().AsImageSkia()); |
| 416 icon_view->SetImageSize(gfx::Size(kLegacyIconSize, kLegacyIconSize)); | 419 icon_view->SetImageSize(gfx::Size(kLegacyIconSize, kLegacyIconSize)); |
| 417 icon_view->SetHorizontalAlignment(views::ImageView::CENTER); | 420 icon_view->SetHorizontalAlignment(views::ImageView::CENTER); |
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 542 size_t limit) { | 545 size_t limit) { |
| 543 // Currently just truncate the text by the total number of characters. | 546 // Currently just truncate the text by the total number of characters. |
| 544 // TODO(mukai): add better assumption like number of lines. | 547 // TODO(mukai): add better assumption like number of lines. |
| 545 if (!is_expanded()) | 548 if (!is_expanded()) |
| 546 return text; | 549 return text; |
| 547 | 550 |
| 548 return ui::TruncateString(text, limit); | 551 return ui::TruncateString(text, limit); |
| 549 } | 552 } |
| 550 | 553 |
| 551 } // namespace message_center | 554 } // namespace message_center |
| OLD | NEW |