Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(290)

Unified Diff: ui/message_center/views/message_view.cc

Issue 114323002: Fixes the context menu for a notification. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ui/message_center/views/message_view.cc
diff --git a/ui/message_center/views/message_view.cc b/ui/message_center/views/message_view.cc
index 856231bae2c8211be5fdbfe62a1a06ffb172e19f..3c11ac79550c3022d8a974d184390b0df7cdae15 100644
--- a/ui/message_center/views/message_view.cc
+++ b/ui/message_center/views/message_view.cc
@@ -16,9 +16,7 @@
#include "ui/message_center/message_center_style.h"
#include "ui/message_center/message_center_util.h"
#include "ui/message_center/views/padded_button.h"
-#include "ui/views/context_menu_controller.h"
#include "ui/views/controls/button/image_button.h"
-#include "ui/views/controls/menu/menu_runner.h"
#include "ui/views/controls/scroll_view.h"
#include "ui/views/painter.h"
#include "ui/views/shadow_border.h"
@@ -32,135 +30,13 @@ const int kCloseIconRightPadding = 5;
const int kShadowOffset = 1;
const int kShadowBlur = 4;
-// Menu constants
-const int kTogglePermissionCommand = 0;
-const int kShowSettingsCommand = 1;
-
-// A dropdown menu for notifications.
-class MenuModel : public ui::SimpleMenuModel,
- public ui::SimpleMenuModel::Delegate {
- public:
- MenuModel(message_center::MessageView* message_view,
- const string16& display_source);
- virtual ~MenuModel();
-
- // Overridden from ui::SimpleMenuModel::Delegate:
- virtual bool IsItemForCommandIdDynamic(int command_id) const OVERRIDE;
- virtual bool IsCommandIdChecked(int command_id) const OVERRIDE;
- virtual bool IsCommandIdEnabled(int command_id) const OVERRIDE;
- virtual bool GetAcceleratorForCommandId(
- int command_id,
- ui::Accelerator* accelerator) OVERRIDE;
- virtual void ExecuteCommand(int command_id, int event_flags) OVERRIDE;
-
- private:
- message_center::MessageView* message_view_; // Weak, owns us.
- DISALLOW_COPY_AND_ASSIGN(MenuModel);
-};
-
-MenuModel::MenuModel(message_center::MessageView* message_view,
- const string16& display_source)
- : ui::SimpleMenuModel(this),
- message_view_(message_view) {
- // Add 'disable notifications' menu item.
- if (!display_source.empty()) {
- AddItem(kTogglePermissionCommand,
- l10n_util::GetStringFUTF16(IDS_MESSAGE_CENTER_NOTIFIER_DISABLE,
- display_source));
- }
- // Add settings menu item.
- AddItem(kShowSettingsCommand,
- l10n_util::GetStringUTF16(IDS_MESSAGE_CENTER_SETTINGS));
-}
-
-MenuModel::~MenuModel() {
-}
-
-bool MenuModel::IsItemForCommandIdDynamic(int command_id) const {
- return false;
-}
-
-bool MenuModel::IsCommandIdChecked(int command_id) const {
- return false;
-}
-
-bool MenuModel::IsCommandIdEnabled(int command_id) const {
- return true;
-}
-
-bool MenuModel::GetAcceleratorForCommandId(int command_id,
- ui::Accelerator* accelerator) {
- return false;
-}
-
-void MenuModel::ExecuteCommand(int command_id, int event_flags) {
- switch (command_id) {
- case kTogglePermissionCommand:
- message_view_->DisableNotificationsFromThisSource();
- break;
- case kShowSettingsCommand:
- message_view_->ShowNotifierSettingsBubble();
- break;
- default:
- NOTREACHED();
- }
-}
-
} // namespace
namespace message_center {
-class MessageViewContextMenuController : public views::ContextMenuController {
- public:
- MessageViewContextMenuController(MessageView* message_view,
- const string16& display_source);
- virtual ~MessageViewContextMenuController();
-
- protected:
- // Overridden from views::ContextMenuController:
- virtual void ShowContextMenuForView(views::View* source,
- const gfx::Point& point,
- ui::MenuSourceType source_type) OVERRIDE;
-
- MessageView* message_view_; // Weak, owns us.
- string16 display_source_;
-};
-
-MessageViewContextMenuController::MessageViewContextMenuController(
- MessageView* message_view,
- const string16& display_source)
- : message_view_(message_view),
- display_source_(display_source) {
-}
-
-MessageViewContextMenuController::~MessageViewContextMenuController() {
-}
-
-void MessageViewContextMenuController::ShowContextMenuForView(
- views::View* source,
- const gfx::Point& point,
- ui::MenuSourceType source_type) {
- MenuModel menu_model(message_view_, display_source_);
- if (menu_model.GetItemCount() == 0)
- return;
-
- views::MenuRunner menu_runner(&menu_model);
-
- ignore_result(menu_runner.RunMenuAt(
- source->GetWidget()->GetTopLevelWidget(),
- NULL,
- gfx::Rect(point, gfx::Size()),
- views::MenuItemView::TOPRIGHT,
- source_type,
- views::MenuRunner::HAS_MNEMONICS));
-}
-
-MessageView::MessageView(const string16& display_source)
- : context_menu_controller_(
- new MessageViewContextMenuController(this, display_source)),
- scroller_(NULL) {
+MessageView::MessageView()
+ : scroller_(NULL) {
set_focusable(true);
- set_context_menu_controller(context_menu_controller_.get());
PaddedButton *close = new PaddedButton(this);
close->SetPadding(-kCloseIconRightPadding, kCloseIconTopPadding);

Powered by Google App Engine
This is Rietveld 408576698