collected_cookies_views.h revision 2385ea399aae016c0806a4f9ef3c9cfe3d2a39df
1// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#ifndef CHROME_BROWSER_UI_VIEWS_COLLECTED_COOKIES_VIEWS_H_ 6#define CHROME_BROWSER_UI_VIEWS_COLLECTED_COOKIES_VIEWS_H_ 7 8#include "base/compiler_specific.h" 9#include "chrome/common/content_settings.h" 10#include "content/public/browser/notification_observer.h" 11#include "content/public/browser/notification_registrar.h" 12#include "ui/views/controls/button/button.h" 13#include "ui/views/controls/tabbed_pane/tabbed_pane_listener.h" 14#include "ui/views/controls/tree/tree_view_controller.h" 15#include "ui/views/window/dialog_delegate.h" 16 17class CookieInfoView; 18class CookiesTreeModel; 19class InfobarView; 20 21namespace content { 22class WebContents; 23} 24 25namespace views { 26class Label; 27class LabelButton; 28class TreeView; 29class Widget; 30} 31 32// This is the Views implementation of the collected cookies dialog. 33// 34// CollectedCookiesViews is a dialog that displays the allowed and blocked 35// cookies of the current tab contents. To display the dialog, invoke 36// ShowCollectedCookiesDialog() on the delegate of the WebContents's 37// content settings tab helper. 38class CollectedCookiesViews : public views::DialogDelegateView, 39 public content::NotificationObserver, 40 public views::ButtonListener, 41 public views::TabbedPaneListener, 42 public views::TreeViewController { 43 public: 44 // Use BrowserWindow::ShowCollectedCookiesDialog to show. 45 explicit CollectedCookiesViews(content::WebContents* web_contents); 46 47 // views::DialogDelegate: 48 virtual string16 GetWindowTitle() const OVERRIDE; 49 virtual int GetDialogButtons() const OVERRIDE; 50 virtual string16 GetDialogButtonLabel(ui::DialogButton button) const OVERRIDE; 51 virtual void DeleteDelegate() OVERRIDE; 52 virtual bool Cancel() OVERRIDE; 53 virtual views::NonClientFrameView* CreateNonClientFrameView( 54 views::Widget* widget) OVERRIDE; 55 virtual ui::ModalType GetModalType() const OVERRIDE; 56 57 // views::ButtonListener: 58 virtual void ButtonPressed(views::Button* sender, 59 const ui::Event& event) OVERRIDE; 60 61 // views::TabbedPaneListener: 62 virtual void TabSelectedAt(int index) OVERRIDE; 63 64 // views::TreeViewController: 65 virtual void OnTreeViewSelectionChanged(views::TreeView* tree_view) OVERRIDE; 66 67 // views::View: 68 virtual void ViewHierarchyChanged( 69 const ViewHierarchyChangedDetails& details) OVERRIDE; 70 71 private: 72 virtual ~CollectedCookiesViews(); 73 74 void Init(); 75 76 views::View* CreateAllowedPane(); 77 78 views::View* CreateBlockedPane(); 79 80 // Creates and returns a containing ScrollView around the given tree view. 81 views::View* CreateScrollView(views::TreeView* pane); 82 83 void EnableControls(); 84 85 void ShowCookieInfo(); 86 87 void AddContentException(views::TreeView* tree_view, ContentSetting setting); 88 89 // content::NotificationObserver: 90 virtual void Observe(int type, 91 const content::NotificationSource& source, 92 const content::NotificationDetails& details) OVERRIDE; 93 94 content::NotificationRegistrar registrar_; 95 96 views::Widget* window_; 97 98 // The web contents. 99 content::WebContents* web_contents_; 100 101 // Assorted views. 102 views::Label* allowed_label_; 103 views::Label* blocked_label_; 104 105 views::TreeView* allowed_cookies_tree_; 106 views::TreeView* blocked_cookies_tree_; 107 108 views::LabelButton* block_allowed_button_; 109 views::LabelButton* allow_blocked_button_; 110 views::LabelButton* for_session_blocked_button_; 111 112 scoped_ptr<CookiesTreeModel> allowed_cookies_tree_model_; 113 scoped_ptr<CookiesTreeModel> blocked_cookies_tree_model_; 114 115 CookieInfoView* cookie_info_view_; 116 117 InfobarView* infobar_; 118 119 bool status_changed_; 120 121 DISALLOW_COPY_AND_ASSIGN(CollectedCookiesViews); 122}; 123 124#endif // CHROME_BROWSER_UI_VIEWS_COLLECTED_COOKIES_VIEWS_H_ 125