1f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
2f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
3f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// found in the LICENSE file.
4f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
5f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#ifndef CHROME_BROWSER_UI_VIEWS_PASSWORDS_MANAGE_PASSWORD_ITEM_VIEW_H_
6f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#define CHROME_BROWSER_UI_VIEWS_PASSWORDS_MANAGE_PASSWORD_ITEM_VIEW_H_
7f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
8f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "components/autofill/core/common/password_form.h"
96e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#include "components/password_manager/core/common/password_manager_ui.h"
101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci#include "ui/views/view.h"
11f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
120529e5d033099cbfc42635f6f6183833b09dff6eBen Murdochclass ManagePasswordsBubbleModel;
130529e5d033099cbfc42635f6f6183833b09dff6eBen Murdoch
14f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)// A custom view for credentials which allows the management of the specific
15c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch// credentials. The view has three distinct states:
16c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch//
17c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch// * Present credentials to the user which she may choose to save.
18c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch// * Present already-saved credentials to the user for management.
19c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch// * Offer the user the ability to undo a deletion action.
20c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch//
21c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch// The ManagePasswordItemView serves as a container for a single view
22c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch// representing one of these states.
23c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdochclass ManagePasswordItemView : public views::View {
24f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) public:
25f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  ManagePasswordItemView(
26f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)      ManagePasswordsBubbleModel* manage_passwords_bubble_model,
271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci      const autofill::PasswordForm& password_form,
286e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)      password_manager::ui::PasswordItemPosition position);
29f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
30f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) private:
311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  class ManageView;
321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  class PendingView;
331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci  class UndoView;
341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
35f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  virtual ~ManagePasswordItemView();
36f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
37c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch  void NotifyClickedDelete();
38c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch  void NotifyClickedUndo();
39c5cede9ae108bb15f6b7a8aea21c7e1fefa2834cBen Murdoch
40f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  // Changes the views according to the state of |delete_password_|.
41f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  void Refresh();
42f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
43010d83a9304c5a91596085d917d248abff47903aTorne (Richard Coles)  ManagePasswordsBubbleModel* model_;
44f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  autofill::PasswordForm password_form_;
45f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  bool delete_password_;
46f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
47f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)  DISALLOW_COPY_AND_ASSIGN(ManagePasswordItemView);
48f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)};
49f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)
50f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#endif  // CHROME_BROWSER_UI_VIEWS_PASSWORDS_MANAGE_PASSWORD_ITEM_VIEW_H_
51