OLD | NEW |
| (Empty) |
1 // Copyright (c) 2013 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_COCOA_AUTOFILL_AUTOFILL_DETAILS_CONTAINER_H_ | |
6 #define CHROME_BROWSER_UI_COCOA_AUTOFILL_AUTOFILL_DETAILS_CONTAINER_H_ | |
7 | |
8 #import <Cocoa/Cocoa.h> | |
9 | |
10 #include "base/mac/scoped_nsobject.h" | |
11 #include "chrome/browser/ui/autofill/autofill_dialog_types.h" | |
12 #import "chrome/browser/ui/cocoa/autofill/autofill_layout.h" | |
13 #import "chrome/browser/ui/cocoa/autofill/autofill_section_container.h" | |
14 | |
15 | |
16 namespace autofill { | |
17 class AutofillDialogViewDelegate; | |
18 } | |
19 | |
20 @class InfoBubbleView; | |
21 @class AutofillBubbleController; | |
22 | |
23 // UI controller for details for current payment instrument. | |
24 @interface AutofillDetailsContainer | |
25 : NSViewController<AutofillLayout, | |
26 AutofillValidationDisplay> { | |
27 @private | |
28 // Scroll view containing all detail sections. | |
29 base::scoped_nsobject<NSScrollView> scrollView_; | |
30 | |
31 // The individual detail sections. | |
32 base::scoped_nsobject<NSMutableArray> details_; | |
33 | |
34 // An info bubble to display validation errors. | |
35 base::scoped_nsobject<InfoBubbleView> errorBubble_; | |
36 | |
37 AutofillBubbleController* errorBubbleController_; | |
38 | |
39 // The view the current error bubble is anchored to. | |
40 NSView* errorBubbleAnchorView_; | |
41 | |
42 autofill::AutofillDialogViewDelegate* delegate_; // Not owned. | |
43 } | |
44 | |
45 // Designated initializer. | |
46 - (id)initWithDelegate:(autofill::AutofillDialogViewDelegate*)delegate; | |
47 | |
48 // Retrieve the container for the specified |section|. | |
49 - (AutofillSectionContainer*)sectionForId:(autofill::DialogSection)section; | |
50 | |
51 // Called when |errorBubble_| needs to be updated. | |
52 - (void)updateErrorBubble; | |
53 | |
54 // Called when the delegate-maintained suggestions model has changed. | |
55 - (void)modelChanged; | |
56 | |
57 // Validate every visible details section. | |
58 - (BOOL)validate; | |
59 | |
60 // Find the first visible and invalid user input field. Returns nil if no field | |
61 // is found. Looks at both direct input fields and input fields in suggestions. | |
62 - (NSControl*)firstInvalidField; | |
63 | |
64 // Finds the first visible user input field. Returns nil if no field is found. | |
65 // Looks at both direct input fields and input fields in suggestions. | |
66 - (NSControl*)firstVisibleField; | |
67 | |
68 // Positions the scrollview so that given |field| is visible. | |
69 - (void)scrollToView:(NSView*)field; | |
70 | |
71 @end | |
72 | |
73 #endif // CHROME_BROWSER_UI_COCOA_AUTOFILL_AUTOFILL_DETAILS_CONTAINER_H_ | |
OLD | NEW |