Home | History | Annotate | Download | only in autofill
      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_NOTIFICATION_CONTROLLER_H_
      6 #define CHROME_BROWSER_UI_COCOA_AUTOFILL_AUTOFILL_NOTIFICATION_CONTROLLER_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 #include "url/gurl.h"
     14 
     15 @class AutofillTooltipController;
     16 @class HyperlinkTextView;
     17 
     18 namespace autofill {
     19 class AutofillDialogViewDelegate;
     20 }
     21 
     22 // Contains a single notification for requestAutocomplete dialog.
     23 @interface AutofillNotificationController :
     24     NSViewController<AutofillLayout, NSTextViewDelegate> {
     25  @private
     26   // Text view for label.
     27   base::scoped_nsobject<HyperlinkTextView> textview_;
     28 
     29   // Optional checkbox.
     30   base::scoped_nsobject<NSButton> checkbox_;
     31 
     32   // Optional tooltip icon.
     33   base::scoped_nsobject<AutofillTooltipController> tooltipController_;
     34 
     35   // Optional link target.
     36   GURL linkURL_;
     37 
     38   // Notification type.
     39   autofill::DialogNotification::Type notificationType_;
     40 
     41   // Main delegate for the dialog. Weak, owns dialog.
     42   autofill::AutofillDialogViewDelegate* delegate_;
     43 }
     44 
     45 @property(nonatomic, readonly) NSTextView* textview;
     46 @property(nonatomic, readonly) NSButton* checkbox;
     47 @property(nonatomic, readonly) NSView* tooltipView;
     48 
     49 // Designated initializer. Initializes the controller as specified by
     50 // |notification|.
     51 - (id)initWithNotification:(const autofill::DialogNotification*)notification
     52                   delegate:(autofill::AutofillDialogViewDelegate*)delegate;
     53 
     54 // Displays arrow on top of notification if set to YES. |anchorView| determines
     55 // the arrow position - the tip of the arrow is centered on the horizontal
     56 // midpoint of the anchorView.
     57 - (void)setHasArrow:(BOOL)hasArrow withAnchorView:(NSView*)anchorView;
     58 
     59 // Indicates if the controller draws an arrow.
     60 - (BOOL)hasArrow;
     61 
     62 // Compute preferred size for given width.
     63 - (NSSize)preferredSizeForWidth:(CGFloat)width;
     64 
     65 - (IBAction)checkboxClicked:(id)sender;
     66 
     67 @end
     68 
     69 #endif  // CHROME_BROWSER_UI_COCOA_AUTOFILL_AUTOFILL_NOTIFICATION_CONTROLLER_H_
     70