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

Side by Side Diff: chrome/browser/ui/cocoa/omnibox/omnibox_popup_matrix.mm

Issue 2927193002: Omnibox UI: Create right-margin on Cocoa dropdown (Closed)
Patch Set: merge Created 3 years, 6 months 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 #import "chrome/browser/ui/cocoa/omnibox/omnibox_popup_matrix.h" 5 #import "chrome/browser/ui/cocoa/omnibox/omnibox_popup_matrix.h"
6 6
7 #include "base/feature_list.h" 7 #include "base/feature_list.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/mac/foundation_util.h" 9 #include "base/mac/foundation_util.h"
10 #import "chrome/browser/ui/cocoa/omnibox/omnibox_popup_cell.h" 10 #import "chrome/browser/ui/cocoa/omnibox/omnibox_popup_cell.h"
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 [OmniboxPopupCell getContentTextHeightForDoubleLine:isDoubleLine]; 115 [OmniboxPopupCell getContentTextHeightForDoubleLine:isDoubleLine];
116 116
117 if (isAnswer) { 117 if (isAnswer) {
118 OmniboxPopupMatrix* matrix = 118 OmniboxPopupMatrix* matrix =
119 base::mac::ObjCCastStrict<OmniboxPopupMatrix>(tableView); 119 base::mac::ObjCCastStrict<OmniboxPopupMatrix>(tableView);
120 NSRect rowRect = [tableView rectOfColumn:0]; 120 NSRect rowRect = [tableView rectOfColumn:0];
121 OmniboxPopupCellData* cellData = 121 OmniboxPopupCellData* cellData =
122 base::mac::ObjCCastStrict<OmniboxPopupCellData>( 122 base::mac::ObjCCastStrict<OmniboxPopupCellData>(
123 [array_ objectAtIndex:row]); 123 [array_ objectAtIndex:row]);
124 // Subtract any Material Design padding and/or icon. 124 // Subtract any Material Design padding and/or icon.
125 rowRect.size.width = [OmniboxPopupCell getContentAreaWidth:rowRect] - 125 rowRect.size.width =
126 [matrix contentLeftPadding]; 126 [OmniboxPopupCell getTextContentAreaWidth:[matrix contentMaxWidth]];
127 NSAttributedString* text = [cellData description]; 127 NSAttributedString* text = [cellData description];
128 // Provide no more than 3 lines of space. 128 // Provide no more than 3 lines of space.
129 rowRect.size.height = 129 rowRect.size.height =
130 std::min(3, [cellData maxLines]) * [text size].height; 130 std::min(3, [cellData maxLines]) * [text size].height;
131 NSRect textRect = 131 NSRect textRect =
132 [text boundingRectWithSize:rowRect.size 132 [text boundingRectWithSize:rowRect.size
133 options:NSStringDrawingUsesLineFragmentOrigin | 133 options:NSStringDrawingUsesLineFragmentOrigin |
134 NSStringDrawingTruncatesLastVisibleLine]; 134 NSStringDrawingTruncatesLastVisibleLine];
135 // Add a little padding or it looks cramped. 135 // Add a little padding or it looks cramped.
136 int heightProvided = textRect.size.height + 2; 136 int heightProvided = textRect.size.height + 2;
137 height += heightProvided; 137 height += heightProvided;
138 } 138 }
139 return height; 139 return height;
140 } 140 }
141 141
142 @end 142 @end
143 143
144 @implementation OmniboxPopupMatrix 144 @implementation OmniboxPopupMatrix
145 145
146 @synthesize separator = separator_; 146 @synthesize separator = separator_;
147 @synthesize maxMatchContentsWidth = maxMatchContentsWidth_; 147 @synthesize maxMatchContentsWidth = maxMatchContentsWidth_;
148 @synthesize contentLeftPadding = contentLeftPadding_; 148 @synthesize contentLeftPadding = contentLeftPadding_;
149 @synthesize contentMaxWidth = contentMaxWidth_;
149 @synthesize answerLineHeight = answerLineHeight_; 150 @synthesize answerLineHeight = answerLineHeight_;
150 @synthesize hasDarkTheme = hasDarkTheme_; 151 @synthesize hasDarkTheme = hasDarkTheme_;
151 152
152 - (instancetype)initWithObserver:(OmniboxPopupMatrixObserver*)observer 153 - (instancetype)initWithObserver:(OmniboxPopupMatrixObserver*)observer
153 forDarkTheme:(BOOL)isDarkTheme { 154 forDarkTheme:(BOOL)isDarkTheme {
154 if ((self = [super initWithFrame:NSZeroRect])) { 155 if ((self = [super initWithFrame:NSZeroRect])) {
155 observer_ = observer; 156 observer_ = observer;
156 hasDarkTheme_ = isDarkTheme; 157 hasDarkTheme_ = isDarkTheme;
157 158
158 base::scoped_nsobject<NSTableColumn> column( 159 base::scoped_nsobject<NSTableColumn> column(
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
321 [self selectRowIndex:row]; 322 [self selectRowIndex:row];
322 if (row != -1) { 323 if (row != -1) {
323 DCHECK(observer_); 324 DCHECK(observer_);
324 observer_->OnMatrixRowSelected(self, row); 325 observer_->OnMatrixRowSelected(self, row);
325 return YES; 326 return YES;
326 } 327 }
327 return NO; 328 return NO;
328 } 329 }
329 330
330 @end 331 @end
OLDNEW
« no previous file with comments | « chrome/browser/ui/cocoa/omnibox/omnibox_popup_matrix.h ('k') | chrome/browser/ui/cocoa/omnibox/omnibox_popup_view_mac.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698