| Index: chrome/browser/ui/cocoa/passwords/manage_passwords_bubble_manage_view_controller.mm
|
| diff --git a/chrome/browser/ui/cocoa/passwords/manage_passwords_bubble_manage_view_controller.mm b/chrome/browser/ui/cocoa/passwords/manage_passwords_bubble_manage_view_controller.mm
|
| deleted file mode 100644
|
| index 7e872ef40c0a5d82a61879ea25dfbffbe5420520..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/ui/cocoa/passwords/manage_passwords_bubble_manage_view_controller.mm
|
| +++ /dev/null
|
| @@ -1,187 +0,0 @@
|
| -// Copyright 2014 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/passwords/manage_passwords_bubble_manage_view_controller.h"
|
| -
|
| -#include <cmath>
|
| -
|
| -#include "base/strings/sys_string_conversions.h"
|
| -#include "chrome/browser/ui/chrome_style.h"
|
| -#import "chrome/browser/ui/cocoa/passwords/manage_password_item_view_controller.h"
|
| -#include "chrome/browser/ui/passwords/manage_passwords_bubble_model.h"
|
| -#include "grit/generated_resources.h"
|
| -#include "skia/ext/skia_utils_mac.h"
|
| -#import "third_party/google_toolbox_for_mac/src/AppKit/GTMUILocalizerAndLayoutTweaker.h"
|
| -#import "ui/base/cocoa/controls/hyperlink_button_cell.h"
|
| -#include "ui/base/l10n/l10n_util.h"
|
| -
|
| -using namespace password_manager::mac::ui;
|
| -
|
| -@implementation NoPasswordsView
|
| -- (id)initWithWidth:(CGFloat)width {
|
| - if ((self = [super initWithFrame:NSZeroRect])) {
|
| - [self setEditable:NO];
|
| - [self setSelectable:NO];
|
| - [self setDrawsBackground:NO];
|
| - [self setBezeled:NO];
|
| - [self setStringValue:l10n_util::GetNSString(
|
| - IDS_MANAGE_PASSWORDS_NO_PASSWORDS)];
|
| - [self setFont:[NSFont systemFontOfSize:[NSFont smallSystemFontSize]]];
|
| - [[self cell] setWraps:YES];
|
| - [self setFrameSize:NSMakeSize(width, MAXFLOAT)];
|
| - [GTMUILocalizerAndLayoutTweaker sizeToFitFixedWidthTextField:self];
|
| - }
|
| - return self;
|
| -}
|
| -@end
|
| -
|
| -@interface ManagePasswordsBubbleManageViewController ()
|
| -- (void)onDoneClicked:(id)sender;
|
| -- (void)onManageClicked:(id)sender;
|
| -@end
|
| -
|
| -@implementation ManagePasswordsBubbleManageViewController
|
| -
|
| -- (NSButton*)defaultButton {
|
| - return doneButton_;
|
| -}
|
| -
|
| -- (id)initWithModel:(ManagePasswordsBubbleModel*)model
|
| - delegate:(id<ManagePasswordsBubbleContentViewDelegate>)delegate {
|
| - if (([super initWithDelegate:delegate])) {
|
| - model_ = model;
|
| - }
|
| - return self;
|
| -}
|
| -
|
| -- (void)loadView {
|
| - base::scoped_nsobject<NSView> view([[NSView alloc] initWithFrame:NSZeroRect]);
|
| -
|
| - // -----------------------------------
|
| - // | Title |
|
| - // | |
|
| - // | username password x |
|
| - // | username password x |
|
| - // | username password x |
|
| - // | |
|
| - // | Manage [Done] |
|
| - // -----------------------------------
|
| -
|
| - // The bubble should be wide enough to fit the title row, the username and
|
| - // password rows, and the buttons row on one line each, but not smaller than
|
| - // kDesiredBubbleWidth.
|
| -
|
| - // Create the elements and add them to the view.
|
| - NSTextField* titleLabel =
|
| - [self addTitleLabel:base::SysUTF16ToNSString(model_->title())
|
| - toView:view];
|
| -
|
| - // Content. If we have a list of passwords to store for the current site, we
|
| - // display them to the user for management. Otherwise, we show a "No passwords
|
| - // for this site" message.
|
| - NSView* contentView = nil;
|
| - if (model_->local_credentials().empty()) {
|
| - const CGFloat noPasswordsWidth = std::max(
|
| - kDesiredBubbleWidth - 2 * kFramePadding, NSWidth([titleLabel frame]));
|
| - noPasswordsView_.reset(
|
| - [[NoPasswordsView alloc] initWithWidth:noPasswordsWidth]);
|
| - contentView = noPasswordsView_.get();
|
| - } else {
|
| - passwordsListController_.reset([[PasswordsListViewController alloc]
|
| - initWithModel:model_
|
| - forms:model_->local_credentials().get()]);
|
| - contentView = [passwordsListController_ view];
|
| - }
|
| - [view addSubview:contentView];
|
| -
|
| - // Wrap the title if necessary to match the width of the content view.
|
| - if (NSWidth([titleLabel frame]) > NSWidth([contentView frame])) {
|
| - [titleLabel setFrameSize:NSMakeSize(NSWidth([contentView frame]), 0)];
|
| - [GTMUILocalizerAndLayoutTweaker sizeToFitFixedWidthTextField:titleLabel];
|
| - }
|
| -
|
| - // Done button.
|
| - doneButton_.reset([[self addButton:l10n_util::GetNSString(IDS_DONE)
|
| - toView:view
|
| - target:self
|
| - action:@selector(onDoneClicked:)] retain]);
|
| -
|
| - // Manage button.
|
| - manageButton_.reset([[NSButton alloc] initWithFrame:NSZeroRect]);
|
| - base::scoped_nsobject<HyperlinkButtonCell> cell([[HyperlinkButtonCell alloc]
|
| - initTextCell:base::SysUTF16ToNSString(model_->manage_link())]);
|
| - [cell setControlSize:NSSmallControlSize];
|
| - [cell setShouldUnderline:NO];
|
| - [cell setUnderlineOnHover:NO];
|
| - [cell setTextColor:gfx::SkColorToCalibratedNSColor(
|
| - chrome_style::GetLinkColor())];
|
| - [manageButton_ setCell:cell.get()];
|
| - [manageButton_ sizeToFit];
|
| - [manageButton_ setTarget:self];
|
| - [manageButton_ setAction:@selector(onManageClicked:)];
|
| - [view addSubview:manageButton_];
|
| -
|
| - // Layout the elements, starting at the bottom and moving up.
|
| -
|
| - // The Done button goes in the bottom-right corner.
|
| - const CGFloat width = 2 * kFramePadding + NSWidth([contentView frame]);
|
| - CGFloat curX = width - kFramePadding - NSWidth([doneButton_ frame]);
|
| - CGFloat curY = kFramePadding;
|
| - [doneButton_ setFrameOrigin:NSMakePoint(curX, curY)];
|
| -
|
| - // The Manage button goes in the bottom-left corner, centered vertically with
|
| - // the Done button.
|
| - curX = kFramePadding;
|
| - const CGFloat diffY = std::ceil(
|
| - (NSHeight([doneButton_ frame]) - NSHeight([manageButton_ frame])) / 2.0);
|
| - [manageButton_ setFrameOrigin:NSMakePoint(curX, curY + diffY)];
|
| -
|
| - // The content goes above the button row.
|
| - curX = kFramePadding;
|
| - curY = NSMaxY([doneButton_ frame]) + kUnrelatedControlVerticalPadding;
|
| - [contentView setFrameOrigin:NSMakePoint(curX, curY)];
|
| -
|
| - // The title goes above the content.
|
| - curY = NSMaxY([contentView frame]) + kUnrelatedControlVerticalPadding;
|
| - [titleLabel setFrameOrigin:NSMakePoint(curX, curY)];
|
| -
|
| - curX = NSMaxX([contentView frame]) + kFramePadding;
|
| - curY = NSMaxY([titleLabel frame]) + kFramePadding;
|
| - DCHECK_EQ(width, curX);
|
| - [view setFrameSize:NSMakeSize(curX, curY)];
|
| -
|
| - [self setView:view];
|
| -}
|
| -
|
| -- (void)onDoneClicked:(id)sender {
|
| - model_->OnDoneClicked();
|
| - [delegate_ viewShouldDismiss];
|
| -}
|
| -
|
| -- (void)onManageClicked:(id)sender {
|
| - model_->OnManageLinkClicked();
|
| - [delegate_ viewShouldDismiss];
|
| -}
|
| -
|
| -@end
|
| -
|
| -@implementation ManagePasswordsBubbleManageViewController (Testing)
|
| -
|
| -- (NSButton*)doneButton {
|
| - return doneButton_.get();
|
| -}
|
| -
|
| -- (NSButton*)manageButton {
|
| - return manageButton_.get();
|
| -}
|
| -
|
| -- (NoPasswordsView*)noPasswordsView {
|
| - return noPasswordsView_.get();
|
| -}
|
| -
|
| -- (PasswordsListViewController*)passwordsListController {
|
| - return passwordsListController_.get();
|
| -}
|
| -
|
| -@end
|
|
|