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

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

Issue 2091473003: Factor parsing "ln=" to SuggestionAnswer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Reorder lines Created 4 years, 5 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
« no previous file with comments | « no previous file | chrome/browser/ui/views/omnibox/omnibox_result_view.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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_cell.h" 5 #import "chrome/browser/ui/cocoa/omnibox/omnibox_popup_cell.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <cmath> 10 #include <cmath>
(...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after
261 if (end == base::string16::npos) 261 if (end == base::string16::npos)
262 break; 262 break;
263 [result appendAttributedString:CreateAnswerStringHelper( 263 [result appendAttributedString:CreateAnswerStringHelper(
264 text.substr(begin, end - begin), 264 text.substr(begin, end - begin),
265 style_type, true, is_dark_theme)]; 265 style_type, true, is_dark_theme)];
266 begin = end + end_tag.length(); 266 begin = end + end_tag.length();
267 } 267 }
268 return result.autorelease(); 268 return result.autorelease();
269 } 269 }
270 270
271 int ParseNumLines(const SuggestionAnswer::TextFields& text_fields) {
272 for (const SuggestionAnswer::TextField& text_field : text_fields) {
273 if (text_field.has_num_lines() && text_field.num_lines() > 1)
274 return text_field.num_lines();
275 }
276 return 1;
277 }
278
279 NSAttributedString* CreateAnswerLine(const SuggestionAnswer::ImageLine& line, 271 NSAttributedString* CreateAnswerLine(const SuggestionAnswer::ImageLine& line,
280 BOOL is_dark_theme) { 272 BOOL is_dark_theme) {
281 base::scoped_nsobject<NSMutableAttributedString> answer_string( 273 base::scoped_nsobject<NSMutableAttributedString> answer_string(
282 [[NSMutableAttributedString alloc] init]); 274 [[NSMutableAttributedString alloc] init]);
283 DCHECK(!line.text_fields().empty()); 275 DCHECK(!line.text_fields().empty());
284 for (const SuggestionAnswer::TextField& text_field : line.text_fields()) { 276 for (const SuggestionAnswer::TextField& text_field : line.text_fields()) {
285 [answer_string appendAttributedString:CreateAnswerString(text_field.text(), 277 [answer_string appendAttributedString:CreateAnswerString(text_field.text(),
286 text_field.type(), 278 text_field.type(),
287 is_dark_theme)]; 279 is_dark_theme)];
288 } 280 }
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after
437 base::UTF8ToUTF16( 429 base::UTF8ToUTF16(
438 match.GetAdditionalInfo(kACMatchPropertyContentsPrefix)), 430 match.GetAdditionalInfo(kACMatchPropertyContentsPrefix)),
439 ContentTextColor(isDarkTheme), textAlignment) retain]; 431 ContentTextColor(isDarkTheme), textAlignment) retain];
440 432
441 isAnswer_ = !!match.answer; 433 isAnswer_ = !!match.answer;
442 if (isAnswer_) { 434 if (isAnswer_) {
443 contents_ = 435 contents_ =
444 [CreateAnswerLine(match.answer->first_line(), isDarkTheme) retain]; 436 [CreateAnswerLine(match.answer->first_line(), isDarkTheme) retain];
445 description_ = 437 description_ =
446 [CreateAnswerLine(match.answer->second_line(), isDarkTheme) retain]; 438 [CreateAnswerLine(match.answer->second_line(), isDarkTheme) retain];
447 max_lines_ = ParseNumLines(match.answer->second_line().text_fields()); 439 max_lines_ = match.answer->second_line().num_text_lines();
448 } else { 440 } else {
449 contents_ = [CreateClassifiedAttributedString( 441 contents_ = [CreateClassifiedAttributedString(
450 match.contents, ContentTextColor(isDarkTheme), match.contents_class, 442 match.contents, ContentTextColor(isDarkTheme), match.contents_class,
451 isDarkTheme) retain]; 443 isDarkTheme) retain];
452 if (!match.description.empty()) { 444 if (!match.description.empty()) {
453 description_ = [CreateClassifiedAttributedString( 445 description_ = [CreateClassifiedAttributedString(
454 match.description, DimTextColor(isDarkTheme), 446 match.description, DimTextColor(isDarkTheme),
455 match.description_class, isDarkTheme) retain]; 447 match.description_class, isDarkTheme) retain];
456 } 448 }
457 max_lines_ = 1; 449 max_lines_ = 1;
(...skipping 269 matching lines...) Expand 10 before | Expand all | Expand 10 after
727 base::string16 raw_separator = 719 base::string16 raw_separator =
728 l10n_util::GetStringUTF16(IDS_AUTOCOMPLETE_MATCH_DESCRIPTION_SEPARATOR); 720 l10n_util::GetStringUTF16(IDS_AUTOCOMPLETE_MATCH_DESCRIPTION_SEPARATOR);
729 return CreateAttributedString(raw_separator, DimTextColor(isDarkTheme)); 721 return CreateAttributedString(raw_separator, DimTextColor(isDarkTheme));
730 } 722 }
731 723
732 + (CGFloat)getContentAreaWidth:(NSRect)cellFrame { 724 + (CGFloat)getContentAreaWidth:(NSRect)cellFrame {
733 return NSWidth(cellFrame) - TextStartOffset(); 725 return NSWidth(cellFrame) - TextStartOffset();
734 } 726 }
735 727
736 @end 728 @end
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/ui/views/omnibox/omnibox_result_view.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698