| OLD | NEW |
| 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 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 97 return YES; | 97 return YES; |
| 98 } | 98 } |
| 99 | 99 |
| 100 - (NSSize)preferredSize { | 100 - (NSSize)preferredSize { |
| 101 // Overall width is determined by |detailsContainer_|. | 101 // Overall width is determined by |detailsContainer_|. |
| 102 NSSize buttonSize = [buttonContainer_ frame].size; | 102 NSSize buttonSize = [buttonContainer_ frame].size; |
| 103 NSSize detailsSize = [detailsContainer_ preferredSize]; | 103 NSSize detailsSize = [detailsContainer_ preferredSize]; |
| 104 | 104 |
| 105 NSSize size = NSMakeSize(std::max(buttonSize.width, detailsSize.width), | 105 NSSize size = NSMakeSize(std::max(buttonSize.width, detailsSize.width), |
| 106 buttonSize.height + detailsSize.height); | 106 buttonSize.height + detailsSize.height); |
| 107 size.height += kDetailBottomPadding; | 107 size.height += autofill::kDetailBottomPadding; |
| 108 | 108 |
| 109 if (![legalDocumentsView_ isHidden]) { | 109 if (![legalDocumentsView_ isHidden]) { |
| 110 NSSize legalDocumentSize = | 110 NSSize legalDocumentSize = |
| 111 [self preferredLegalDocumentSizeForWidth:detailsSize.width]; | 111 [self preferredLegalDocumentSizeForWidth:detailsSize.width]; |
| 112 size.height += legalDocumentSize.height + kVerticalSpacing; | 112 size.height += legalDocumentSize.height + autofill::kVerticalSpacing; |
| 113 } | 113 } |
| 114 | 114 |
| 115 NSSize notificationSize = | 115 NSSize notificationSize = |
| 116 [notificationContainer_ preferredSizeForWidth:detailsSize.width]; | 116 [notificationContainer_ preferredSizeForWidth:detailsSize.width]; |
| 117 size.height += notificationSize.height; | 117 size.height += notificationSize.height; |
| 118 return size; | 118 return size; |
| 119 } | 119 } |
| 120 | 120 |
| 121 - (void)performLayout { | 121 - (void)performLayout { |
| 122 NSRect bounds = [[self view] bounds]; | 122 NSRect bounds = [[self view] bounds]; |
| 123 | 123 |
| 124 CGFloat currentY = 0.0; | 124 CGFloat currentY = 0.0; |
| 125 if (![legalDocumentsView_ isHidden]) { | 125 if (![legalDocumentsView_ isHidden]) { |
| 126 [legalDocumentsView_ setFrameSize: | 126 [legalDocumentsView_ setFrameSize: |
| 127 [self preferredLegalDocumentSizeForWidth:NSWidth(bounds)]]; | 127 [self preferredLegalDocumentSizeForWidth:NSWidth(bounds)]]; |
| 128 currentY = NSMaxY([legalDocumentsView_ frame]) + kVerticalSpacing; | 128 currentY = NSMaxY([legalDocumentsView_ frame]) + |
| 129 autofill::kVerticalSpacing; |
| 129 } | 130 } |
| 130 | 131 |
| 131 NSRect buttonFrame = [buttonContainer_ frame]; | 132 NSRect buttonFrame = [buttonContainer_ frame]; |
| 132 buttonFrame.origin.y = currentY; | 133 buttonFrame.origin.y = currentY; |
| 133 [buttonContainer_ setFrameOrigin:buttonFrame.origin]; | 134 [buttonContainer_ setFrameOrigin:buttonFrame.origin]; |
| 134 | 135 |
| 135 NSRect checkboxFrame = [saveInChromeCheckbox_ frame]; | 136 NSRect checkboxFrame = [saveInChromeCheckbox_ frame]; |
| 136 checkboxFrame.origin.y = NSMidY(buttonFrame) - NSHeight(checkboxFrame) / 2.0; | 137 checkboxFrame.origin.y = NSMidY(buttonFrame) - NSHeight(checkboxFrame) / 2.0; |
| 137 [saveInChromeCheckbox_ setFrameOrigin:checkboxFrame.origin]; | 138 [saveInChromeCheckbox_ setFrameOrigin:checkboxFrame.origin]; |
| 138 | 139 |
| 139 currentY = NSMaxY(buttonFrame) + kDetailBottomPadding; | 140 currentY = NSMaxY(buttonFrame) + autofill::kDetailBottomPadding; |
| 140 | 141 |
| 141 NSRect notificationFrame = NSZeroRect; | 142 NSRect notificationFrame = NSZeroRect; |
| 142 notificationFrame.size = [notificationContainer_ preferredSizeForWidth: | 143 notificationFrame.size = [notificationContainer_ preferredSizeForWidth: |
| 143 NSWidth(bounds)]; | 144 NSWidth(bounds)]; |
| 144 | 145 |
| 145 // Buttons/checkbox/legal take up lower part of view, notifications the | 146 // Buttons/checkbox/legal take up lower part of view, notifications the |
| 146 // upper part. Adjust the detailsContainer to take up the remainder. | 147 // upper part. Adjust the detailsContainer to take up the remainder. |
| 147 CGFloat remainingHeight = | 148 CGFloat remainingHeight = |
| 148 NSHeight(bounds) - currentY - NSHeight(notificationFrame); | 149 NSHeight(bounds) - currentY - NSHeight(notificationFrame); |
| 149 NSRect containerFrame = | 150 NSRect containerFrame = |
| 150 NSMakeRect(0, currentY, NSWidth(bounds), remainingHeight); | 151 NSMakeRect(0, currentY, NSWidth(bounds), remainingHeight); |
| 151 [[detailsContainer_ view] setFrame:containerFrame]; | 152 [[detailsContainer_ view] setFrame:containerFrame]; |
| 152 [detailsContainer_ performLayout]; | 153 [detailsContainer_ performLayout]; |
| 153 | 154 |
| 154 notificationFrame.origin = | 155 notificationFrame.origin = |
| 155 NSMakePoint(0, NSMaxY(containerFrame) + kDetailTopPadding); | 156 NSMakePoint(0, NSMaxY(containerFrame) + autofill::kDetailTopPadding); |
| 156 [[notificationContainer_ view] setFrame:notificationFrame]; | 157 [[notificationContainer_ view] setFrame:notificationFrame]; |
| 157 [notificationContainer_ performLayout]; | 158 [notificationContainer_ performLayout]; |
| 158 } | 159 } |
| 159 | 160 |
| 160 - (void)buildWindowButtonsForFrame:(NSRect)frame { | 161 - (void)buildWindowButtonsForFrame:(NSRect)frame { |
| 161 if (buttonContainer_.get()) | 162 if (buttonContainer_.get()) |
| 162 return; | 163 return; |
| 163 | 164 |
| 164 buttonContainer_.reset([[GTMWidthBasedTweaker alloc] initWithFrame: | 165 buttonContainer_.reset([[GTMWidthBasedTweaker alloc] initWithFrame: |
| 165 ui::kWindowSizeDeterminedLater]); | 166 ui::kWindowSizeDeterminedLater]); |
| 166 [buttonContainer_ | 167 [buttonContainer_ |
| 167 setAutoresizingMask:(NSViewMinXMargin | NSViewMaxYMargin)]; | 168 setAutoresizingMask:(NSViewMinXMargin | NSViewMaxYMargin)]; |
| 168 | 169 |
| 169 base::scoped_nsobject<NSButton> button( | 170 base::scoped_nsobject<NSButton> button( |
| 170 [[ConstrainedWindowButton alloc] initWithFrame:NSZeroRect]); | 171 [[ConstrainedWindowButton alloc] initWithFrame:NSZeroRect]); |
| 171 [button setTitle:l10n_util::GetNSStringWithFixup(IDS_CANCEL)]; | 172 [button setTitle:l10n_util::GetNSStringWithFixup(IDS_CANCEL)]; |
| 172 [button setKeyEquivalent:kKeyEquivalentEscape]; | 173 [button setKeyEquivalent:kKeyEquivalentEscape]; |
| 173 [button setTarget:target_]; | 174 [button setTarget:target_]; |
| 174 [button setAction:@selector(cancel:)]; | 175 [button setAction:@selector(cancel:)]; |
| 175 [button sizeToFit]; | 176 [button sizeToFit]; |
| 176 [buttonContainer_ addSubview:button]; | 177 [buttonContainer_ addSubview:button]; |
| 177 | 178 |
| 178 CGFloat nextX = NSMaxX([button frame]) + kButtonGap; | 179 CGFloat nextX = NSMaxX([button frame]) + autofill::kButtonGap; |
| 179 button.reset([[ConstrainedWindowButton alloc] initWithFrame:NSZeroRect]); | 180 button.reset([[ConstrainedWindowButton alloc] initWithFrame:NSZeroRect]); |
| 180 [button setFrameOrigin:NSMakePoint(nextX, 0)]; | 181 [button setFrameOrigin:NSMakePoint(nextX, 0)]; |
| 181 [button setTitle:l10n_util::GetNSStringWithFixup( | 182 [button setTitle:l10n_util::GetNSStringWithFixup( |
| 182 IDS_AUTOFILL_DIALOG_SUBMIT_BUTTON)]; | 183 IDS_AUTOFILL_DIALOG_SUBMIT_BUTTON)]; |
| 183 [button setKeyEquivalent:kKeyEquivalentReturn]; | 184 [button setKeyEquivalent:kKeyEquivalentReturn]; |
| 184 [button setTarget:target_]; | 185 [button setTarget:target_]; |
| 185 [button setAction:@selector(accept:)]; | 186 [button setAction:@selector(accept:)]; |
| 186 [button sizeToFit]; | 187 [button sizeToFit]; |
| 187 [buttonContainer_ addSubview:button]; | 188 [buttonContainer_ addSubview:button]; |
| 188 | 189 |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 283 @end | 284 @end |
| 284 | 285 |
| 285 | 286 |
| 286 @implementation AutofillMainContainer (Testing) | 287 @implementation AutofillMainContainer (Testing) |
| 287 | 288 |
| 288 - (NSButton*)saveInChromeCheckboxForTesting { | 289 - (NSButton*)saveInChromeCheckboxForTesting { |
| 289 return saveInChromeCheckbox_.get(); | 290 return saveInChromeCheckbox_.get(); |
| 290 } | 291 } |
| 291 | 292 |
| 292 @end | 293 @end |
| OLD | NEW |