autofill_notification_container.h revision 3240926e260ce088908e02ac07a6cf7b0c0cbf44
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_CONTAINER_H_ 6#define CHROME_BROWSER_UI_COCOA_AUTOFILL_AUTOFILL_NOTIFICATION_CONTAINER_H_ 7 8#import <Cocoa/Cocoa.h> 9 10#include <vector> 11 12#include "base/mac/scoped_nsobject.h" 13#include "base/memory/scoped_ptr.h" 14#import "chrome/browser/ui/cocoa/autofill/autofill_layout.h" 15 16@class AutofillArrowView; 17 18namespace autofill { 19 class DialogNotification; 20 typedef std::vector<DialogNotification> DialogNotifications; 21 class AutofillDialogViewDelegate; 22} 23 24// Container for all notifications shown in requestAutocomplete dialog. 25@interface AutofillNotificationContainer : NSViewController<AutofillLayout> { 26 @private 27 // Array of all AutofillNotificationControllers. 28 base::scoped_nsobject<NSMutableArray> notificationControllers_; 29 30 // View that the arrow is anchored to. Weak. 31 NSView* anchorView_; 32 33 // The notification that the checkbox is associated with. 34 scoped_ptr<autofill::DialogNotification> checkboxNotification_; 35 36 // Main delegate for the dialog. Weak, owns dialog. 37 autofill::AutofillDialogViewDelegate* delegate_; 38} 39 40// Designated initializer. 41- (id)initWithDelegate:(autofill::AutofillDialogViewDelegate*)delegate; 42 43// Computes the views preferred size given a fixed width. 44- (NSSize)preferredSizeForWidth:(CGFloat)width; 45 46// Sets the notification contents. 47- (void)setNotifications:(const autofill::DialogNotifications&) notifications; 48 49// Sets a view that the arrow is anchored to - center of arrow will be aligned 50// with center of anchorView. (horizontally only). 51- (void)setAnchorView:(NSView*)anchorView; 52 53- (IBAction)checkboxClicked:(id)sender; 54 55@end 56 57#endif // CHROME_BROWSER_UI_COCOA_AUTOFILL_AUTOFILL_NOTIFICATION_CONTAINER_H_ 58