Home | History | Annotate | Download | only in views
      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 
     16 namespace views {
     17 class GridLayout;
     18 class Label;
     19 class Textfield;
     20 }
     21 
     22 namespace net {
     23 class CanonicalCookie;
     24 }
     25 
     26 ///////////////////////////////////////////////////////////////////////////////
     27 // CookieInfoView
     28 //
     29 //  Responsible for displaying a tabular grid of Cookie information.
     30 class 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::Label* label, views::Textfield* value);
     58 
     59   // Sets up the view layout.
     60   void Init();
     61 
     62   // Individual property labels
     63   views::Label* name_label_;
     64   views::Textfield* name_value_field_;
     65   views::Label* content_label_;
     66   views::Textfield* content_value_field_;
     67   views::Label* domain_label_;
     68   views::Textfield* domain_value_field_;
     69   views::Label* path_label_;
     70   views::Textfield* path_value_field_;
     71   views::Label* send_for_label_;
     72   views::Textfield* send_for_value_field_;
     73   views::Label* created_label_;
     74   views::Textfield* created_value_field_;
     75   views::Label* expires_label_;
     76   views::Textfield* expires_value_field_;
     77 
     78   DISALLOW_COPY_AND_ASSIGN(CookieInfoView);
     79 };
     80 
     81 #endif  // CHROME_BROWSER_UI_VIEWS_COOKIE_INFO_VIEW_H_
     82