OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 #include <algorithm> | 5 #include <algorithm> |
6 | 6 |
7 #import "chrome/browser/ui/cocoa/passwords/pending_password_view_controller.h" | 7 #import "chrome/browser/ui/cocoa/passwords/pending_password_view_controller.h" |
8 | 8 |
9 #include "base/mac/foundation_util.h" | 9 #include "base/mac/foundation_util.h" |
10 #include "base/strings/sys_string_conversions.h" | 10 #include "base/strings/sys_string_conversions.h" |
11 #include "chrome/browser/ui/chrome_style.h" | 11 #include "chrome/browser/ui/chrome_style.h" |
12 #import "chrome/browser/ui/cocoa/hover_close_button.h" | 12 #import "chrome/browser/ui/cocoa/hover_close_button.h" |
13 #import "chrome/browser/ui/cocoa/passwords/passwords_bubble_utils.h" | 13 #import "chrome/browser/ui/cocoa/passwords/passwords_bubble_utils.h" |
14 #include "chrome/browser/ui/passwords/manage_passwords_bubble_model.h" | 14 #include "chrome/browser/ui/passwords/manage_passwords_bubble_model.h" |
15 #include "chrome/grit/generated_resources.h" | 15 #include "chrome/grit/generated_resources.h" |
16 #include "skia/ext/skia_utils_mac.h" | 16 #include "skia/ext/skia_utils_mac.h" |
17 #import "third_party/google_toolbox_for_mac/src/AppKit/GTMUILocalizerAndLayoutTw
eaker.h" | 17 #import "third_party/google_toolbox_for_mac/src/AppKit/GTMUILocalizerAndLayoutTw
eaker.h" |
18 #import "ui/base/cocoa/controls/hyperlink_text_view.h" | 18 #import "ui/base/cocoa/controls/hyperlink_text_view.h" |
19 #include "ui/base/l10n/l10n_util.h" | 19 #include "ui/base/l10n/l10n_util.h" |
20 | 20 |
21 const SkColor kWarmWelcomeColor = SkColorSetRGB(0x64, 0x64, 0x64); | 21 const SkColor kWarmWelcomeColor = SkColorSetRGB(0x64, 0x64, 0x64); |
22 | 22 |
23 @implementation PendingPasswordViewController | 23 @implementation PendingPasswordViewController |
24 | 24 |
25 - (id)initWithModel:(ManagePasswordsBubbleModel*)model | |
26 delegate:(id<ManagePasswordsBubbleContentViewDelegate>)delegate { | |
27 if (([super initWithDelegate:delegate])) { | |
28 model_ = model; | |
29 } | |
30 return self; | |
31 } | |
32 | |
33 - (BOOL)textView:(NSTextView*)textView | 25 - (BOOL)textView:(NSTextView*)textView |
34 clickedOnLink:(id)link | 26 clickedOnLink:(id)link |
35 atIndex:(NSUInteger)charIndex { | 27 atIndex:(NSUInteger)charIndex { |
36 model_->OnBrandLinkClicked(); | 28 ManagePasswordsBubbleModel* model = [self model]; |
| 29 if (model) |
| 30 model->OnBrandLinkClicked(); |
37 [delegate_ viewShouldDismiss]; | 31 [delegate_ viewShouldDismiss]; |
38 return YES; | 32 return YES; |
39 } | 33 } |
40 | 34 |
41 - (base::scoped_nsobject<NSButton>)newCloseButton { | 35 - (base::scoped_nsobject<NSButton>)newCloseButton { |
42 const int dimension = chrome_style::GetCloseButtonSize(); | 36 const int dimension = chrome_style::GetCloseButtonSize(); |
43 NSRect frame = NSMakeRect(0, 0, dimension, dimension); | 37 NSRect frame = NSMakeRect(0, 0, dimension, dimension); |
44 base::scoped_nsobject<NSButton> button( | 38 base::scoped_nsobject<NSButton> button( |
45 [[WebUIHoverCloseButton alloc] initWithFrame:frame]); | 39 [[WebUIHoverCloseButton alloc] initWithFrame:frame]); |
46 [button setAction:@selector(viewShouldDismiss)]; | 40 [button setAction:@selector(viewShouldDismiss)]; |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
83 // password row, and the buttons row on one line each, but not smaller than | 77 // password row, and the buttons row on one line each, but not smaller than |
84 // kDesiredBubbleWidth. | 78 // kDesiredBubbleWidth. |
85 | 79 |
86 // Create the elements and add them to the view. | 80 // Create the elements and add them to the view. |
87 | 81 |
88 // Close button. | 82 // Close button. |
89 closeButton_ = [self newCloseButton]; | 83 closeButton_ = [self newCloseButton]; |
90 [view addSubview:closeButton_]; | 84 [view addSubview:closeButton_]; |
91 | 85 |
92 // Title. | 86 // Title. |
| 87 ManagePasswordsBubbleModel* model = [self model]; |
93 HyperlinkTextView* titleView = TitleLabelWithLink( | 88 HyperlinkTextView* titleView = TitleLabelWithLink( |
94 model_->title(), model_->title_brand_link_range(), self); | 89 model->title(), model->title_brand_link_range(), self); |
95 | 90 |
96 // Force the text to wrap to fit in the bubble size. | 91 // Force the text to wrap to fit in the bubble size. |
97 int titleRightPadding = | 92 int titleRightPadding = |
98 2 * chrome_style::kCloseButtonPadding + NSWidth([closeButton_ frame]); | 93 2 * chrome_style::kCloseButtonPadding + NSWidth([closeButton_ frame]); |
99 int titleWidth = kDesiredBubbleWidth - kFramePadding - titleRightPadding; | 94 int titleWidth = kDesiredBubbleWidth - kFramePadding - titleRightPadding; |
100 [titleView setVerticallyResizable:YES]; | 95 [titleView setVerticallyResizable:YES]; |
101 [titleView setFrameSize:NSMakeSize(titleWidth, MAXFLOAT)]; | 96 [titleView setFrameSize:NSMakeSize(titleWidth, MAXFLOAT)]; |
102 // Set the same text inset as in |passwordRow|. | 97 // Set the same text inset as in |passwordRow|. |
103 [[titleView textContainer] setLineFragmentPadding:kTitleTextInset]; | 98 [[titleView textContainer] setLineFragmentPadding:kTitleTextInset]; |
104 [titleView sizeToFit]; | 99 [titleView sizeToFit]; |
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
170 [closeButton_ setFrameOrigin:closeButtonOrigin]; | 165 [closeButton_ setFrameOrigin:closeButtonOrigin]; |
171 | 166 |
172 // Update the bubble size. | 167 // Update the bubble size. |
173 | 168 |
174 [view setFrame:NSMakeRect(0, 0, width, height)]; | 169 [view setFrame:NSMakeRect(0, 0, width, height)]; |
175 | 170 |
176 [self setView:view]; | 171 [self setView:view]; |
177 } | 172 } |
178 | 173 |
179 - (ManagePasswordsBubbleModel*)model { | 174 - (ManagePasswordsBubbleModel*)model { |
180 return model_; | 175 return [delegate_ model]; |
181 } | 176 } |
182 | 177 |
183 @end | 178 @end |
184 | 179 |
185 @implementation PendingPasswordViewController (Testing) | 180 @implementation PendingPasswordViewController (Testing) |
186 | 181 |
187 - (NSButton*)closeButton { | 182 - (NSButton*)closeButton { |
188 return closeButton_.get(); | 183 return closeButton_.get(); |
189 } | 184 } |
190 | 185 |
191 @end | 186 @end |
OLD | NEW |