summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
Diffstat (limited to 'chrome')
-rw-r--r--chrome/browser/gtk/notifications/balloon_view_gtk.cc2
-rw-r--r--chrome/browser/gtk/notifications/notification_options_menu_model.cc90
-rw-r--r--chrome/browser/gtk/notifications/notification_options_menu_model.h43
-rw-r--r--chrome/browser/notifications/notification_options_menu_model.cc58
-rw-r--r--chrome/browser/notifications/notification_options_menu_model.h30
-rw-r--r--chrome/chrome_browser.gypi4
6 files changed, 91 insertions, 136 deletions
diff --git a/chrome/browser/gtk/notifications/balloon_view_gtk.cc b/chrome/browser/gtk/notifications/balloon_view_gtk.cc
index 038d335..ea9d9ae 100644
--- a/chrome/browser/gtk/notifications/balloon_view_gtk.cc
+++ b/chrome/browser/gtk/notifications/balloon_view_gtk.cc
@@ -25,10 +25,10 @@
#include "chrome/browser/gtk/info_bubble_gtk.h"
#include "chrome/browser/gtk/menu_gtk.h"
#include "chrome/browser/gtk/notifications/balloon_view_host_gtk.h"
-#include "chrome/browser/gtk/notifications/notification_options_menu_model.h"
#include "chrome/browser/gtk/rounded_window.h"
#include "chrome/browser/notifications/balloon.h"
#include "chrome/browser/notifications/desktop_notification_service.h"
+#include "chrome/browser/notifications/notification_options_menu_model.h"
#include "chrome/browser/profile.h"
#include "chrome/browser/renderer_host/render_view_host.h"
#include "chrome/browser/renderer_host/render_widget_host_view.h"
diff --git a/chrome/browser/gtk/notifications/notification_options_menu_model.cc b/chrome/browser/gtk/notifications/notification_options_menu_model.cc
deleted file mode 100644
index 9b5225a..0000000
--- a/chrome/browser/gtk/notifications/notification_options_menu_model.cc
+++ /dev/null
@@ -1,90 +0,0 @@
-// Copyright (c) 2010 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 "app/l10n_util.h"
-#include "base/utf_string_conversions.h"
-#include "chrome/browser/gtk/notifications/notification_options_menu_model.h"
-#include "chrome/browser/notifications/balloon.h"
-#include "chrome/browser/notifications/desktop_notification_service.h"
-#include "chrome/browser/profile.h"
-#include "grit/generated_resources.h"
-#include "grit/theme_resources.h"
-
-using menus::MenuModel;
-
-NotificationOptionsMenuModel::NotificationOptionsMenuModel(Balloon* balloon)
- : balloon_(balloon) {
-}
-
-NotificationOptionsMenuModel::~NotificationOptionsMenuModel() {
-}
-
-bool NotificationOptionsMenuModel::HasIcons() const {
- return false;
-}
-
-int NotificationOptionsMenuModel::GetItemCount() const {
- return 1;
-}
-
-MenuModel::ItemType NotificationOptionsMenuModel::GetTypeAt(int index) const {
- return MenuModel::TYPE_COMMAND;
-}
-
-int NotificationOptionsMenuModel::GetCommandIdAt(int index) const {
- return index;
-}
-
-string16 NotificationOptionsMenuModel::GetLabelAt(int index) const {
- DCHECK_EQ(0, index);
-
- return l10n_util::GetStringFUTF16(IDS_NOTIFICATION_BALLOON_REVOKE_MESSAGE,
- WideToUTF16(balloon_->notification().display_source()));
-}
-
-bool NotificationOptionsMenuModel::IsLabelDynamicAt(int index) const {
- return false;
-}
-
-bool NotificationOptionsMenuModel::GetAcceleratorAt(
- int index, menus::Accelerator* accelerator) const {
- return false;
-}
-
-bool NotificationOptionsMenuModel::IsItemCheckedAt(int index) const {
- return false;
-}
-
-int NotificationOptionsMenuModel::GetGroupIdAt(int index) const {
- return 0;
-}
-
-bool NotificationOptionsMenuModel::GetIconAt(int index, SkBitmap* icon) const {
- return false;
-}
-
-menus::ButtonMenuItemModel* NotificationOptionsMenuModel::GetButtonMenuItemAt(
- int index) const {
- return NULL;
-}
-
-bool NotificationOptionsMenuModel::IsEnabledAt(int index) const {
- return true;
-}
-
-MenuModel* NotificationOptionsMenuModel::GetSubmenuModelAt(int index) const {
- return NULL;
-}
-
-void NotificationOptionsMenuModel::HighlightChangedTo(int index) {
-}
-
-void NotificationOptionsMenuModel::ActivatedAt(int index) {
- DCHECK_EQ(0, index);
-
- DesktopNotificationService* service =
- balloon_->profile()->GetDesktopNotificationService();
-
- service->DenyPermission(balloon_->notification().origin_url());
-}
diff --git a/chrome/browser/gtk/notifications/notification_options_menu_model.h b/chrome/browser/gtk/notifications/notification_options_menu_model.h
deleted file mode 100644
index a88adb7..0000000
--- a/chrome/browser/gtk/notifications/notification_options_menu_model.h
+++ /dev/null
@@ -1,43 +0,0 @@
-// Copyright (c) 2010 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.
-
-#ifndef CHROME_BROWSER_GTK_NOTIFICATIONS_NOTIFICATION_OPTIONS_MENU_MODEL_H_
-#define CHROME_BROWSER_GTK_NOTIFICATIONS_NOTIFICATION_OPTIONS_MENU_MODEL_H_
-
-#include "app/menus/menu_model.h"
-
-class Balloon;
-
-// Model for the options menu on the notification balloon.
-class NotificationOptionsMenuModel : public menus::MenuModel {
- public:
- explicit NotificationOptionsMenuModel(Balloon* balloon);
- ~NotificationOptionsMenuModel();
-
- // menus::MenuModel methods.
- virtual bool HasIcons() const;
- virtual int GetItemCount() const;
- virtual ItemType GetTypeAt(int index) const;
- virtual int GetCommandIdAt(int index) const;
- virtual string16 GetLabelAt(int index) const;
- virtual bool IsLabelDynamicAt(int index) const;
- virtual bool GetAcceleratorAt(int index,
- menus::Accelerator* accelerator) const;
- virtual bool IsItemCheckedAt(int index) const;
- virtual int GetGroupIdAt(int index) const;
- virtual bool GetIconAt(int index, SkBitmap* icon) const;
- virtual menus::ButtonMenuItemModel* GetButtonMenuItemAt(int index) const;
- virtual bool IsEnabledAt(int index) const;
- virtual MenuModel* GetSubmenuModelAt(int index) const;
- virtual void HighlightChangedTo(int index);
- virtual void ActivatedAt(int index);
-
- private:
- // Non-owned pointer to the balloon involved.
- Balloon* balloon_;
-
- DISALLOW_COPY_AND_ASSIGN(NotificationOptionsMenuModel);
-};
-
-#endif // CHROME_BROWSER_GTK_NOTIFICATIONS_NOTIFICATION_OPTIONS_MENU_MODEL_H_
diff --git a/chrome/browser/notifications/notification_options_menu_model.cc b/chrome/browser/notifications/notification_options_menu_model.cc
new file mode 100644
index 0000000..d89c09c
--- /dev/null
+++ b/chrome/browser/notifications/notification_options_menu_model.cc
@@ -0,0 +1,58 @@
+// Copyright (c) 2010 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 "chrome/browser/notifications/notification_options_menu_model.h"
+
+#include "app/l10n_util.h"
+#include "base/compiler_specific.h"
+#include "base/logging.h"
+#include "base/utf_string_conversions.h"
+#include "chrome/browser/notifications/desktop_notification_service.h"
+#include "chrome/browser/profile.h"
+#include "grit/generated_resources.h"
+
+static const int kRevokePermissionCommand = 0;
+
+NotificationOptionsMenuModel::NotificationOptionsMenuModel(Balloon* balloon)
+ : ALLOW_THIS_IN_INITIALIZER_LIST(menus::SimpleMenuModel(this)),
+ balloon_(balloon) {
+ const string16 label_text = WideToUTF16Hack(l10n_util::GetStringF(
+ IDS_NOTIFICATION_BALLOON_REVOKE_MESSAGE,
+ balloon->notification().display_source()));
+ AddItem(kRevokePermissionCommand, label_text);
+}
+
+NotificationOptionsMenuModel::~NotificationOptionsMenuModel() {
+}
+
+bool NotificationOptionsMenuModel::IsCommandIdChecked(int /* command_id */)
+ const {
+ // Nothing in the menu is checked.
+ return false;
+}
+
+bool NotificationOptionsMenuModel::IsCommandIdEnabled(int /* command_id */)
+ const {
+ // All the menu options are always enabled.
+ return true;
+}
+
+bool NotificationOptionsMenuModel::GetAcceleratorForCommandId(
+ int /* command_id */, menus::Accelerator* /* accelerator */) {
+ // Current no accelerators.
+ return false;
+}
+
+void NotificationOptionsMenuModel::ExecuteCommand(int command_id) {
+ DesktopNotificationService* service =
+ balloon_->profile()->GetDesktopNotificationService();
+ switch (command_id) {
+ case kRevokePermissionCommand:
+ service->DenyPermission(balloon_->notification().origin_url());
+ break;
+ default:
+ NOTREACHED();
+ break;
+ }
+}
diff --git a/chrome/browser/notifications/notification_options_menu_model.h b/chrome/browser/notifications/notification_options_menu_model.h
new file mode 100644
index 0000000..751c799
--- /dev/null
+++ b/chrome/browser/notifications/notification_options_menu_model.h
@@ -0,0 +1,30 @@
+// Copyright (c) 2010 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.
+
+#ifndef CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_OPTIONS_MENU_MODEL_H_
+#define CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_OPTIONS_MENU_MODEL_H_
+
+#include "app/menus/simple_menu_model.h"
+#include "chrome/browser/notifications/balloon.h"
+
+class NotificationOptionsMenuModel : public menus::SimpleMenuModel,
+ public menus::SimpleMenuModel::Delegate {
+ public:
+ explicit NotificationOptionsMenuModel(Balloon* balloon);
+ virtual ~NotificationOptionsMenuModel();
+
+ // Overridden from menus::SimpleMenuModel::Delegate:
+ virtual bool IsCommandIdChecked(int command_id) const;
+ virtual bool IsCommandIdEnabled(int command_id) const;
+ virtual bool GetAcceleratorForCommandId(int command_id,
+ menus::Accelerator* accelerator);
+ virtual void ExecuteCommand(int command_id);
+
+ private:
+ Balloon* balloon_; // Not owned.
+
+ DISALLOW_COPY_AND_ASSIGN(NotificationOptionsMenuModel);
+};
+
+#endif // CHROME_BROWSER_NOTIFICATIONS_NOTIFICATION_OPTIONS_MENU_MODEL_H_
diff --git a/chrome/chrome_browser.gypi b/chrome/chrome_browser.gypi
index 05a38da..4b5959d 100644
--- a/chrome/chrome_browser.gypi
+++ b/chrome/chrome_browser.gypi
@@ -1554,8 +1554,6 @@
'browser/gtk/notifications/balloon_view_gtk.h',
'browser/gtk/notifications/balloon_view_host_gtk.cc',
'browser/gtk/notifications/balloon_view_host_gtk.h',
- 'browser/gtk/notifications/notification_options_menu_model.cc',
- 'browser/gtk/notifications/notification_options_menu_model.h',
'browser/gtk/overflow_button.cc',
'browser/gtk/overflow_button.h',
'browser/gtk/options/advanced_contents_gtk.cc',
@@ -1935,6 +1933,8 @@
'browser/notifications/notification_exceptions_table_model.h',
'browser/notifications/notification_object_proxy.cc',
'browser/notifications/notification_object_proxy.h',
+ 'browser/notifications/notification_options_menu_model.cc',
+ 'browser/notifications/notification_options_menu_model.h',
'browser/notifications/notification_ui_manager.cc',
'browser/notifications/notification_ui_manager.h',
'browser/notifications/notifications_prefs_cache.cc',