summaryrefslogtreecommitdiff
path: root/chromium/ui/message_center/views/message_center_button_bar.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/ui/message_center/views/message_center_button_bar.cc')
-rw-r--r--chromium/ui/message_center/views/message_center_button_bar.cc51
1 files changed, 41 insertions, 10 deletions
diff --git a/chromium/ui/message_center/views/message_center_button_bar.cc b/chromium/ui/message_center/views/message_center_button_bar.cc
index 0816ffa29b1..8008115e705 100644
--- a/chromium/ui/message_center/views/message_center_button_bar.cc
+++ b/chromium/ui/message_center/views/message_center_button_bar.cc
@@ -13,6 +13,7 @@
#include "ui/gfx/text_constants.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/notifier_settings.h"
#include "ui/message_center/views/message_center_view.h"
#include "ui/views/controls/button/button.h"
@@ -50,7 +51,7 @@ class NotificationCenterButton : public views::ToggleImageButton {
protected:
// Overridden from views::View:
- virtual gfx::Size GetPreferredSize() OVERRIDE;
+ virtual gfx::Size GetPreferredSize() const OVERRIDE;
private:
gfx::Size size_;
@@ -82,7 +83,7 @@ NotificationCenterButton::NotificationCenterButton(
gfx::Insets(1, 2, 2, 2)));
}
-gfx::Size NotificationCenterButton::GetPreferredSize() { return size_; }
+gfx::Size NotificationCenterButton::GetPreferredSize() const { return size_; }
// MessageCenterButtonBar /////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
@@ -90,17 +91,20 @@ MessageCenterButtonBar::MessageCenterButtonBar(
MessageCenterView* message_center_view,
MessageCenter* message_center,
NotifierSettingsProvider* notifier_settings_provider,
- bool settings_initially_visible)
+ bool settings_initially_visible,
+ const base::string16& title)
: message_center_view_(message_center_view),
message_center_(message_center),
+#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
+ close_bubble_button_(NULL),
+#endif
title_arrow_(NULL),
notification_label_(NULL),
button_container_(NULL),
close_all_button_(NULL),
settings_button_(NULL),
quiet_mode_button_(NULL) {
- if (get_use_acceleration_when_possible())
- SetPaintToLayer(true);
+ SetPaintToLayer(true);
set_background(
views::Background::CreateSolidBackground(kMessageCenterBackgroundColor));
@@ -117,11 +121,7 @@ MessageCenterButtonBar::MessageCenterButtonBar(
title_arrow_->SetFocusable(false);
AddChildView(title_arrow_);
- gfx::Font notification_label_font =
- ResourceBundle::GetSharedInstance().GetFont(ResourceBundle::BaseFont);
- notification_label_ = new views::Label(
- l10n_util::GetStringUTF16(IDS_MESSAGE_CENTER_FOOTER_TITLE),
- notification_label_font);
+ notification_label_ = new views::Label(title);
notification_label_->SetAutoColorReadabilityEnabled(false);
notification_label_->SetHorizontalAlignment(gfx::ALIGN_LEFT);
notification_label_->SetEnabledColor(kRegularTextColor);
@@ -170,6 +170,20 @@ MessageCenterButtonBar::MessageCenterButtonBar(
IDS_MESSAGE_CENTER_SETTINGS_BUTTON_LABEL);
button_container_->AddChildView(settings_button_);
+#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
+ close_bubble_button_ = new views::ImageButton(this);
+ close_bubble_button_->SetImage(
+ views::Button::STATE_NORMAL,
+ resource_bundle.GetImageSkiaNamed(IDR_NOTIFICATION_BUBBLE_CLOSE));
+ close_bubble_button_->SetImage(
+ views::Button::STATE_HOVERED,
+ resource_bundle.GetImageSkiaNamed(IDR_NOTIFICATION_BUBBLE_CLOSE_HOVER));
+ close_bubble_button_->SetImage(
+ views::Button::STATE_PRESSED,
+ resource_bundle.GetImageSkiaNamed(IDR_NOTIFICATION_BUBBLE_CLOSE_PRESSED));
+ AddChildView(close_bubble_button_);
+#endif
+
SetCloseAllButtonEnabled(!settings_initially_visible);
SetBackArrowVisible(settings_initially_visible);
ViewVisibilityChanged();
@@ -218,11 +232,24 @@ void MessageCenterButtonBar::ViewVisibilityChanged() {
0,
0);
+#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
+ // The close-bubble button.
+ column->AddColumn(views::GridLayout::LEADING,
+ views::GridLayout::LEADING,
+ 0.0f,
+ views::GridLayout::USE_PREF,
+ 0,
+ 0);
+#endif
+
layout->StartRow(0, 0);
if (title_arrow_->visible())
layout->AddView(title_arrow_);
layout->AddView(notification_label_);
layout->AddView(button_container_);
+#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
+ layout->AddView(close_bubble_button_);
+#endif
}
MessageCenterButtonBar::~MessageCenterButtonBar() {}
@@ -263,6 +290,10 @@ void MessageCenterButtonBar::ButtonPressed(views::Button* sender,
else
message_center()->EnterQuietModeWithExpire(base::TimeDelta::FromDays(1));
quiet_mode_button_->SetToggled(message_center()->IsQuietMode());
+#if defined(OS_LINUX) && !defined(OS_CHROMEOS)
+ } else if (sender == close_bubble_button_) {
+ message_center_view()->tray()->HideMessageCenterBubble();
+#endif
} else {
NOTREACHED();
}