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" |
(...skipping 72 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 | 83 // password row, and the buttons row on one line each, but not smaller than |
84 // kDesiredBubbleWidth. | 84 // kDesiredBubbleWidth. |
85 | 85 |
86 // Create the elements and add them to the view. | 86 // Create the elements and add them to the view. |
87 | 87 |
88 // Close button. | 88 // Close button. |
89 closeButton_ = [self newCloseButton]; | 89 closeButton_ = [self newCloseButton]; |
90 [view addSubview:closeButton_]; | 90 [view addSubview:closeButton_]; |
91 | 91 |
92 // Title. | 92 // Title. |
93 base::scoped_nsobject<HyperlinkTextView> titleView( | 93 HyperlinkTextView* titleView = TitleLabelWithLink( |
94 [[HyperlinkTextView alloc] initWithFrame:NSZeroRect]); | 94 model_->title(), model_->title_brand_link_range(), self); |
95 NSColor* textColor = [NSColor blackColor]; | |
96 NSFont* font = ResourceBundle::GetSharedInstance() | |
97 .GetFontList(ResourceBundle::SmallFont) | |
98 .GetPrimaryFont() | |
99 .GetNativeFont(); | |
100 [titleView setMessage:base::SysUTF16ToNSString(model_->title()) | |
101 withFont:font | |
102 messageColor:textColor]; | |
103 NSRange titleBrandLinkRange = model_->title_brand_link_range().ToNSRange(); | |
104 if (titleBrandLinkRange.length) { | |
105 NSColor* linkColor = | |
106 skia::SkColorToCalibratedNSColor(chrome_style::GetLinkColor()); | |
107 [titleView addLinkRange:titleBrandLinkRange | |
108 withURL:nil | |
109 linkColor:linkColor]; | |
110 [titleView.get() setDelegate:self]; | |
111 | |
112 // Create the link with no underlining. | |
113 [titleView setLinkTextAttributes:nil]; | |
114 NSTextStorage* text = [titleView textStorage]; | |
115 [text addAttribute:NSUnderlineStyleAttributeName | |
116 value:@(NSUnderlineStyleNone) | |
117 range:titleBrandLinkRange]; | |
118 } else { | |
119 // TODO(vasilii): remove if crbug.com/515189 is fixed. | |
120 [titleView setRefusesFirstResponder:YES]; | |
121 } | |
122 | 95 |
123 // Force the text to wrap to fit in the bubble size. | 96 // Force the text to wrap to fit in the bubble size. |
124 int titleRightPadding = | 97 int titleRightPadding = |
125 2 * chrome_style::kCloseButtonPadding + NSWidth([closeButton_ frame]); | 98 2 * chrome_style::kCloseButtonPadding + NSWidth([closeButton_ frame]); |
126 int titleWidth = kDesiredBubbleWidth - kFramePadding - titleRightPadding; | 99 int titleWidth = kDesiredBubbleWidth - kFramePadding - titleRightPadding; |
127 [titleView setVerticallyResizable:YES]; | 100 [titleView setVerticallyResizable:YES]; |
128 [titleView setFrameSize:NSMakeSize(titleWidth, MAXFLOAT)]; | 101 [titleView setFrameSize:NSMakeSize(titleWidth, MAXFLOAT)]; |
129 // Set the same text inset as in |passwordRow|. | 102 // Set the same text inset as in |passwordRow|. |
130 [[titleView textContainer] setLineFragmentPadding:kTitleTextInset]; | 103 [[titleView textContainer] setLineFragmentPadding:kTitleTextInset]; |
131 [titleView sizeToFit]; | 104 [titleView sizeToFit]; |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
209 | 182 |
210 @end | 183 @end |
211 | 184 |
212 @implementation PendingPasswordViewController (Testing) | 185 @implementation PendingPasswordViewController (Testing) |
213 | 186 |
214 - (NSButton*)closeButton { | 187 - (NSButton*)closeButton { |
215 return closeButton_.get(); | 188 return closeButton_.get(); |
216 } | 189 } |
217 | 190 |
218 @end | 191 @end |
OLD | NEW |