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

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

Issue 19287006: [rAC, OSX] "Save In Chrome" checkbox. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address review comments. Created 7 years, 5 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #import "chrome/browser/ui/cocoa/autofill/autofill_main_container.h" 5 #import "chrome/browser/ui/cocoa/autofill/autofill_main_container.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cmath> 8 #include <cmath>
9 9
10 #include "base/mac/foundation_util.h" 10 #include "base/mac/foundation_util.h"
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
43 - (void)loadView { 43 - (void)loadView {
44 [self buildWindowButtonsForFrame:NSZeroRect]; 44 [self buildWindowButtonsForFrame:NSZeroRect];
45 45
46 base::scoped_nsobject<NSView> view([[NSView alloc] initWithFrame:NSZeroRect]); 46 base::scoped_nsobject<NSView> view([[NSView alloc] initWithFrame:NSZeroRect]);
47 [view setAutoresizesSubviews:YES]; 47 [view setAutoresizesSubviews:YES];
48 [view setSubviews:@[buttonContainer_]]; 48 [view setSubviews:@[buttonContainer_]];
49 [self setView:view]; 49 [self setView:view];
50 50
51 [self layoutButtons]; 51 [self layoutButtons];
52 52
53 // Set up "Save in Chrome" checkbox.
54 saveInChromeCheckbox_.reset([[NSButton alloc] initWithFrame:NSZeroRect]);
55 [saveInChromeCheckbox_ setButtonType:NSSwitchButton];
56 [saveInChromeCheckbox_ setTitle:
57 base::SysUTF16ToNSString(controller_->SaveLocallyText())];
58 [saveInChromeCheckbox_ setState:NSOnState];
59 [saveInChromeCheckbox_ sizeToFit];
60 [[self view] addSubview:saveInChromeCheckbox_];
61
53 detailsContainer_.reset( 62 detailsContainer_.reset(
54 [[AutofillDetailsContainer alloc] initWithController:controller_]); 63 [[AutofillDetailsContainer alloc] initWithController:controller_]);
55 NSSize frameSize = [[detailsContainer_ view] frame].size; 64 NSSize frameSize = [[detailsContainer_ view] frame].size;
56 [[detailsContainer_ view] setFrameOrigin: 65 [[detailsContainer_ view] setFrameOrigin:
57 NSMakePoint(0, NSHeight([buttonContainer_ frame]))]; 66 NSMakePoint(0, NSHeight([buttonContainer_ frame]))];
58 frameSize.height += NSHeight([buttonContainer_ frame]); 67 frameSize.height += NSHeight([buttonContainer_ frame]);
59 [[self view] setFrameSize:frameSize]; 68 [[self view] setFrameSize:frameSize];
60 [[self view] addSubview:[detailsContainer_ view]]; 69 [[self view] addSubview:[detailsContainer_ view]];
61 70
62 legalDocumentsView_.reset( 71 legalDocumentsView_.reset(
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 if (![legalDocumentsView_ isHidden]) { 124 if (![legalDocumentsView_ isHidden]) {
116 [legalDocumentsView_ setFrameSize: 125 [legalDocumentsView_ setFrameSize:
117 [self preferredLegalDocumentSizeForWidth:preferredContainerSize.width]]; 126 [self preferredLegalDocumentSizeForWidth:preferredContainerSize.width]];
118 currentY = NSMaxY([legalDocumentsView_ frame]) + kVerticalSpacing; 127 currentY = NSMaxY([legalDocumentsView_ frame]) + kVerticalSpacing;
119 } 128 }
120 129
121 NSRect buttonFrame = [buttonContainer_ frame]; 130 NSRect buttonFrame = [buttonContainer_ frame];
122 buttonFrame.origin.y = currentY; 131 buttonFrame.origin.y = currentY;
123 [buttonContainer_ setFrameOrigin:buttonFrame.origin]; 132 [buttonContainer_ setFrameOrigin:buttonFrame.origin];
124 133
134 NSRect checkboxFrame = [saveInChromeCheckbox_ frame];
135 checkboxFrame.origin.y = NSMidY(buttonFrame) - NSHeight(checkboxFrame) / 2.0;
136 [saveInChromeCheckbox_ setFrameOrigin:checkboxFrame.origin];
137
125 [detailsContainer_ performLayout]; 138 [detailsContainer_ performLayout];
126 NSRect containerFrame = [[detailsContainer_ view] frame]; 139 NSRect containerFrame = [[detailsContainer_ view] frame];
127 containerFrame.origin.y = NSMaxY(buttonFrame); 140 containerFrame.origin.y = NSMaxY(buttonFrame);
128 [[detailsContainer_ view] setFrameOrigin:containerFrame.origin]; 141 [[detailsContainer_ view] setFrameOrigin:containerFrame.origin];
129 142
130 NSRect notificationFrame; 143 NSRect notificationFrame;
131 notificationFrame.origin = NSMakePoint(0, NSMaxY(containerFrame)); 144 notificationFrame.origin = NSMakePoint(0, NSMaxY(containerFrame));
132 notificationFrame.size = [notificationContainer_ preferredSizeForWidth: 145 notificationFrame.size = [notificationContainer_ preferredSizeForWidth:
133 preferredContainerSize.width]; 146 preferredContainerSize.width];
134 [[notificationContainer_ view] setFrame:notificationFrame]; 147 [[notificationContainer_ view] setFrame:notificationFrame];
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
201 legalDocumentsSizeDirty_ = NO; 214 legalDocumentsSizeDirty_ = NO;
202 legalDocumentsSize_ = newFrame.size; 215 legalDocumentsSize_ = newFrame.size;
203 return legalDocumentsSize_; 216 return legalDocumentsSize_;
204 } 217 }
205 218
206 - (AutofillSectionContainer*)sectionForId:(autofill::DialogSection)section { 219 - (AutofillSectionContainer*)sectionForId:(autofill::DialogSection)section {
207 return [detailsContainer_ sectionForId:section]; 220 return [detailsContainer_ sectionForId:section];
208 } 221 }
209 222
210 - (void)modelChanged { 223 - (void)modelChanged {
224 [saveInChromeCheckbox_ setHidden:!controller_->ShouldOfferToSaveInChrome()];
211 [detailsContainer_ modelChanged]; 225 [detailsContainer_ modelChanged];
212 } 226 }
213 227
228 - (BOOL)saveDetailsLocally {
229 return [saveInChromeCheckbox_ state] == NSOnState;
230 }
231
214 - (void)updateLegalDocuments { 232 - (void)updateLegalDocuments {
215 NSString* text = base::SysUTF16ToNSString(controller_->LegalDocumentsText()); 233 NSString* text = base::SysUTF16ToNSString(controller_->LegalDocumentsText());
216 234
217 if ([text length]) { 235 if ([text length]) {
218 NSFont* font = [NSFont systemFontOfSize:[NSFont smallSystemFontSize]]; 236 NSFont* font = [NSFont systemFontOfSize:[NSFont smallSystemFontSize]];
219 [legalDocumentsView_ setMessage:text 237 [legalDocumentsView_ setMessage:text
220 withFont:font 238 withFont:font
221 messageColor:[NSColor blackColor]]; 239 messageColor:[NSColor blackColor]];
222 240
223 const std::vector<ui::Range>& link_ranges = 241 const std::vector<ui::Range>& link_ranges =
(...skipping 23 matching lines...) Expand all
247 265
248 - (void)setAnchorView:(NSView*)anchorView { 266 - (void)setAnchorView:(NSView*)anchorView {
249 [notificationContainer_ setAnchorView:anchorView]; 267 [notificationContainer_ setAnchorView:anchorView];
250 } 268 }
251 269
252 - (BOOL)validate { 270 - (BOOL)validate {
253 return [detailsContainer_ validate]; 271 return [detailsContainer_ validate];
254 } 272 }
255 273
256 @end 274 @end
275
276
277 @implementation AutofillMainContainer (Testing)
278
279 - (NSButton*)saveInChromeCheckboxForTesting {
280 return saveInChromeCheckbox_.get();
281 }
282
283 @end
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698