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