diff options
author | zelidrag@chromium.org <zelidrag@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-01-26 21:00:54 +0000 |
---|---|---|
committer | zelidrag@chromium.org <zelidrag@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-01-26 21:00:54 +0000 |
commit | a592615a53d4c9a75f9dfa07b18b64039eebac48 (patch) | |
tree | 7f459015fc3f6eb7b17c7a2c2fb3557bc6359da1 /chrome/browser/views/cookie_info_view.h | |
parent | 7b0f8e41468fb9cccf9d5304258e6cbe91ccea38 (diff) | |
download | chromium_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.h | 118 |
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_ + |