Index: ui/message_center/views/group_view.cc |
diff --git a/ui/message_center/views/group_view.cc b/ui/message_center/views/group_view.cc |
deleted file mode 100644 |
index 3f56e56e731477def8eeb2b4f3c066945d370aaa..0000000000000000000000000000000000000000 |
--- a/ui/message_center/views/group_view.cc |
+++ /dev/null |
@@ -1,253 +0,0 @@ |
-// Copyright 2013 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "ui/message_center/views/group_view.h" |
- |
-#include "base/strings/string_number_conversions.h" |
-#include "base/strings/string_util.h" |
-#include "base/strings/utf_string_conversions.h" |
-#include "grit/ui_resources.h" |
-#include "grit/ui_strings.h" |
-#include "ui/base/l10n/l10n_util.h" |
-#include "ui/base/layout.h" |
-#include "ui/base/resource/resource_bundle.h" |
-#include "ui/gfx/canvas.h" |
-#include "ui/gfx/size.h" |
-#include "ui/gfx/skia_util.h" |
-#include "ui/gfx/text_elider.h" |
-#include "ui/message_center/message_center.h" |
-#include "ui/message_center/message_center_style.h" |
-#include "ui/message_center/message_center_tray.h" |
-#include "ui/message_center/message_center_util.h" |
-#include "ui/message_center/notification.h" |
-#include "ui/message_center/views/bounded_label.h" |
-#include "ui/message_center/views/constants.h" |
-#include "ui/message_center/views/notification_button.h" |
-#include "ui/message_center/views/proportional_image_view.h" |
-#include "ui/native_theme/native_theme.h" |
-#include "ui/views/background.h" |
-#include "ui/views/border.h" |
-#include "ui/views/controls/button/image_button.h" |
-#include "ui/views/controls/image_view.h" |
-#include "ui/views/controls/label.h" |
-#include "ui/views/layout/box_layout.h" |
-#include "ui/views/layout/fill_layout.h" |
-#include "ui/views/widget/widget.h" |
- |
-#if defined(USE_AURA) |
-#include "ui/base/cursor/cursor.h" |
-#endif |
- |
-namespace { |
- |
-// static |
-views::Border* MakeTextBorder(int padding, int top, int bottom) { |
- // Split the padding between the top and the bottom, then add the extra space. |
- return views::Border::CreateEmptyBorder(padding / 2 + top, |
- message_center::kTextLeftPadding, |
- (padding + 1) / 2 + bottom, |
- message_center::kTextRightPadding); |
-} |
- |
-} // namespace |
- |
-namespace message_center { |
- |
-// GroupView //////////////////////////////////////////////////////////// |
- |
-GroupView::GroupView(MessageCenterController* controller, |
- const NotifierId& notifier_id, |
- const Notification& last_notification, |
- const gfx::ImageSkia& group_icon, |
- int group_size) |
- : MessageView(this, |
- last_notification.id(), |
- notifier_id, |
- last_notification.display_source()), |
- controller_(controller), |
- notifier_id_(notifier_id), |
- display_source_(last_notification.display_source()), |
- group_icon_(group_icon), |
- group_size_(group_size), |
- last_notification_id_(last_notification.id()), |
- top_view_(NULL), |
- bottom_view_(NULL), |
- title_view_(NULL), |
- message_view_(NULL), |
- context_message_view_(NULL), |
- icon_view_(NULL) |
-{ |
- std::vector<base::string16> accessible_lines; |
- // Create the top_view_, which collects into a vertical box all content |
- // at the top of the notification (to the right of the icon) except for the |
- // close button. |
- top_view_ = new views::View(); |
- top_view_->SetLayoutManager( |
- new views::BoxLayout(views::BoxLayout::kVertical, 0, 0, 0)); |
- top_view_->set_border(views::Border::CreateEmptyBorder( |
- kTextTopPadding - 8, 0, kTextBottomPadding - 5, 0)); |
- |
- const gfx::FontList default_label_font_list = views::Label().font_list(); |
- |
- // Create the title view if appropriate. |
- const gfx::FontList& font_list = |
- default_label_font_list.DeriveFontListWithSizeDelta(2); |
- int padding = kTitleLineHeight - font_list.GetHeight(); |
- |
- title_view_ = new BoundedLabel( |
- gfx::TruncateString(base::string16(last_notification.title()), |
- kTitleCharacterLimit), |
- font_list); |
- accessible_lines.push_back(last_notification.title()); |
- title_view_->SetLineHeight(kTitleLineHeight); |
- title_view_->SetLineLimit(message_center::kTitleLineLimit); |
- title_view_->SetColors(message_center::kRegularTextColor, |
- kRegularTextBackgroundColor); |
- title_view_->set_border(MakeTextBorder(padding, 3, 0)); |
- top_view_->AddChildView(title_view_); |
- |
- // Create the message view if appropriate. |
- if (!last_notification.message().empty()) { |
- int padding = kMessageLineHeight - default_label_font_list.GetHeight(); |
- message_view_ = new BoundedLabel( |
- gfx::TruncateString(last_notification.message(), |
- kMessageCharacterLimit)); |
- message_view_->SetLineHeight(kMessageLineHeight); |
- message_view_->SetColors(message_center::kRegularTextColor, |
- kDimTextBackgroundColor); |
- message_view_->set_border(MakeTextBorder(padding, 4, 0)); |
- top_view_->AddChildView(message_view_); |
- accessible_lines.push_back(last_notification.message()); |
- } |
- |
- // Create the context message view if appropriate. |
- if (!last_notification.context_message().empty()) { |
- int padding = kMessageLineHeight - default_label_font_list.GetHeight(); |
- context_message_view_ = new BoundedLabel(gfx::TruncateString( |
- last_notification.context_message(), kContextMessageCharacterLimit), |
- default_label_font_list); |
- context_message_view_->SetLineLimit( |
- message_center::kContextMessageLineLimit); |
- context_message_view_->SetLineHeight(kMessageLineHeight); |
- context_message_view_->SetColors(message_center::kDimTextColor, |
- kContextTextBackgroundColor); |
- context_message_view_->set_border(MakeTextBorder(padding, 4, 0)); |
- top_view_->AddChildView(context_message_view_); |
- accessible_lines.push_back(last_notification.context_message()); |
- } |
- |
- // Create the notification icon view. |
- icon_view_ = new ProportionalImageView(last_notification.icon().AsImageSkia(), |
- gfx::Size(kIconSize, kIconSize)); |
- icon_view_->set_background(views::Background::CreateSolidBackground( |
- kIconBackgroundColor)); |
- |
- // Create the bottom_view_, which collects into a vertical box all content |
- // below the notification icon except for the expandGroup button. |
- bottom_view_ = new views::View(); |
- bottom_view_->SetLayoutManager( |
- new views::BoxLayout(views::BoxLayout::kVertical, 0, 0, 0)); |
- |
- // Create "N more.." action button |
- views::View* separator = new views::ImageView(); |
- separator->set_border(views::Border::CreateSolidSidedBorder( |
- 1, 0, 0, 0, kButtonSeparatorColor)); |
- bottom_view_->AddChildView(separator); |
- more_button_ = new NotificationButton(this); |
- base::string16 button_title = |
- l10n_util::GetStringFUTF16(IDS_MESSAGE_CENTER_MORE_FROM, |
- base::IntToString16(group_size_), |
- display_source_); |
- more_button_->SetTitle(button_title); |
- more_button_->SetIcon(group_icon_); |
- bottom_view_->AddChildView(more_button_); |
- |
- // Put together the different content and control views. Layering those allows |
- // for proper layout logic and it also allows the close button to |
- // overlap the content as needed to provide large enough click and touch area. |
- AddChildView(top_view_); |
- AddChildView(icon_view_); |
- AddChildView(bottom_view_); |
- AddChildView(close_button()); |
- set_accessible_name(JoinString(accessible_lines, '\n')); |
-} |
- |
-GroupView::~GroupView() { |
-} |
- |
-gfx::Size GroupView::GetPreferredSize() { |
- int top_width = top_view_->GetPreferredSize().width(); |
- int bottom_width = bottom_view_->GetPreferredSize().width(); |
- int preferred_width = std::max(top_width, bottom_width) + GetInsets().width(); |
- return gfx::Size(preferred_width, GetHeightForWidth(preferred_width)); |
-} |
- |
-int GroupView::GetHeightForWidth(int width) { |
- int content_width = width - GetInsets().width(); |
- int top_height = top_view_->GetHeightForWidth(content_width); |
- int bottom_height = bottom_view_->GetHeightForWidth(content_width); |
- int content_height = std::max(top_height, kIconSize) + bottom_height; |
- |
- // Adjust the height to make sure there is at least 16px of space below the |
- // icon if there is any space there (<http://crbug.com/232966>). |
- if (content_height > kIconSize) |
- content_height = std::max(content_height, |
- kIconSize + message_center::kIconBottomPadding); |
- |
- return content_height + GetInsets().height(); |
-} |
- |
-void GroupView::Layout() { |
- MessageView::Layout(); |
- gfx::Insets insets = GetInsets(); |
- int content_width = width() - insets.width(); |
- |
- // Top views. |
- int top_height = top_view_->GetHeightForWidth(content_width); |
- top_view_->SetBounds(insets.left(), insets.top(), content_width, top_height); |
- |
- // Icon. |
- icon_view_->SetBounds(insets.left(), insets.top(), kIconSize, kIconSize); |
- |
- // Bottom views. |
- int bottom_y = insets.top() + std::max(top_height, kIconSize); |
- int bottom_height = bottom_view_->GetHeightForWidth(content_width); |
- bottom_view_->SetBounds(insets.left(), bottom_y, |
- content_width, bottom_height); |
-} |
- |
-void GroupView::OnFocus() { |
- MessageView::OnFocus(); |
- ScrollRectToVisible(GetLocalBounds()); |
-} |
- |
-gfx::NativeCursor GroupView::GetCursor(const ui::MouseEvent& event) { |
-// If we ever have non-Aura views environment, this will fail compilation. |
-#if defined(USE_AURA) |
- return ui::kCursorHand; |
-#endif |
-} |
- |
-void GroupView::ButtonPressed(views::Button* sender, |
- const ui::Event& event) { |
- if (sender == more_button_) { |
- controller_->ExpandGroup(notifier_id_); |
- return; |
- } |
- // Let the superclass handle anything other than action buttons. |
- // Warning: This may cause the GroupView itself to be deleted, |
- // so don't do anything afterwards. |
- MessageView::ButtonPressed(sender, event); |
-} |
- |
-void GroupView::ClickOnNotification(const std::string& notification_id) { |
- controller_->GroupBodyClicked(notification_id); |
-} |
- |
-void GroupView::RemoveNotification(const std::string& notification_id, |
- bool by_user) { |
- controller_->RemoveGroup(notifier_id_); |
-} |
- |
-} // namespace message_center |