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

Side by Side Diff: chrome/browser/ui/views/omnibox/omnibox_result_view.cc

Issue 1865213004: Convert //chrome/browser/ui from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 8 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 // For WinDDK ATL compatibility, these ATL headers must come first. 5 // For WinDDK ATL compatibility, these ATL headers must come first.
6 #include "build/build_config.h" 6 #include "build/build_config.h"
7 7
8 #if defined(OS_WIN) 8 #if defined(OS_WIN)
9 #include <atlbase.h> // NOLINT 9 #include <atlbase.h> // NOLINT
10 #include <atlwin.h> // NOLINT 10 #include <atlwin.h> // NOLINT
(...skipping 437 matching lines...) Expand 10 before | Expand all | Expand 10 after
448 if (render_text_type == CONTENTS && 448 if (render_text_type == CONTENTS &&
449 match.type == AutocompleteMatchType::SEARCH_SUGGEST_TAIL) { 449 match.type == AutocompleteMatchType::SEARCH_SUGGEST_TAIL) {
450 // When the directionality of suggestion doesn't match the UI, we try to 450 // When the directionality of suggestion doesn't match the UI, we try to
451 // vertically stack the ellipsis by restricting the end edge (right_x). 451 // vertically stack the ellipsis by restricting the end edge (right_x).
452 const bool is_ui_rtl = base::i18n::IsRTL(); 452 const bool is_ui_rtl = base::i18n::IsRTL();
453 const bool is_match_contents_rtl = 453 const bool is_match_contents_rtl =
454 (render_text->GetDisplayTextDirection() == base::i18n::RIGHT_TO_LEFT); 454 (render_text->GetDisplayTextDirection() == base::i18n::RIGHT_TO_LEFT);
455 const int offset = 455 const int offset =
456 GetDisplayOffset(match, is_ui_rtl, is_match_contents_rtl); 456 GetDisplayOffset(match, is_ui_rtl, is_match_contents_rtl);
457 457
458 scoped_ptr<gfx::RenderText> prefix_render_text( 458 std::unique_ptr<gfx::RenderText> prefix_render_text(
459 CreateRenderText(base::UTF8ToUTF16( 459 CreateRenderText(base::UTF8ToUTF16(
460 match.GetAdditionalInfo(kACMatchPropertyContentsPrefix)))); 460 match.GetAdditionalInfo(kACMatchPropertyContentsPrefix))));
461 const int prefix_width = prefix_render_text->GetContentWidth(); 461 const int prefix_width = prefix_render_text->GetContentWidth();
462 int prefix_x = x; 462 int prefix_x = x;
463 463
464 const int max_match_contents_width = model_->max_match_contents_width(); 464 const int max_match_contents_width = model_->max_match_contents_width();
465 465
466 if (is_ui_rtl != is_match_contents_rtl) { 466 if (is_ui_rtl != is_match_contents_rtl) {
467 // RTL infinite suggestions appear near the left edge in LTR UI, while LTR 467 // RTL infinite suggestions appear near the left edge in LTR UI, while LTR
468 // infinite suggestions appear near the right edge in RTL UI. This is 468 // infinite suggestions appear near the right edge in RTL UI. This is
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
503 // Set the display rect to trigger eliding. 503 // Set the display rect to trigger eliding.
504 const int height = (render_text_type == DESCRIPTION && match.answer) ? 504 const int height = (render_text_type == DESCRIPTION && match.answer) ?
505 GetAnswerLineHeight() : GetContentLineHeight(); 505 GetAnswerLineHeight() : GetContentLineHeight();
506 render_text->SetDisplayRect( 506 render_text->SetDisplayRect(
507 gfx::Rect(mirroring_context_->mirrored_left_coord(x, right_x), y, 507 gfx::Rect(mirroring_context_->mirrored_left_coord(x, right_x), y,
508 right_x - x, height)); 508 right_x - x, height));
509 render_text->Draw(canvas); 509 render_text->Draw(canvas);
510 return right_x; 510 return right_x;
511 } 511 }
512 512
513 scoped_ptr<gfx::RenderText> OmniboxResultView::CreateRenderText( 513 std::unique_ptr<gfx::RenderText> OmniboxResultView::CreateRenderText(
514 const base::string16& text) const { 514 const base::string16& text) const {
515 scoped_ptr<gfx::RenderText> render_text(gfx::RenderText::CreateInstance()); 515 std::unique_ptr<gfx::RenderText> render_text(
516 gfx::RenderText::CreateInstance());
516 render_text->SetDisplayRect(gfx::Rect(gfx::Size(INT_MAX, 0))); 517 render_text->SetDisplayRect(gfx::Rect(gfx::Size(INT_MAX, 0)));
517 render_text->SetCursorEnabled(false); 518 render_text->SetCursorEnabled(false);
518 render_text->SetElideBehavior(gfx::ELIDE_TAIL); 519 render_text->SetElideBehavior(gfx::ELIDE_TAIL);
519 render_text->SetFontList(font_list_); 520 render_text->SetFontList(font_list_);
520 render_text->SetText(text); 521 render_text->SetText(text);
521 return render_text; 522 return render_text;
522 } 523 }
523 524
524 scoped_ptr<gfx::RenderText> OmniboxResultView::CreateClassifiedRenderText( 525 std::unique_ptr<gfx::RenderText> OmniboxResultView::CreateClassifiedRenderText(
525 const base::string16& text, 526 const base::string16& text,
526 const ACMatchClassifications& classifications, 527 const ACMatchClassifications& classifications,
527 bool force_dim) const { 528 bool force_dim) const {
528 scoped_ptr<gfx::RenderText> render_text(CreateRenderText(text)); 529 std::unique_ptr<gfx::RenderText> render_text(CreateRenderText(text));
529 const size_t text_length = render_text->text().length(); 530 const size_t text_length = render_text->text().length();
530 for (size_t i = 0; i < classifications.size(); ++i) { 531 for (size_t i = 0; i < classifications.size(); ++i) {
531 const size_t text_start = classifications[i].offset; 532 const size_t text_start = classifications[i].offset;
532 if (text_start >= text_length) 533 if (text_start >= text_length)
533 break; 534 break;
534 535
535 const size_t text_end = (i < (classifications.size() - 1)) ? 536 const size_t text_end = (i < (classifications.size() - 1)) ?
536 std::min(classifications[i + 1].offset, text_length) : 537 std::min(classifications[i + 1].offset, text_length) :
537 text_length; 538 text_length;
538 const gfx::Range current_range(text_start, text_end); 539 const gfx::Range current_range(text_start, text_end);
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
584 bool is_match_contents_rtl) const { 585 bool is_match_contents_rtl) const {
585 if (match.type != AutocompleteMatchType::SEARCH_SUGGEST_TAIL) 586 if (match.type != AutocompleteMatchType::SEARCH_SUGGEST_TAIL)
586 return 0; 587 return 0;
587 588
588 const base::string16& input_text = 589 const base::string16& input_text =
589 base::UTF8ToUTF16(match.GetAdditionalInfo(kACMatchPropertyInputText)); 590 base::UTF8ToUTF16(match.GetAdditionalInfo(kACMatchPropertyInputText));
590 int contents_start_index = 0; 591 int contents_start_index = 0;
591 base::StringToInt(match.GetAdditionalInfo(kACMatchPropertyContentsStartIndex), 592 base::StringToInt(match.GetAdditionalInfo(kACMatchPropertyContentsStartIndex),
592 &contents_start_index); 593 &contents_start_index);
593 594
594 scoped_ptr<gfx::RenderText> input_render_text(CreateRenderText(input_text)); 595 std::unique_ptr<gfx::RenderText> input_render_text(
596 CreateRenderText(input_text));
595 const gfx::Range& glyph_bounds = 597 const gfx::Range& glyph_bounds =
596 input_render_text->GetGlyphBounds(contents_start_index); 598 input_render_text->GetGlyphBounds(contents_start_index);
597 const int start_padding = is_match_contents_rtl ? 599 const int start_padding = is_match_contents_rtl ?
598 std::max(glyph_bounds.start(), glyph_bounds.end()) : 600 std::max(glyph_bounds.start(), glyph_bounds.end()) :
599 std::min(glyph_bounds.start(), glyph_bounds.end()); 601 std::min(glyph_bounds.start(), glyph_bounds.end());
600 602
601 return is_ui_rtl ? 603 return is_ui_rtl ?
602 (input_render_text->GetContentWidth() - start_padding) : start_padding; 604 (input_render_text->GetContentWidth() - start_padding) : start_padding;
603 } 605 }
604 606
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
788 .GetFontList(GetTextStyle(1).font) 790 .GetFontList(GetTextStyle(1).font)
789 .GetHeight(); 791 .GetHeight();
790 } 792 }
791 793
792 int OmniboxResultView::GetContentLineHeight() const { 794 int OmniboxResultView::GetContentLineHeight() const {
793 return std::max( 795 return std::max(
794 default_icon_size_ + GetLayoutInsets(OMNIBOX_DROPDOWN_ICON).height(), 796 default_icon_size_ + GetLayoutInsets(OMNIBOX_DROPDOWN_ICON).height(),
795 GetTextHeight() + GetLayoutInsets(OMNIBOX_DROPDOWN_TEXT).height()); 797 GetTextHeight() + GetLayoutInsets(OMNIBOX_DROPDOWN_TEXT).height());
796 } 798 }
797 799
798 scoped_ptr<gfx::RenderText> OmniboxResultView::CreateAnswerLine( 800 std::unique_ptr<gfx::RenderText> OmniboxResultView::CreateAnswerLine(
799 const SuggestionAnswer::ImageLine& line, 801 const SuggestionAnswer::ImageLine& line,
800 gfx::FontList font_list) { 802 gfx::FontList font_list) {
801 scoped_ptr<gfx::RenderText> destination = CreateRenderText(base::string16()); 803 std::unique_ptr<gfx::RenderText> destination =
804 CreateRenderText(base::string16());
802 destination->SetFontList(font_list); 805 destination->SetFontList(font_list);
803 806
804 for (const SuggestionAnswer::TextField& text_field : line.text_fields()) 807 for (const SuggestionAnswer::TextField& text_field : line.text_fields())
805 AppendAnswerText(destination.get(), text_field.text(), text_field.type()); 808 AppendAnswerText(destination.get(), text_field.text(), text_field.type());
806 const base::char16 space(' '); 809 const base::char16 space(' ');
807 const auto* text_field = line.additional_text(); 810 const auto* text_field = line.additional_text();
808 if (text_field) { 811 if (text_field) {
809 AppendAnswerText(destination.get(), space + text_field->text(), 812 AppendAnswerText(destination.get(), space + text_field->text(),
810 text_field->type()); 813 text_field->type());
811 } 814 }
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
865 868
866 int OmniboxResultView::StartMargin() const { 869 int OmniboxResultView::StartMargin() const {
867 return ui::MaterialDesignController::IsModeMaterial() ? 870 return ui::MaterialDesignController::IsModeMaterial() ?
868 model_->start_margin() : 0; 871 model_->start_margin() : 0;
869 } 872 }
870 873
871 int OmniboxResultView::EndMargin() const { 874 int OmniboxResultView::EndMargin() const {
872 return ui::MaterialDesignController::IsModeMaterial() ? 875 return ui::MaterialDesignController::IsModeMaterial() ?
873 model_->end_margin() : 0; 876 model_->end_margin() : 0;
874 } 877 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/views/omnibox/omnibox_result_view.h ('k') | chrome/browser/ui/views/omnibox/omnibox_view_views.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698