summaryrefslogtreecommitdiffstats
path: root/ui/message_center/views/message_view.cc
diff options
context:
space:
mode:
authormukai@chromium.org <mukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-20 17:13:58 +0000
committermukai@chromium.org <mukai@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-20 17:13:58 +0000
commit940c2ba4b46ca1c2f9e0667c3d9b24df3bf0cb11 (patch)
tree5f7acce00663f51e8b2004fad5f7edbfdae546a8 /ui/message_center/views/message_view.cc
parent8d7cea57d5969811a59125d201d7bb6bd02967cd (diff)
downloadchromium_src-940c2ba4b46ca1c2f9e0667c3d9b24df3bf0cb11.zip
chromium_src-940c2ba4b46ca1c2f9e0667c3d9b24df3bf0cb11.tar.gz
chromium_src-940c2ba4b46ca1c2f9e0667c3d9b24df3bf0cb11.tar.bz2
Introduces a new settings UI in the center.
BUG=245869 R=dewittj@chromium.org, rsesek@chromium.org TEST=manually / don't break existing tests Review URL: https://chromiumcodereview.appspot.com/16867003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@207466 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'ui/message_center/views/message_view.cc')
-rw-r--r--ui/message_center/views/message_view.cc25
1 files changed, 18 insertions, 7 deletions
diff --git a/ui/message_center/views/message_view.cc b/ui/message_center/views/message_view.cc
index 382124c..18f146c 100644
--- a/ui/message_center/views/message_view.cc
+++ b/ui/message_center/views/message_view.cc
@@ -16,6 +16,7 @@
#include "ui/gfx/skia_util.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/views/context_menu_controller.h"
#include "ui/views/controls/button/image_button.h"
@@ -203,6 +204,7 @@ class MenuModel : public ui::SimpleMenuModel,
public ui::SimpleMenuModel::Delegate {
public:
MenuModel(message_center::MessageCenter* message_center,
+ message_center::MessageCenterTray* tray,
const std::string& notification_id,
const string16& display_source,
const std::string& extension_id);
@@ -219,17 +221,20 @@ class MenuModel : public ui::SimpleMenuModel,
private:
message_center::MessageCenter* message_center_; // Weak reference.
+ message_center::MessageCenterTray* tray_; // Weak reference.
std::string notification_id_;
DISALLOW_COPY_AND_ASSIGN(MenuModel);
};
MenuModel::MenuModel(message_center::MessageCenter* message_center,
+ message_center::MessageCenterTray* tray,
const std::string& notification_id,
const string16& display_source,
const std::string& extension_id)
: ui::SimpleMenuModel(this),
message_center_(message_center),
+ tray_(tray),
notification_id_(notification_id) {
// Add 'disable notifications' menu item.
if (!extension_id.empty() && !display_source.empty()) {
@@ -277,8 +282,9 @@ void MenuModel::ExecuteCommand(int command_id, int event_flags) {
message_center_->DisableNotificationsByUrl(notification_id_);
break;
case kShowSettingsCommand:
- if (message_center::IsRichNotificationEnabled())
- message_center_->ShowNotificationSettingsDialog(NULL);
+ // |tray_| may be NULL in tests.
+ if (message_center::IsRichNotificationEnabled() && tray_)
+ tray_->ShowNotifierSettingsBubble();
else
message_center_->ShowNotificationSettings(notification_id_);
break;
@@ -294,7 +300,8 @@ namespace message_center {
class MessageViewContextMenuController : public views::ContextMenuController {
public:
MessageViewContextMenuController(
- message_center::MessageCenter* message_center,
+ MessageCenter* message_center,
+ MessageCenterTray* tray,
const Notification& notification);
virtual ~MessageViewContextMenuController();
@@ -304,16 +311,19 @@ class MessageViewContextMenuController : public views::ContextMenuController {
const gfx::Point& point,
ui::MenuSourceType source_type) OVERRIDE;
- message_center::MessageCenter* message_center_;
+ MessageCenter* message_center_; // Weak reference.
+ MessageCenterTray* tray_; // Weak reference.
std::string notification_id_;
string16 display_source_;
std::string extension_id_;
};
MessageViewContextMenuController::MessageViewContextMenuController(
- message_center::MessageCenter* message_center,
+ MessageCenter* message_center,
+ MessageCenterTray* tray,
const Notification& notification)
: message_center_(message_center),
+ tray_(tray),
notification_id_(notification.id()),
display_source_(notification.display_source()),
extension_id_(notification.extension_id()) {
@@ -326,7 +336,7 @@ void MessageViewContextMenuController::ShowContextMenuForView(
views::View* source,
const gfx::Point& point,
ui::MenuSourceType source_type) {
- MenuModel menu_model(message_center_, notification_id_,
+ MenuModel menu_model(message_center_, tray_, notification_id_,
display_source_, extension_id_);
if (menu_model.GetItemCount() == 0)
return;
@@ -344,11 +354,12 @@ void MessageViewContextMenuController::ShowContextMenuForView(
MessageView::MessageView(const Notification& notification,
MessageCenter* message_center,
+ MessageCenterTray* tray,
bool expanded)
: message_center_(message_center),
notification_id_(notification.id()),
context_menu_controller_(new MessageViewContextMenuController(
- message_center, notification)),
+ message_center, tray, notification)),
scroller_(NULL),
is_expanded_(expanded) {
set_focusable(true);