diff options
author | pfeldman@chromium.org <pfeldman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-18 18:11:03 +0000 |
---|---|---|
committer | pfeldman@chromium.org <pfeldman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-07-18 18:11:03 +0000 |
commit | b04af72e822e2fa6597712b5177545783d95f84f (patch) | |
tree | 7c5c9b656af6f2de5728ef944c411625332de2bb | |
parent | c7dd31b80bd434e0634e3f2671c15314821ebeaa (diff) | |
download | chromium_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
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', |