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
3// found in the LICENSE file.
4
5#ifndef CHROME_BROWSER_UI_COCOA_AUTOFILL_AUTOFILL_SUGGESTION_CONTAINER_H_
6#define CHROME_BROWSER_UI_COCOA_AUTOFILL_AUTOFILL_SUGGESTION_CONTAINER_H_
7
8#import <Cocoa/Cocoa.h>
9
10#include "base/mac/scoped_nsobject.h"
11#import "chrome/browser/ui/cocoa/autofill/autofill_layout.h"
12
13namespace autofill {
14  class AutofillDialogViewDelegate;
15}
16
17@class AutofillTextField;
18
19// Container for the data suggested for a particular input section.
20@interface AutofillSuggestionContainer : NSViewController<AutofillLayout> {
21 @private
22  // The spacer at the top of the suggestion.
23  base::scoped_nsobject<NSBox> spacer_;
24
25  // The label that holds the suggestion description text.
26  base::scoped_nsobject<NSTextView> label_;
27
28  // The input set by ShowTextfield.
29  base::scoped_nsobject<AutofillTextField> inputField_;
30
31  autofill::AutofillDialogViewDelegate* delegate_;  // Not owned.
32}
33
34// Auxiliary textfield. See showInputField: for details.
35@property (readonly, nonatomic) AutofillTextField* inputField;
36
37// Set the main suggestion text and the corresponding |icon|. The text is set to
38// |verticallyCompactText| if that can fit without wrapping. Otherwise, the text
39// is set to |horizontallyCompactText|, with possibly additional wrapping
40// imposed by the dialog's size constraints.
41// NOTE: The implementation assumes that all other elements' sizes are already
42// known. Hence, -showInputField:withIcon: should be called prior to calling
43// this method, if it is going to be called at all.
44- (void)
45    setSuggestionWithVerticallyCompactText:(NSString*)verticallyCompactText
46                   horizontallyCompactText:(NSString*)horizontallyCompactText
47                                      icon:(NSImage*)icon
48                                  maxWidth:(CGFloat)maxWidth;
49
50// Shows an auxiliary textfield to the right of the suggestion icon and
51// text. This is currently only used to show a CVC field for the CC section.
52- (void)showInputField:(NSString*)text withIcon:(NSImage*)icon;
53
54@end
55
56#endif  // CHROME_BROWSER_UI_COCOA_AUTOFILL_AUTOFILL_SUGGESTION_CONTAINER_H_
57