cookie_info_view.h revision ca12bfac764ba476d6cd062bf1dde12cc64c3f40
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_COOKIE_INFO_VIEW_H_ 6#define CHROME_BROWSER_UI_VIEWS_COOKIE_INFO_VIEW_H_ 7 8#include <string> 9#include <vector> 10 11#include "base/basictypes.h" 12#include "base/compiler_specific.h" 13#include "base/strings/string16.h" 14#include "ui/views/view.h" 15 16namespace views { 17class GridLayout; 18class Label; 19class Textfield; 20} 21 22namespace net { 23class CanonicalCookie; 24} 25 26/////////////////////////////////////////////////////////////////////////////// 27// CookieInfoView 28// 29// Responsible for displaying a tabular grid of Cookie information. 30class CookieInfoView : public views::View { 31 public: 32 CookieInfoView(); 33 virtual ~CookieInfoView(); 34 35 // Update the display from the specified CookieNode. 36 void SetCookie(const std::string& domain, 37 const net::CanonicalCookie& cookie_node); 38 39 // Update the display from the specified cookie string. 40 void SetCookieString(const GURL& url, const std::string& cookie_line); 41 42 // Clears the cookie display to indicate that no or multiple cookies are 43 // selected. 44 void ClearCookieDisplay(); 45 46 // Enables or disables the cookie property text fields. 47 void EnableCookieDisplay(bool enabled); 48 49 protected: 50 // views::View: 51 virtual void ViewHierarchyChanged( 52 const ViewHierarchyChangedDetails& details) OVERRIDE; 53 54 private: 55 // Layout helper routines. 56 void AddLabelRow(int layout_id, views::GridLayout* layout, 57 views::View* label, views::View* value); 58 void AddControlRow(int layout_id, views::GridLayout* layout, 59 views::View* label, views::View* control); 60 61 // Sets up the view layout. 62 void Init(); 63 64 // Individual property labels 65 views::Label* name_label_; 66 views::Textfield* name_value_field_; 67 views::Label* content_label_; 68 views::Textfield* content_value_field_; 69 views::Label* domain_label_; 70 views::Textfield* domain_value_field_; 71 views::Label* path_label_; 72 views::Textfield* path_value_field_; 73 views::Label* send_for_label_; 74 views::Textfield* send_for_value_field_; 75 views::Label* created_label_; 76 views::Textfield* created_value_field_; 77 views::Label* expires_label_; 78 views::Textfield* expires_value_field_; 79 80 DISALLOW_COPY_AND_ASSIGN(CookieInfoView); 81}; 82 83#endif // CHROME_BROWSER_UI_VIEWS_COOKIE_INFO_VIEW_H_ 84