15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved.
25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file.
45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef CHROME_BROWSER_UI_VIEWS_COOKIE_INFO_VIEW_H_
65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CHROME_BROWSER_UI_VIEWS_COOKIE_INFO_VIEW_H_
75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <string>
95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <vector>
105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/basictypes.h"
125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "base/compiler_specific.h"
13868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)#include "base/strings/string16.h"
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/views/view.h"
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace views {
175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class GridLayout;
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class Label;
195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class Textfield;
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace net {
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class CanonicalCookie;
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)///////////////////////////////////////////////////////////////////////////////
275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// CookieInfoView
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)//  Responsible for displaying a tabular grid of Cookie information.
30ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdochclass CookieInfoView : public views::View {
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public:
32ca12bfac764ba476d6cd062bf1dde12cc64c3f40Ben Murdoch  CookieInfoView();
335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  virtual ~CookieInfoView();
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Update the display from the specified CookieNode.
365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  void SetCookie(const std::string& domain,
375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)                 const net::CanonicalCookie& cookie_node);
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Update the display from the specified cookie string.
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  void SetCookieString(const GURL& url, const std::string& cookie_line);
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Clears the cookie display to indicate that no or multiple cookies are
435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // selected.
445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  void ClearCookieDisplay();
455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Enables or disables the cookie property text fields.
475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  void EnableCookieDisplay(bool enabled);
485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) protected:
505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // views::View:
51a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)  virtual void ViewHierarchyChanged(
52a93a17c8d99d686bd4a1511e5504e5e6cc9fcadfTorne (Richard Coles)      const ViewHierarchyChangedDetails& details) OVERRIDE;
535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) private:
555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Layout helper routines.
561320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  void AddLabelRow(int layout_id,
571320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci                   views::GridLayout* layout,
581320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci                   views::Label* label,
591320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci                   views::Textfield* textfield);
605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Sets up the view layout.
625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  void Init();
635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Individual property labels
655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  views::Label* name_label_;
665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  views::Textfield* name_value_field_;
675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  views::Label* content_label_;
685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  views::Textfield* content_value_field_;
695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  views::Label* domain_label_;
705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  views::Textfield* domain_value_field_;
715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  views::Label* path_label_;
725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  views::Textfield* path_value_field_;
735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  views::Label* send_for_label_;
745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  views::Textfield* send_for_value_field_;
755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  views::Label* created_label_;
765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  views::Textfield* created_value_field_;
775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  views::Label* expires_label_;
785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  views::Textfield* expires_value_field_;
795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(CookieInfoView);
815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif  // CHROME_BROWSER_UI_VIEWS_COOKIE_INFO_VIEW_H_
84