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

Unified Diff: chrome/browser/ui/cocoa/autofill/autofill_dialog_cocoa.mm

Issue 77283002: [rAc OSX] Factor out AutofillHeader class to contain dialog header elements. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 1 month 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/cocoa/autofill/autofill_dialog_cocoa.mm
diff --git a/chrome/browser/ui/cocoa/autofill/autofill_dialog_cocoa.mm b/chrome/browser/ui/cocoa/autofill/autofill_dialog_cocoa.mm
index c7f36c807e5a2682756d9b8021dbc9f8117ba4df..36adb8bd611f0f56c99f68c3707ce03ef2334a6d 100644
--- a/chrome/browser/ui/cocoa/autofill/autofill_dialog_cocoa.mm
+++ b/chrome/browser/ui/cocoa/autofill/autofill_dialog_cocoa.mm
@@ -12,9 +12,9 @@
#include "base/strings/sys_string_conversions.h"
#include "chrome/browser/ui/autofill/autofill_dialog_view_delegate.h"
#include "chrome/browser/ui/chrome_style.h"
-#import "chrome/browser/ui/cocoa/autofill/autofill_account_chooser.h"
#import "chrome/browser/ui/cocoa/autofill/autofill_details_container.h"
#include "chrome/browser/ui/cocoa/autofill/autofill_dialog_constants.h"
+#import "chrome/browser/ui/cocoa/autofill/autofill_header.h"
#import "chrome/browser/ui/cocoa/autofill/autofill_input_field.h"
#import "chrome/browser/ui/cocoa/autofill/autofill_main_container.h"
#import "chrome/browser/ui/cocoa/autofill/autofill_overlay_controller.h"
@@ -31,11 +31,10 @@
#include "ui/base/l10n/l10n_util.h"
#include "ui/gfx/platform_font.h"
-const CGFloat kAccountChooserHeight = 20.0;
const CGFloat kMinimumContentsHeight = 101;
// Height of all decorations & paddings on main dialog together.
-const CGFloat kDecorationHeight = kAccountChooserHeight +
+const CGFloat kDecorationHeight = autofill::kAccountChooserHeight +
groby-ooo-7-16 2013/11/20 23:51:44 If this is part of the header, why do we need this
Ilya Sherman 2013/11/22 05:01:13 Done.
autofill::kDetailVerticalPadding +
chrome_style::kClientBottomPadding +
chrome_style::kTitleTopPadding;
@@ -64,7 +63,7 @@ void AutofillDialogCocoa::Show() {
DCHECK(!sheet_delegate_.get());
sheet_delegate_.reset([[AutofillDialogWindowController alloc]
initWithWebContents:delegate_->GetWebContents()
- autofillDialog:this]);
+ dialog:this]);
base::scoped_nsobject<CustomConstrainedWindowSheet> sheet(
[[CustomConstrainedWindowSheet alloc]
initWithCustomWindow:[sheet_delegate_ window]]);
@@ -309,7 +308,7 @@ void AutofillDialogCocoa::OnConstrainedWindowClosed(
@implementation AutofillDialogWindowController
- (id)initWithWebContents:(content::WebContents*)webContents
- autofillDialog:(autofill::AutofillDialogCocoa*)autofillDialog {
+ dialog:(autofill::AutofillDialogCocoa*)dialog {
DCHECK(webContents);
base::scoped_nsobject<ConstrainedWindowCustomWindow> window(
@@ -319,30 +318,18 @@ void AutofillDialogCocoa::OnConstrainedWindowClosed(
if ((self = [super initWithWindow:window])) {
[window setDelegate:self];
webContents_ = webContents;
- autofillDialog_ = autofillDialog;
+ dialog_ = dialog;
+
+ header_.reset([[AutofillHeader alloc] initWithDelegate:dialog->delegate()]);
mainContainer_.reset([[AutofillMainContainer alloc]
- initWithDelegate:autofillDialog->delegate()]);
+ initWithDelegate:dialog->delegate()]);
[mainContainer_ setTarget:self];
signInContainer_.reset(
- [[AutofillSignInContainer alloc] initWithDialog:autofillDialog]);
+ [[AutofillSignInContainer alloc] initWithDialog:dialog]);
[[signInContainer_ view] setHidden:YES];
- // Set dialog title.
- titleTextField_.reset([[NSTextField alloc] initWithFrame:NSZeroRect]);
- [titleTextField_ setEditable:NO];
- [titleTextField_ setBordered:NO];
- [titleTextField_ setDrawsBackground:NO];
- [titleTextField_ setFont:[NSFont systemFontOfSize:15.0]];
- [titleTextField_ setStringValue:
- base::SysUTF16ToNSString(autofillDialog->delegate()->DialogTitle())];
- [titleTextField_ sizeToFit];
-
- accountChooser_.reset([[AutofillAccountChooser alloc]
- initWithFrame:NSZeroRect
- delegate:autofillDialog->delegate()]);
-
loadingShieldTextField_.reset(
[[NSTextField alloc] initWithFrame:NSZeroRect]);
ui::ResourceBundle& rb = ui::ResourceBundle::GetSharedInstance();
@@ -360,7 +347,7 @@ void AutofillDialogCocoa::OnConstrainedWindowClosed(
overlayController_.reset(
[[AutofillOverlayController alloc] initWithDelegate:
- autofillDialog->delegate()]);
+ dialog->delegate()]);
[[overlayController_ view] setHidden:YES];
// This needs a flipped content view because otherwise the size
@@ -370,8 +357,7 @@ void AutofillDialogCocoa::OnConstrainedWindowClosed(
[[FlippedView alloc] initWithFrame:
[[[self window] contentView] frame]]);
[flippedContentView setSubviews:
- @[accountChooser_,
- titleTextField_,
+ @[header_,
[mainContainer_ view],
[signInContainer_ view],
loadingShieldView,
@@ -379,7 +365,7 @@ void AutofillDialogCocoa::OnConstrainedWindowClosed(
[flippedContentView setAutoresizingMask:
(NSViewWidthSizable | NSViewHeightSizable)];
[[[self window] contentView] addSubview:flippedContentView];
- [mainContainer_ setAnchorView:[[accountChooser_ subviews] objectAtIndex:1]];
+ [mainContainer_ setAnchorView:[header_ anchorView]];
}
return self;
}
@@ -455,33 +441,15 @@ void AutofillDialogCocoa::OnConstrainedWindowClosed(
NSRect contentRect = NSZeroRect;
contentRect.size = [self preferredSize];
NSRect clientRect = contentRect;
- clientRect.origin.y = chrome_style::kTitleTopPadding;
- clientRect.size.height -= chrome_style::kTitleTopPadding +
- chrome_style::kClientBottomPadding;
-
- [titleTextField_ setStringValue:
- base::SysUTF16ToNSString(autofillDialog_->delegate()->DialogTitle())];
- [titleTextField_ sizeToFit];
-
- NSRect headerRect, mainRect, titleRect, dummyRect;
- NSDivideRect(clientRect, &headerRect, &mainRect,
- kAccountChooserHeight, NSMinYEdge);
- NSDivideRect(mainRect, &dummyRect, &mainRect,
- autofill::kDetailVerticalPadding, NSMinYEdge);
- headerRect = NSInsetRect(headerRect, chrome_style::kHorizontalPadding, 0);
- NSDivideRect(headerRect, &titleRect, &headerRect,
- NSWidth([titleTextField_ frame]), NSMinXEdge);
-
- // Align baseline of title with bottom of accountChooser.
- base::scoped_nsobject<NSLayoutManager> layout_manager(
- [[NSLayoutManager alloc] init]);
- NSFont* titleFont = [titleTextField_ font];
- titleRect.origin.y += NSHeight(titleRect) -
- [layout_manager defaultBaselineOffsetForFont:titleFont];
- [titleTextField_ setFrame:titleRect];
-
- [accountChooser_ setFrame:headerRect];
- [accountChooser_ performLayout];
+ clientRect.size.height -= chrome_style::kClientBottomPadding;
+
+ CGFloat headerHeight = [header_ heightForWidth:NSWidth(clientRect)];
+ NSRect headerRect, mainRect;
+ NSDivideRect(clientRect, &headerRect, &mainRect, headerHeight, NSMinYEdge);
+
+ [header_ setFrame:headerRect];
+ [header_ performLayout];
+
if ([[signInContainer_ view] isHidden]) {
[[mainContainer_ view] setFrame:mainRect];
[mainContainer_ performLayout];
@@ -508,14 +476,14 @@ void AutofillDialogCocoa::OnConstrainedWindowClosed(
- (IBAction)accept:(id)sender {
if ([mainContainer_ validate])
- autofillDialog_->delegate()->OnAccept();
+ dialog_->delegate()->OnAccept();
else
[mainContainer_ makeFirstInvalidInputFirstResponder];
}
- (IBAction)cancel:(id)sender {
- autofillDialog_->delegate()->OnCancel();
- autofillDialog_->PerformClose();
+ dialog_->delegate()->OnCancel();
+ dialog_->PerformClose();
}
- (void)show {
@@ -536,8 +504,8 @@ void AutofillDialogCocoa::OnConstrainedWindowClosed(
}
- (void)hide {
- autofillDialog_->delegate()->OnCancel();
- autofillDialog_->PerformClose();
+ dialog_->delegate()->OnCancel();
+ dialog_->PerformClose();
}
- (void)updateNotificationArea {
@@ -545,11 +513,11 @@ void AutofillDialogCocoa::OnConstrainedWindowClosed(
}
- (void)updateAccountChooser {
- [accountChooser_ update];
+ [header_ update];
[mainContainer_ updateLegalDocuments];
NSString* newLoadingMessage = @"";
- if (autofillDialog_->delegate()->ShouldShowSpinner())
+ if (dialog_->delegate()->ShouldShowSpinner())
newLoadingMessage = l10n_util::GetNSStringWithFixup(IDS_TAB_LOADING_TITLE);
if (![newLoadingMessage isEqualToString:
[loadingShieldTextField_ stringValue]]) {

Powered by Google App Engine
This is Rietveld 408576698