Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(273)

Side by Side Diff: chrome/browser/ui/cocoa/autofill/autofill_notification_container.mm

Issue 1931043002: Remove requestAutocomplete (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
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 #import "chrome/browser/ui/cocoa/autofill/autofill_notification_container.h"
6
7 #include <stddef.h>
8
9 #include "base/logging.h"
10 #include "base/mac/scoped_nsobject.h"
11 #include "chrome/browser/ui/autofill/autofill_dialog_types.h"
12 #include "chrome/browser/ui/cocoa/autofill/autofill_dialog_constants.h"
13 #import "chrome/browser/ui/cocoa/autofill/autofill_notification_controller.h"
14
15 @implementation AutofillNotificationContainer
16
17 - (id)initWithDelegate:(autofill::AutofillDialogViewDelegate*)delegate {
18 if (self = [super init]) {
19 delegate_ = delegate;
20 [self setView:[[[NSView alloc] initWithFrame:NSZeroRect] autorelease]];
21 }
22 return self;
23 }
24
25 // Just here to satisfy the protocol - not actually invoked.
26 - (NSSize)preferredSize {
27 NOTREACHED();
28 return NSZeroSize;
29 }
30
31 - (NSSize)preferredSizeForWidth:(CGFloat)width {
32 NSSize preferredSize = NSMakeSize(width, 0);
33
34 if ([notificationControllers_ count] == 0)
35 return preferredSize;
36
37 // A bit of padding above the arrow.
38 preferredSize.height += autofill::kDetailVerticalPadding;
39
40 for (AutofillNotificationController* controller in
41 notificationControllers_.get()) {
42 preferredSize.height += [controller preferredSizeForWidth:width].height;
43 }
44
45 preferredSize.height += autofill::kDetailVerticalPadding;
46
47 return preferredSize;
48 }
49
50 - (void)performLayout {
51 if ([notificationControllers_ count] == 0)
52 return;
53
54 NSRect remaining = [[self view] bounds];
55 remaining.origin.y += autofill::kDetailVerticalPadding;
56 remaining.size.height -= 2 * autofill::kDetailVerticalPadding;
57
58 for (AutofillNotificationController* controller in
59 notificationControllers_.get()) {
60 NSRect viewRect;
61 NSSize size = [controller preferredSizeForWidth:NSWidth(remaining)];
62 NSDivideRect(remaining, &viewRect, &remaining, size.height, NSMaxYEdge);
63 [[controller view ] setFrame:viewRect];
64 [controller performLayout];
65 }
66 DCHECK_EQ(0, NSHeight(remaining));
67 }
68
69 - (void)setNotifications:(const autofill::DialogNotifications&)notifications {
70 notificationControllers_.reset([[NSMutableArray alloc] init]);
71 [[self view] setSubviews:@[]];
72
73 for (size_t i = 0; i < notifications.size(); ++i) {
74 // Create basic notification view.
75 const autofill::DialogNotification& notification = notifications[i];
76 base::scoped_nsobject<AutofillNotificationController>
77 notificationController([[AutofillNotificationController alloc]
78 initWithNotification:&notification
79 delegate:delegate_]);
80
81 [notificationControllers_ addObject:notificationController];
82 [[self view] addSubview:[notificationController view]];
83 }
84 }
85
86 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698