summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpfeldman@chromium.org <pfeldman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-18 18:11:03 +0000
committerpfeldman@chromium.org <pfeldman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-07-18 18:11:03 +0000
commitb04af72e822e2fa6597712b5177545783d95f84f (patch)
tree7c5c9b656af6f2de5728ef944c411625332de2bb
parentc7dd31b80bd434e0634e3f2671c15314821ebeaa (diff)
downloadchromium_src-b04af72e822e2fa6597712b5177545783d95f84f.zip
chromium_src-b04af72e822e2fa6597712b5177545783d95f84f.tar.gz
chromium_src-b04af72e822e2fa6597712b5177545783d95f84f.tar.bz2
Revert 52859.
Review URL: http://codereview.chromium.org/3013012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@52860 0039d316-1c4b-4281-b951-d872f2087c98
-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.cc57
-rw-r--r--chrome/browser/notifications/notification_options_menu_model.h30
-rw-r--r--chrome/chrome_browser.gypi4
6 files changed, 136 insertions, 90 deletions
diff --git a/chrome/browser/gtk/notifications/balloon_view_gtk.cc b/chrome/browser/gtk/notifications/balloon_view_gtk.cc
index ea9d9ae..038d335 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
new file mode 100644
index 0000000..9b5225a
--- /dev/null
+++ b/chrome/browser/gtk/notifications/notification_options_menu_model.cc
@@ -0,0 +1,90 @@
+// 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
new file mode 100644
index 0000000..a88adb7
--- /dev/null
+++ b/chrome/browser/gtk/notifications/notification_options_menu_model.h
@@ -0,0 +1,43 @@
+// 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
deleted file mode 100644
index 7026d80..0000000
--- a/chrome/browser/notifications/notification_options_menu_model.cc
+++ /dev/null
@@ -1,57 +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 "chrome/browser/notifications/notification_options_menu_model.h"
-
-#include "app/l10n_util.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)
- : 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
deleted file mode 100644
index 751c799..0000000
--- a/chrome/browser/notifications/notification_options_menu_model.h
+++ /dev/null
@@ -1,30 +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_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 4b5959d..05a38da 100644
--- a/chrome/chrome_browser.gypi
+++ b/chrome/chrome_browser.gypi
@@ -1554,6 +1554,8 @@
'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',
@@ -1933,8 +1935,6 @@
'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',