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

Side by Side Diff: chrome/browser/ui/cocoa/omnibox/omnibox_popup_cell.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_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 465 matching lines...) Expand 10 before | Expand all | Expand 10 after
476 } 476 }
477 477
478 - (void)drawMatchWithFrame:(NSRect)cellFrame inView:(NSView*)controlView { 478 - (void)drawMatchWithFrame:(NSRect)cellFrame inView:(NSView*)controlView {
479 bool isVerticalLayout = 479 bool isVerticalLayout =
480 base::FeatureList::IsEnabled(omnibox::kUIExperimentVerticalLayout); 480 base::FeatureList::IsEnabled(omnibox::kUIExperimentVerticalLayout);
481 481
482 OmniboxPopupCellData* cellData = 482 OmniboxPopupCellData* cellData =
483 base::mac::ObjCCastStrict<OmniboxPopupCellData>([self objectValue]); 483 base::mac::ObjCCastStrict<OmniboxPopupCellData>([self objectValue]);
484 OmniboxPopupMatrix* tableView = 484 OmniboxPopupMatrix* tableView =
485 base::mac::ObjCCastStrict<OmniboxPopupMatrix>(controlView); 485 base::mac::ObjCCastStrict<OmniboxPopupMatrix>(controlView);
486 CGFloat remainingWidth = [OmniboxPopupCell getContentAreaWidth:cellFrame] - 486 CGFloat remainingWidth =
487 [tableView contentLeftPadding]; 487 [OmniboxPopupCell getTextContentAreaWidth:[tableView contentMaxWidth]];
488 CGFloat contentsWidth = [cellData getMatchContentsWidth]; 488 CGFloat contentsWidth = [cellData getMatchContentsWidth];
489 CGFloat separatorWidth = [[tableView separator] size].width; 489 CGFloat separatorWidth = [[tableView separator] size].width;
490 CGFloat descriptionWidth = 490 CGFloat descriptionWidth =
491 [cellData description] ? [[cellData description] size].width : 0; 491 [cellData description] ? [[cellData description] size].width : 0;
492 int contentsMaxWidth, descriptionMaxWidth; 492 int contentsMaxWidth, descriptionMaxWidth;
493 OmniboxPopupModel::ComputeMatchMaxWidths( 493 OmniboxPopupModel::ComputeMatchMaxWidths(
494 ceilf(contentsWidth), ceilf(separatorWidth), ceilf(descriptionWidth), 494 ceilf(contentsWidth), ceilf(separatorWidth), ceilf(descriptionWidth),
495 ceilf(remainingWidth), [cellData isAnswer] || isVerticalLayout, 495 ceilf(remainingWidth), [cellData isAnswer] || isVerticalLayout,
496 !AutocompleteMatch::IsSearchType([cellData matchType]), &contentsMaxWidth, 496 !AutocompleteMatch::IsSearchType([cellData matchType]), &contentsMaxWidth,
497 &descriptionMaxWidth); 497 &descriptionMaxWidth);
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
579 } 579 }
580 } 580 }
581 581
582 - (CGFloat)drawMatchPrefixWithFrame:(NSRect)cellFrame 582 - (CGFloat)drawMatchPrefixWithFrame:(NSRect)cellFrame
583 tableView:(OmniboxPopupMatrix*)tableView 583 tableView:(OmniboxPopupMatrix*)tableView
584 withContentsMaxWidth:(int*)contentsMaxWidth 584 withContentsMaxWidth:(int*)contentsMaxWidth
585 forDarkTheme:(BOOL)isDarkTheme { 585 forDarkTheme:(BOOL)isDarkTheme {
586 OmniboxPopupCellData* cellData = 586 OmniboxPopupCellData* cellData =
587 base::mac::ObjCCastStrict<OmniboxPopupCellData>([self objectValue]); 587 base::mac::ObjCCastStrict<OmniboxPopupCellData>([self objectValue]);
588 CGFloat offset = 0.0f; 588 CGFloat offset = 0.0f;
589 CGFloat remainingWidth = [OmniboxPopupCell getContentAreaWidth:cellFrame] - 589 CGFloat remainingWidth =
590 [tableView contentLeftPadding]; 590 [OmniboxPopupCell getTextContentAreaWidth:[tableView contentMaxWidth]];
591 CGFloat prefixWidth = [[cellData prefix] size].width; 591 CGFloat prefixWidth = [[cellData prefix] size].width;
592 592
593 CGFloat prefixOffset = 0.0f; 593 CGFloat prefixOffset = 0.0f;
594 if (base::i18n::IsRTL() != [cellData isContentsRTL]) { 594 if (base::i18n::IsRTL() != [cellData isContentsRTL]) {
595 // The contents is rendered between the contents offset extending towards 595 // The contents is rendered between the contents offset extending towards
596 // the start edge, while prefix is rendered in opposite direction. Ideally 596 // the start edge, while prefix is rendered in opposite direction. Ideally
597 // the prefix should be rendered at |contentsOffset_|. If that is not 597 // the prefix should be rendered at |contentsOffset_|. If that is not
598 // sufficient to render the widest suggestion, we increase it to 598 // sufficient to render the widest suggestion, we increase it to
599 // |maxMatchContentsWidth|. If |remainingWidth| is not sufficient to 599 // |maxMatchContentsWidth|. If |remainingWidth| is not sufficient to
600 // accommodate that, we reduce the offset so that the prefix gets rendered. 600 // accommodate that, we reduce the offset so that the prefix gets rendered.
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
713 glyphOffset += glyphWidth; 713 glyphOffset += glyphWidth;
714 return base::i18n::IsRTL() ? (inputWidth - glyphOffset) : glyphOffset; 714 return base::i18n::IsRTL() ? (inputWidth - glyphOffset) : glyphOffset;
715 } 715 }
716 716
717 + (NSAttributedString*)createSeparatorStringForDarkTheme:(BOOL)isDarkTheme { 717 + (NSAttributedString*)createSeparatorStringForDarkTheme:(BOOL)isDarkTheme {
718 base::string16 raw_separator = 718 base::string16 raw_separator =
719 l10n_util::GetStringUTF16(IDS_AUTOCOMPLETE_MATCH_DESCRIPTION_SEPARATOR); 719 l10n_util::GetStringUTF16(IDS_AUTOCOMPLETE_MATCH_DESCRIPTION_SEPARATOR);
720 return CreateAttributedString(raw_separator, DimTextColor(isDarkTheme)); 720 return CreateAttributedString(raw_separator, DimTextColor(isDarkTheme));
721 } 721 }
722 722
723 + (CGFloat)getContentAreaWidth:(NSRect)cellFrame { 723 + (CGFloat)getTextContentAreaWidth:(CGFloat)cellContentMaxWidth {
724 return NSWidth(cellFrame) - kMaterialTextStartOffset; 724 return cellContentMaxWidth - kMaterialTextStartOffset;
725 } 725 }
726 726
727 + (CGFloat)getContentTextHeightForDoubleLine:(BOOL)isDoubleLine { 727 + (CGFloat)getContentTextHeightForDoubleLine:(BOOL)isDoubleLine {
728 CGFloat height = kDefaultTextHeight + 2 * GetVerticalMargin(); 728 CGFloat height = kDefaultTextHeight + 2 * GetVerticalMargin();
729 if (isDoubleLine) 729 if (isDoubleLine)
730 height += kDefaultTextHeight + kDefaultVerticalMargin; 730 height += kDefaultTextHeight + kDefaultVerticalMargin;
731 return height; 731 return height;
732 } 732 }
733 733
734 @end 734 @end
OLDNEW
« no previous file with comments | « chrome/browser/ui/cocoa/omnibox/omnibox_popup_cell.h ('k') | chrome/browser/ui/cocoa/omnibox/omnibox_popup_matrix.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698