| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CHROME_BROWSER_UI_VIEWS_PASSWORDS_MANAGE_PASSWORD_ITEM_VIEW_H_ | 5 #ifndef CHROME_BROWSER_UI_VIEWS_PASSWORDS_MANAGE_PASSWORD_ITEM_VIEW_H_ |
| 6 #define CHROME_BROWSER_UI_VIEWS_PASSWORDS_MANAGE_PASSWORD_ITEM_VIEW_H_ | 6 #define CHROME_BROWSER_UI_VIEWS_PASSWORDS_MANAGE_PASSWORD_ITEM_VIEW_H_ |
| 7 | 7 |
| 8 #include "chrome/browser/ui/views/passwords/manage_passwords_bubble_view.h" | |
| 9 #include "components/autofill/core/common/password_form.h" | 8 #include "components/autofill/core/common/password_form.h" |
| 10 #include "components/password_manager/core/common/password_manager_ui.h" | 9 #include "components/password_manager/core/common/password_manager_ui.h" |
| 10 #include "ui/views/view.h" |
| 11 | 11 |
| 12 class ManagePasswordsBubbleModel; | 12 class ManagePasswordsBubbleModel; |
| 13 | 13 |
| 14 namespace views { | |
| 15 class GridLayout; | |
| 16 class ImageButton; | |
| 17 } | |
| 18 | |
| 19 // A custom view for credentials which allows the management of the specific | 14 // A custom view for credentials which allows the management of the specific |
| 20 // credentials. The view has three distinct states: | 15 // credentials. The view has three distinct states: |
| 21 // | 16 // |
| 22 // * Present credentials to the user which she may choose to save. | 17 // * Present credentials to the user which she may choose to save. |
| 23 // * Present already-saved credentials to the user for management. | 18 // * Present already-saved credentials to the user for management. |
| 24 // * Offer the user the ability to undo a deletion action. | 19 // * Offer the user the ability to undo a deletion action. |
| 25 // | 20 // |
| 26 // The ManagePasswordItemView serves as a container for a single view | 21 // The ManagePasswordItemView serves as a container for a single view |
| 27 // representing one of these states. | 22 // representing one of these states. |
| 28 class ManagePasswordItemView : public views::View { | 23 class ManagePasswordItemView : public views::View { |
| 29 public: | 24 public: |
| 30 // Render credentials in two columns: username and password. | |
| 31 class PendingView : public views::View { | |
| 32 public: | |
| 33 explicit PendingView(ManagePasswordItemView* parent); | |
| 34 | |
| 35 private: | |
| 36 virtual ~PendingView(); | |
| 37 }; | |
| 38 | |
| 39 // Render credentials in three columns: username, password, and delete. | |
| 40 class ManageView : public views::View, public views::ButtonListener { | |
| 41 public: | |
| 42 explicit ManageView(ManagePasswordItemView* parent); | |
| 43 | |
| 44 private: | |
| 45 virtual ~ManageView(); | |
| 46 | |
| 47 // views::ButtonListener: | |
| 48 virtual void ButtonPressed(views::Button* sender, | |
| 49 const ui::Event& event) OVERRIDE; | |
| 50 | |
| 51 views::ImageButton* delete_button_; | |
| 52 ManagePasswordItemView* parent_; | |
| 53 }; | |
| 54 | |
| 55 // Render a notification to the user that a password has been removed, and | |
| 56 // offer an undo link. | |
| 57 class UndoView : public views::View, public views::LinkListener { | |
| 58 public: | |
| 59 explicit UndoView(ManagePasswordItemView* parent); | |
| 60 | |
| 61 private: | |
| 62 virtual ~UndoView(); | |
| 63 | |
| 64 // views::LinkListener: | |
| 65 virtual void LinkClicked(views::Link* source, int event_flags) OVERRIDE; | |
| 66 | |
| 67 views::Link* undo_link_; | |
| 68 ManagePasswordItemView* parent_; | |
| 69 }; | |
| 70 | |
| 71 ManagePasswordItemView( | 25 ManagePasswordItemView( |
| 72 ManagePasswordsBubbleModel* manage_passwords_bubble_model, | 26 ManagePasswordsBubbleModel* manage_passwords_bubble_model, |
| 73 autofill::PasswordForm password_form, | 27 autofill::PasswordForm password_form, |
| 74 password_manager::ui::PasswordItemPosition position); | 28 password_manager::ui::PasswordItemPosition position); |
| 75 | 29 |
| 76 private: | 30 private: |
| 31 class ManageView; |
| 32 class PendingView; |
| 33 class UndoView; |
| 34 |
| 77 virtual ~ManagePasswordItemView(); | 35 virtual ~ManagePasswordItemView(); |
| 78 | 36 |
| 79 void NotifyClickedDelete(); | 37 void NotifyClickedDelete(); |
| 80 void NotifyClickedUndo(); | 38 void NotifyClickedUndo(); |
| 81 | 39 |
| 82 // Changes the views according to the state of |delete_password_|. | 40 // Changes the views according to the state of |delete_password_|. |
| 83 void Refresh(); | 41 void Refresh(); |
| 84 | 42 |
| 85 ManagePasswordsBubbleModel* model_; | 43 ManagePasswordsBubbleModel* model_; |
| 86 autofill::PasswordForm password_form_; | 44 autofill::PasswordForm password_form_; |
| 87 bool delete_password_; | 45 bool delete_password_; |
| 88 | 46 |
| 89 DISALLOW_COPY_AND_ASSIGN(ManagePasswordItemView); | 47 DISALLOW_COPY_AND_ASSIGN(ManagePasswordItemView); |
| 90 }; | 48 }; |
| 91 | 49 |
| 92 #endif // CHROME_BROWSER_UI_VIEWS_PASSWORDS_MANAGE_PASSWORD_ITEM_VIEW_H_ | 50 #endif // CHROME_BROWSER_UI_VIEWS_PASSWORDS_MANAGE_PASSWORD_ITEM_VIEW_H_ |
| OLD | NEW |