| // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CHROME_BROWSER_UI_COCOA_BROWSER_PASSWORD_GENERATION_BUBBLE_CONTROLLER_H_ |
| #define CHROME_BROWSER_UI_COCOA_BROWSER_PASSWORD_GENERATION_BUBBLE_CONTROLLER_H_ |
| |
| #import <Cocoa/Cocoa.h> |
| |
| #import "chrome/browser/ui/cocoa/base_bubble_controller.h" |
| #import "chrome/browser/ui/cocoa/styled_text_field.h" |
| #include "components/autofill/core/common/password_form.h" |
| #include "components/autofill/core/common/password_generation_util.h" |
| |
| namespace autofill { |
| class PasswordGenerator; |
| } |
| |
| namespace content { |
| class RenderViewHost; |
| } |
| |
| class Browser; |
| class PasswordManager; |
| @class PasswordGenerationBubbleController; |
| |
| // Customized text field that is used to display the regenerate icon. |
| @interface PasswordGenerationTextField : StyledTextField { |
| } |
| |
| - (id)initWithFrame:(NSRect)frame |
| withController:(PasswordGenerationBubbleController*)controller |
| normalImage:(NSImage*)normalImage |
| hoverImage:(NSImage*)hoverImage; |
| @end |
| |
| @interface PasswordGenerationBubbleController : |
| BaseBubbleController<NSTextFieldDelegate> { |
| @private |
| // |renderViewHost_| and |passwordManager_| may be nil in testing. |
| content::RenderViewHost* renderViewHost_; |
| PasswordManager* passwordManager_; |
| autofill::PasswordGenerator* passwordGenerator_; |
| autofill::PasswordForm form_; |
| autofill::password_generation::PasswordGenerationActions actions_; |
| |
| PasswordGenerationTextField* textField_; // weak |
| } |
| |
| @property(readonly) PasswordGenerationTextField* textField; |
| |
| - (id)initWithWindow:(NSWindow*)parentWindow |
| anchoredAt:(NSPoint)point |
| renderViewHost:(content::RenderViewHost*)renderViewHost |
| passwordManager:(PasswordManager*)passwordManager |
| usingGenerator:(autofill::PasswordGenerator*)passwordGenerator |
| forForm:(const autofill::PasswordForm&)form; |
| - (void)performLayout; |
| - (IBAction)fillPassword:(id)sender; |
| - (void)regeneratePassword; |
| @end |
| |
| // Testing interfaces |
| |
| @interface PasswordGenerationTextField (ExposedForTesting) |
| - (void)simulateIconClick; |
| @end |
| |
| #endif // CHROME_BROWSER_UI_COCOA_BROWSER_PASSWORD_GENERATION_BUBBLE_CONTROLLER_H_ |