Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1400)

Unified Diff: chrome/browser/ui/views/website_settings_popup_view.h

Issue 10456017: Add WebsiteSettingsUI for Windows (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: " Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/views/website_settings_popup_view.h
diff --git a/chrome/browser/ui/views/website_settings_popup_view.h b/chrome/browser/ui/views/website_settings_popup_view.h
new file mode 100644
index 0000000000000000000000000000000000000000..0afc861f79dcd444d5c78b8f827fbbea3a7effad
--- /dev/null
+++ b/chrome/browser/ui/views/website_settings_popup_view.h
@@ -0,0 +1,146 @@
+// Copyright (c) 2012 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_WEBSITE_SETTINGS_POPUP_VIEW_H_
+#define CHROME_BROWSER_UI_VIEWS_WEBSITE_SETTINGS_POPUP_VIEW_H_
+#pragma once
+
+#include "base/basictypes.h"
+#include "base/compiler_specific.h"
+#include "base/memory/scoped_ptr.h"
+#include "base/memory/scoped_vector.h"
+#include "chrome/browser/ui/website_settings/website_settings_ui.h"
+#include "ui/views/bubble/bubble_delegate.h"
+#include "ui/views/controls/combobox/combobox_listener.h"
+#include "ui/views/controls/link_listener.h"
+#include "ui/views/controls/tabbed_pane/tabbed_pane_listener.h"
+
+class GURL;
+class PopupHeader;
+class Profile;
+class TabContents;
+
+namespace content {
+struct SSLStatus;
+}
+
+namespace views {
+class Combobox;
+class Link;
+class Label;
+class TabbedPane;
+class View;
+}
+
+namespace website_settings {
+class PermissionComboboxModel;
+}
+
+// The views implementation of the website settings UI.
+class WebsiteSettingsPopupView : public WebsiteSettingsUI,
+ public views::BubbleDelegateView,
+ public views::ComboboxListener,
+ public views::LinkListener,
+ public views::TabbedPaneListener {
+ public:
+ virtual ~WebsiteSettingsPopupView();
+
+ static void ShowPopup(views::View* anchor_view,
+ Profile* profile,
+ TabContents* tab_contents,
+ const GURL& gurl,
+ const content::SSLStatus& ssl);
+
+ private:
+ WebsiteSettingsPopupView(views::View* anchor_view,
+ Profile* profile,
+ TabContents* tab_contents,
+ const GURL& url,
+ const content::SSLStatus& ssl);
+
+ // WebsiteSettingsUI implementations.
+ virtual void SetCookieInfo(const CookieInfoList& cookie_info_list) OVERRIDE;
+ virtual void SetPermissionInfo(
+ const PermissionInfoList& permission_info_list) OVERRIDE;
+ virtual void SetIdentityInfo(const IdentityInfo& identity_info) OVERRIDE;
+ virtual void SetFirstVisit(const string16& first_visit) OVERRIDE;
+
+ // views::View implementation.
+ virtual gfx::Size GetPreferredSize() OVERRIDE;
+
+ // views::BubbleDelegate implementations.
+ virtual gfx::Rect GetAnchorRect() OVERRIDE;
+
+ // views::ComboboxListener implementation.
+ virtual void OnSelectedIndexChanged(views::Combobox* combobox) OVERRIDE;
+
+ // LinkListener implementation.
+ virtual void LinkClicked(views::Link* source, int event_flags) OVERRIDE;
+
+ // views::TabbedPaneListener implementations.
+ virtual void TabSelectedAt(int index) OVERRIDE;
+
+ // Each tab contains several sections with a |headline| followed by the
+ // section |contents| and an optional |link|. This method creates a section
+ // for the given |headline|, |contents| and |link|. |link| can be NULL if the
+ // section should not contain a link.
+ views::View* CreateSection(const string16& headline,
+ views::View* contents,
+ views::Link* link) WARN_UNUSED_RESULT;
+
+ // Creates a single row for the "Permissions" section from the "Permissions"
+ // tab. Such a row contains a |permissions_label| with the name of the
+ // permission and a |combobox| that allows to select setting for the given
+ // permission. The ownership of the returned view is transferred to the
+ // caller.
+ views::View* CreatePermissionRow(
+ views::Label* permission_label,
+ views::Combobox* combobox) WARN_UNUSED_RESULT;
+
+ // Creates the contents of the "Permissions" tab. The ownership of the
+ // returned view is transferred to the caller.
+ views::View* CreatePermissionsTab() WARN_UNUSED_RESULT;
+
+ // Creates the contents of the "Identity" tab. The ownership of the returned
+ // view is transferred to the caller.
+ views::View* CreateIdentityTab() WARN_UNUSED_RESULT;
+
+ // Creates a multiline text label that is initialized with the given |text|.
+ // The ownership of the returned label is transferred to the caller.
+ views::Label* CreateTextLabel(const string16& text) WARN_UNUSED_RESULT;
+
+ // The tab contents of the current tab. The popup can't live longer than a
+ // tab.
+ TabContents* tab_contents_; // Weak pointer.
+
+ // The presenter that controlls the Website Settings UI.
+ scoped_ptr<WebsiteSettings> presenter_;
+
+ // The view |PopupHeader| is owned by the popup contents view.
+ PopupHeader* header_;
+
+ // The |TabbedPane| that contains the tabs of the Website Settings UI.
+ views::TabbedPane* tabbed_pane_;
+
+ // The view that contains the contents of the "Cookies and Site data" section
+ // from the "Permissions" tab.
+ views::View* site_data_content_;
+ // The link that opend the "Cookies" dialog.
+ views::Link* cookie_dialog_link_;
+ // The view that contains the contents of the "Permissions" section from the
+ // "Permissions" tab.
+ views::View* permissions_content_;
+
+ views::Label* identity_info_text_;
+ views::Label* connection_info_text_;
+ views::Label* page_info_text_;
+
+ // A |ComboboxModel| is not owned by a |Combobox|. Therefor the popup owns
+ // all |PermissionComboboxModels| and deletes them when it is destroyed.
+ ScopedVector<website_settings::PermissionComboboxModel> combobox_models_;
+
+ DISALLOW_COPY_AND_ASSIGN(WebsiteSettingsPopupView);
+};
+
+#endif // CHROME_BROWSER_UI_VIEWS_WEBSITE_SETTINGS_POPUP_VIEW_H_
« no previous file with comments | « chrome/browser/ui/views/frame/browser_view.cc ('k') | chrome/browser/ui/views/website_settings_popup_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698