summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ui/cocoa/autofill/autofill_header.mm
blob: 556bdb3e9b8cc92b141c5a4615536da33405b8d5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#import "chrome/browser/ui/cocoa/autofill/autofill_header.h"

#include "base/strings/sys_string_conversions.h"
#include "chrome/browser/ui/autofill/autofill_dialog_view_delegate.h"
#include "chrome/browser/ui/chrome_style.h"
#include "chrome/browser/ui/cocoa/autofill/autofill_dialog_constants.h"

namespace {

// Height of the account chooser.
const CGFloat kAccountChooserHeight = 20.0;

}  // namespace

@implementation AutofillHeader

- (id)initWithDelegate:(autofill::AutofillDialogViewDelegate*)delegate {
  if (self = [super initWithNibName:nil bundle:nil]) {
    delegate_ = delegate;

    // Set dialog title.
    title_.reset([[NSTextField alloc] initWithFrame:NSZeroRect]);
    [title_ setEditable:NO];
    [title_ setBordered:NO];
    [title_ setDrawsBackground:NO];
    [title_ setFont:[NSFont systemFontOfSize:15.0]];
    [title_ setStringValue:base::SysUTF16ToNSString(delegate_->DialogTitle())];
    [title_ sizeToFit];

    base::scoped_nsobject<NSView> view(
        [[NSView alloc] initWithFrame:NSZeroRect]);
    [self setView:view];
  }
  return self;
}

- (void)update {
  [title_ setStringValue:base::SysUTF16ToNSString(delegate_->DialogTitle())];
  [title_ sizeToFit];
}

- (NSSize)preferredSize {
  CGFloat height =
      chrome_style::kTitleTopPadding +
      kAccountChooserHeight +
      autofill::kDetailVerticalPadding;

  // The returned width is unused, and there's no simple way to compute the
  // account chooser's width, so just return 0 for the width.
  return NSMakeSize(0, height);
}

- (void)performLayout {
  [title_ setFrameOrigin:NSMakePoint(chrome_style::kHorizontalPadding,
                                     autofill::kDetailVerticalPadding)];
}

@end