1eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Copyright 2013 The Chromium Authors. All rights reserved. 2eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Use of this source code is governed by a BSD-style license that can be 3eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// found in the LICENSE file. 4eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 5eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#ifndef CHROME_BROWSER_UI_COCOA_AUTOFILL_AUTOFILL_NOTIFICATION_CONTAINER_H_ 6eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#define CHROME_BROWSER_UI_COCOA_AUTOFILL_AUTOFILL_NOTIFICATION_CONTAINER_H_ 7eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 8eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#import <Cocoa/Cocoa.h> 9eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 10eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include <vector> 11eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 12eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "base/mac/scoped_nsobject.h" 13eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#include "base/memory/scoped_ptr.h" 14eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch#import "chrome/browser/ui/cocoa/autofill/autofill_layout.h" 15eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 16eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch@class AutofillArrowView; 17eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 18eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdochnamespace autofill { 19eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch class DialogNotification; 20eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch typedef std::vector<DialogNotification> DialogNotifications; 213240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch class AutofillDialogViewDelegate; 22eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch} 23eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 24eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Container for all notifications shown in requestAutocomplete dialog. 25eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch@interface AutofillNotificationContainer : NSViewController<AutofillLayout> { 26eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch @private 27eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch // Array of all AutofillNotificationControllers. 28eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch base::scoped_nsobject<NSMutableArray> notificationControllers_; 29eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 30eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch // View that the arrow is anchored to. Weak. 31eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch NSView* anchorView_; 32eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 333240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch // Main delegate for the dialog. Weak, owns dialog. 343240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch autofill::AutofillDialogViewDelegate* delegate_; 35eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch} 36eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 37eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Designated initializer. 383240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch- (id)initWithDelegate:(autofill::AutofillDialogViewDelegate*)delegate; 39eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 40eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Computes the views preferred size given a fixed width. 41eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch- (NSSize)preferredSizeForWidth:(CGFloat)width; 42eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 43eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Sets the notification contents. 44eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch- (void)setNotifications:(const autofill::DialogNotifications&) notifications; 45eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 46eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// Sets a view that the arrow is anchored to - center of arrow will be aligned 47eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch// with center of anchorView. (horizontally only). 48eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch- (void)setAnchorView:(NSView*)anchorView; 49eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 50eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch@end 51eb525c5499e34cc9c4b825d6d9e75bb07cc06aceBen Murdoch 523240926e260ce088908e02ac07a6cf7b0c0cbf44Ben Murdoch#endif // CHROME_BROWSER_UI_COCOA_AUTOFILL_AUTOFILL_NOTIFICATION_CONTAINER_H_ 53