summaryrefslogtreecommitdiffstats
path: root/chrome/browser/views/cookie_info_view.h
diff options
context:
space:
mode:
authorzelidrag@chromium.org <zelidrag@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-01-26 21:00:54 +0000
committerzelidrag@chromium.org <zelidrag@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-01-26 21:00:54 +0000
commita592615a53d4c9a75f9dfa07b18b64039eebac48 (patch)
tree7f459015fc3f6eb7b17c7a2c2fb3557bc6359da1 /chrome/browser/views/cookie_info_view.h
parent7b0f8e41468fb9cccf9d5304258e6cbe91ccea38 (diff)
downloadchromium_src-a592615a53d4c9a75f9dfa07b18b64039eebac48.zip
chromium_src-a592615a53d4c9a75f9dfa07b18b64039eebac48.tar.gz
chromium_src-a592615a53d4c9a75f9dfa07b18b64039eebac48.tar.bz2
Content Settings dialog and related Options UI changes.
BUG=32719 TEST=none Review URL: http://codereview.chromium.org/554045 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@37153 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/views/cookie_info_view.h')
-rw-r--r--chrome/browser/views/cookie_info_view.h118
1 files changed, 118 insertions, 0 deletions
diff --git a/chrome/browser/views/cookie_info_view.h b/chrome/browser/views/cookie_info_view.h
new file mode 100644
index 0000000..5846146
--- /dev/null
+++ b/chrome/browser/views/cookie_info_view.h
@@ -0,0 +1,118 @@
+// 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_VIEWS_COOKIE_INFO_VIEW_H_
+#define CHROME_BROWSER_VIEWS_COOKIE_INFO_VIEW_H_
+
+#include <string>
+#include <vector>
+
+#include "app/combobox_model.h"
+#include "net/base/cookie_monster.h"
+#include "views/controls/combobox/combobox.h"
+#include "views/view.h"
+
+namespace views {
+class GridLayout;
+class Label;
+class NativeButton;
+class Textfield;
+}
+
+
+///////////////////////////////////////////////////////////////////////////////
+// CookieInfoViewDelegate
+//
+class CookieInfoViewDelegate {
+ public:
+ virtual void ModifyExpireDate(bool session_expire) = 0;
+
+ protected:
+ virtual ~CookieInfoViewDelegate() {}
+};
+
+///////////////////////////////////////////////////////////////////////////////
+// CookieInfoView
+//
+// Responsible for displaying a tabular grid of Cookie information.
+class CookieInfoView : public views::View,
+ public views::Combobox::Listener,
+ public ComboboxModel {
+ public:
+ explicit CookieInfoView(bool editable_expiration_date);
+ virtual ~CookieInfoView();
+
+ // Update the display from the specified CookieNode.
+ void SetCookie(const std::string& domain,
+ const net::CookieMonster::CanonicalCookie& cookie_node);
+
+ // Clears the cookie display to indicate that no or multiple cookies are
+ // selected.
+ void ClearCookieDisplay();
+
+ // Enables or disables the cookie property text fields.
+ void EnableCookieDisplay(bool enabled);
+
+ void set_delegate(CookieInfoViewDelegate* delegate) { delegate_ = delegate; }
+
+ protected:
+ // views::View overrides:
+ virtual void ViewHierarchyChanged(bool is_add,
+ views::View* parent,
+ views::View* child);
+
+ // views::Combobox::Listener override.
+ virtual void ItemChanged(views::Combobox* combo_box,
+ int prev_index,
+ int new_index);
+
+ // ComboboxModel overrides for expires_value_combobox_.
+ virtual int GetItemCount();
+ virtual std::wstring GetItemAt(int index);
+
+ private:
+ // Layout helper routines.
+ void AddLabelRow(int layout_id, views::GridLayout* layout,
+ views::View* label, views::View* value);
+ void AddControlRow(int layout_id, views::GridLayout* layout,
+ views::View* label, views::View* control);
+
+ // Sets up the view layout.
+ void Init();
+
+ // Individual property labels
+ views::Label* name_label_;
+ views::Textfield* name_value_field_;
+ views::Label* content_label_;
+ views::Textfield* content_value_field_;
+ views::Label* domain_label_;
+ views::Textfield* domain_value_field_;
+ views::Label* path_label_;
+ views::Textfield* path_value_field_;
+ views::Label* send_for_label_;
+ views::Textfield* send_for_value_field_;
+ views::Label* created_label_;
+ views::Textfield* created_value_field_;
+ views::Label* expires_label_;
+ views::Textfield* expires_value_field_;
+ views::Combobox* expires_value_combobox_;
+ views::View* expire_view_;
+
+ // Option values for expires_value_combobox_.
+ std::vector<std::wstring> expire_combo_values_;
+
+ // True if expiration date can be edited. In this case we will show
+ // expires_value_combobox_ instead of expires_value_field_. The cookie's
+ // expiration date is editable only this class is used in
+ // CookiesPromptView (alert before cookie is set), in all other cases we
+ // don't let user directly change cookie setting.
+ bool editable_expiration_date_;
+
+ CookieInfoViewDelegate* delegate_;
+
+ DISALLOW_COPY_AND_ASSIGN(CookieInfoView);
+};
+
+#endif // CHROME_BROWSER_VIEWS_COOKIE_INFO_VIEW_H_
+