Chromium Code Reviews| Index: chrome/browser/ui/views/content_setting_bubble_contents.h |
| diff --git a/chrome/browser/ui/views/content_setting_bubble_contents.h b/chrome/browser/ui/views/content_setting_bubble_contents.h |
| index 9960246fb3dea94f0d4ad8da114ef9500e42de61..85a524447911a038fb2c5bb75d018e9100ae6926 100644 |
| --- a/chrome/browser/ui/views/content_setting_bubble_contents.h |
| +++ b/chrome/browser/ui/views/content_setting_bubble_contents.h |
| @@ -1,95 +1,135 @@ |
| -// Copyright (c) 2011 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_UI_VIEWS_CONTENT_SETTING_BUBBLE_CONTENTS_H_ |
| -#define CHROME_BROWSER_UI_VIEWS_CONTENT_SETTING_BUBBLE_CONTENTS_H_ |
| - |
| -#include <map> |
| - |
| -#include "base/basictypes.h" |
| -#include "base/compiler_specific.h" |
| -#include "chrome/common/content_settings_types.h" |
| -#include "content/public/browser/notification_observer.h" |
| -#include "content/public/browser/notification_registrar.h" |
| -#include "ui/views/bubble/bubble_delegate.h" |
| -#include "ui/views/controls/button/button.h" |
| -#include "ui/views/controls/link_listener.h" |
| - |
| -class ContentSettingBubbleModel; |
| - |
| -namespace content { |
| -class WebContents; |
| -} |
| - |
| -namespace views { |
| -class TextButton; |
| -class RadioButton; |
| -} |
| - |
| -// ContentSettingBubbleContents is used when the user turns on different kinds |
| -// of content blocking (e.g. "block images"). When viewing a page with blocked |
| -// content, icons appear in the omnibox corresponding to the content types that |
| -// were blocked, and the user can click one to get a bubble hosting a few |
| -// controls. This class provides the content of that bubble. In general, |
| -// these bubbles typically have a title, a pair of radio buttons for toggling |
| -// the blocking settings for the current site, a close button, and a link to |
| -// get to a more comprehensive settings management dialog. A few types have |
| -// more or fewer controls than this. |
| -class ContentSettingBubbleContents : public views::BubbleDelegateView, |
| - public views::ButtonListener, |
| - public views::LinkListener, |
| - public content::NotificationObserver { |
| - public: |
| - ContentSettingBubbleContents( |
| - ContentSettingBubbleModel* content_setting_bubble_model, |
| - content::WebContents* web_contents, |
| - views::View* anchor_view, |
| - views::BubbleBorder::ArrowLocation arrow_location); |
| - virtual ~ContentSettingBubbleContents(); |
| - |
| - virtual gfx::Size GetPreferredSize() OVERRIDE; |
| - |
| - protected: |
| - // views::BubbleDelegateView: |
| - virtual void Init() OVERRIDE; |
| - |
| - private: |
| - class Favicon; |
| - |
| - typedef std::map<views::Link*, int> PopupLinks; |
| - |
| - // views::ButtonListener: |
| - virtual void ButtonPressed(views::Button* sender, |
| - const ui::Event& event) OVERRIDE; |
| - |
| - // views::LinkListener: |
| - virtual void LinkClicked(views::Link* source, int event_flags) OVERRIDE; |
| - |
| - // content::NotificationObserver: |
| - virtual void Observe(int type, |
| - const content::NotificationSource& source, |
| - const content::NotificationDetails& details) OVERRIDE; |
| - |
| - // Provides data for this bubble. |
| - scoped_ptr<ContentSettingBubbleModel> content_setting_bubble_model_; |
| - |
| - // The active web contents. |
| - content::WebContents* web_contents_; |
| - |
| - // A registrar for listening for WEB_CONTENTS_DESTROYED notifications. |
| - content::NotificationRegistrar registrar_; |
| - |
| - // Some of our controls, so we can tell what's been clicked when we get a |
| - // message. |
| - PopupLinks popup_links_; |
| - typedef std::vector<views::RadioButton*> RadioGroup; |
| - RadioGroup radio_group_; |
| - views::Link* custom_link_; |
| - views::Link* manage_link_; |
| - views::TextButton* close_button_; |
| - |
| - DISALLOW_IMPLICIT_CONSTRUCTORS(ContentSettingBubbleContents); |
| -}; |
| - |
| -#endif // CHROME_BROWSER_UI_VIEWS_CONTENT_SETTING_BUBBLE_CONTENTS_H_ |
| +// Copyright (c) 2011 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_UI_VIEWS_CONTENT_SETTING_BUBBLE_CONTENTS_H_ |
| +#define CHROME_BROWSER_UI_VIEWS_CONTENT_SETTING_BUBBLE_CONTENTS_H_ |
| + |
| +#include <map> |
| + |
| +#include "base/basictypes.h" |
| +#include "base/compiler_specific.h" |
| +#include "chrome/common/content_settings_types.h" |
| +#include "content/public/browser/notification_observer.h" |
| +#include "content/public/browser/notification_registrar.h" |
| +#include "content/public/common/media_stream_request.h" |
| +#include "ui/views/bubble/bubble_delegate.h" |
| +#include "ui/views/controls/button/button.h" |
| +#include "ui/views/controls/button/menu_button_listener.h" |
| +#include "ui/views/controls/link_listener.h" |
| + |
| +class ContentSettingBubbleModel; |
| +class ContentSettingMediaMenuModel; |
| +class Profile; |
| + |
| +namespace content { |
| +class WebContents; |
| +} |
| + |
| +namespace ui { |
| +class SimpleMenuModel; |
| +} |
| + |
| +namespace views { |
| +class MenuButton; |
| +class MenuRunner; |
| +class TextButton; |
| +class RadioButton; |
| +} |
| + |
| +// ContentSettingBubbleContents is used when the user turns on different kinds |
| +// of content blocking (e.g. "block images"). When viewing a page with blocked |
| +// content, icons appear in the omnibox corresponding to the content types that |
| +// were blocked, and the user can click one to get a bubble hosting a few |
| +// controls. This class provides the content of that bubble. In general, |
| +// these bubbles typically have a title, a pair of radio buttons for toggling |
| +// the blocking settings for the current site, a close button, and a link to |
| +// get to a more comprehensive settings management dialog. A few types have |
| +// more or fewer controls than this. |
| +class ContentSettingBubbleContents |
| + : public views::BubbleDelegateView, |
| + public views::ButtonListener, |
| + public views::LinkListener, |
| + public views::MenuButtonListener, |
| + public content::NotificationObserver { |
| + public: |
| + ContentSettingBubbleContents( |
| + ContentSettingBubbleModel* content_setting_bubble_model, |
| + Profile* profile, |
| + content::WebContents* web_contents, |
| + views::View* anchor_view, |
| + views::BubbleBorder::ArrowLocation arrow_location); |
| + virtual ~ContentSettingBubbleContents(); |
| + |
| + virtual gfx::Size GetPreferredSize() OVERRIDE; |
| + |
| + // Callback to allow ContentSettingMediaMenuModel to update the menu label. |
| + void UpdateMenuLabel(content::MediaStreamType type, |
| + const std::string& label); |
| + |
| + protected: |
| + // views::BubbleDelegateView: |
| + virtual void Init() OVERRIDE; |
| + |
| + private: |
| + class Favicon; |
| + |
| + typedef std::map<views::Link*, int> PopupLinks; |
| + |
| + struct MediaMenuParts { |
|
Peter Kasting
2013/02/06 22:11:18
Does this need to be defined here? Seems like it
no longer working on chromium
2013/02/07 16:25:19
Done.
|
| + MediaMenuParts(content::MediaStreamType type); |
| + ~MediaMenuParts(); |
| + |
| + content::MediaStreamType type; |
| + scoped_ptr<ui::SimpleMenuModel> menu_model; |
| + |
| + private: |
| + DISALLOW_COPY_AND_ASSIGN(MediaMenuParts); |
| + }; |
| + // A map from a views::MenuButton* to a MediaMenuParts*. MediaMenuParts struct |
| + // is used to store the UI members that a media menu owns. |
|
Peter Kasting
2013/02/06 22:11:18
Nit: First sentence is unnecessary since it merely
no longer working on chromium
2013/02/07 16:25:19
Done.
|
| + typedef std::map<views::MenuButton*, MediaMenuParts*> MediaMenuPartsMap; |
| + |
| + // views::ButtonListener: |
| + virtual void ButtonPressed(views::Button* sender, |
| + const ui::Event& event) OVERRIDE; |
| + |
| + // views::LinkListener: |
| + virtual void LinkClicked(views::Link* source, int event_flags) OVERRIDE; |
| + |
| + // views::MenuButtonListener interface. |
|
Peter Kasting
2013/02/06 22:11:18
Nit: Use "// Base class:" like the other comments
no longer working on chromium
2013/02/07 16:25:19
Done.
|
| + virtual void OnMenuButtonClicked(views::View* source, |
| + const gfx::Point& point) OVERRIDE; |
| + |
| + // content::NotificationObserver: |
| + virtual void Observe(int type, |
| + const content::NotificationSource& source, |
| + const content::NotificationDetails& details) OVERRIDE; |
| + |
| + // Provides data for this bubble. |
| + scoped_ptr<ContentSettingBubbleModel> content_setting_bubble_model_; |
| + |
| + // The active profile. |
|
Peter Kasting
2013/02/06 22:11:18
Do we need to take this as a constructor arg and s
no longer working on chromium
2013/02/07 16:25:19
Done.
|
| + Profile* profile_; |
| + |
| + // The active web contents. |
| + content::WebContents* web_contents_; |
| + |
| + // A registrar for listening for WEB_CONTENTS_DESTROYED notifications. |
| + content::NotificationRegistrar registrar_; |
| + |
| + // Some of our controls, so we can tell what's been clicked when we get a |
| + // message. |
| + PopupLinks popup_links_; |
| + typedef std::vector<views::RadioButton*> RadioGroup; |
| + RadioGroup radio_group_; |
| + views::Link* custom_link_; |
| + views::Link* manage_link_; |
| + views::TextButton* close_button_; |
| + scoped_ptr<views::MenuRunner> menu_runner_; |
| + MediaMenuPartsMap media_menus_; |
| + |
| + DISALLOW_IMPLICIT_CONSTRUCTORS(ContentSettingBubbleContents); |
| +}; |
| + |
| +#endif // CHROME_BROWSER_UI_VIEWS_CONTENT_SETTING_BUBBLE_CONTENTS_H_ |