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

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

Issue 7108024: Make selection in omnibox break at periods. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: cleanup Created 9 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 | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 "chrome/browser/ui/cocoa/omnibox/omnibox_view_mac.h" 5 #include "chrome/browser/ui/cocoa/omnibox/omnibox_view_mac.h"
6 6
7 #include <Carbon/Carbon.h> // kVK_Return 7 #include <Carbon/Carbon.h> // kVK_Return
8 8
9 #include "app/mac/nsimage_cache.h" 9 #include "app/mac/nsimage_cache.h"
10 #include "base/string_util.h" 10 #include "base/string_util.h"
(...skipping 514 matching lines...) Expand 10 before | Expand all | Expand 10 after
525 ApplyTextAttributes(GetText(), storage); 525 ApplyTextAttributes(GetText(), storage);
526 526
527 [storage endEditing]; 527 [storage endEditing];
528 } else { 528 } else {
529 SetText(GetText()); 529 SetText(GetText());
530 } 530 }
531 } 531 }
532 532
533 void OmniboxViewMac::ApplyTextAttributes(const string16& display_text, 533 void OmniboxViewMac::ApplyTextAttributes(const string16& display_text,
534 NSMutableAttributedString* as) { 534 NSMutableAttributedString* as) {
535 NSUInteger as_length = [as length];
536 NSRange as_entire_string = NSMakeRange(0, as_length);
537
535 [as addAttribute:NSFontAttributeName value:GetFieldFont() 538 [as addAttribute:NSFontAttributeName value:GetFieldFont()
536 range:NSMakeRange(0, [as length])]; 539 range:as_entire_string];
540
541 // A kinda hacky way to add breaking at periods. This is what Safari does.
542 // This works for IDNs too, despite the "en_US".
543 [as addAttribute:@"NSLanguage" value:@"en_US_POSIX"
544 range:as_entire_string];
537 545
538 // Make a paragraph style locking in the standard line height as the maximum, 546 // Make a paragraph style locking in the standard line height as the maximum,
539 // otherwise the baseline may shift "downwards". 547 // otherwise the baseline may shift "downwards".
540 scoped_nsobject<NSMutableParagraphStyle> 548 scoped_nsobject<NSMutableParagraphStyle>
541 paragraph_style([[NSMutableParagraphStyle alloc] init]); 549 paragraph_style([[NSMutableParagraphStyle alloc] init]);
542 [paragraph_style setMaximumLineHeight:line_height_]; 550 [paragraph_style setMaximumLineHeight:line_height_];
543 [as addAttribute:NSParagraphStyleAttributeName value:paragraph_style 551 [as addAttribute:NSParagraphStyleAttributeName value:paragraph_style
544 range:NSMakeRange(0, [as length])]; 552 range:as_entire_string];
545 553
546 // Grey out the suggest text. 554 // Grey out the suggest text.
547 [as addAttribute:NSForegroundColorAttributeName value:SuggestTextColor() 555 [as addAttribute:NSForegroundColorAttributeName value:SuggestTextColor()
548 range:NSMakeRange([as length] - suggest_text_length_, 556 range:NSMakeRange(as_length - suggest_text_length_,
549 suggest_text_length_)]; 557 suggest_text_length_)];
550 558
551 url_parse::Component scheme, host; 559 url_parse::Component scheme, host;
552 AutocompleteInput::ParseForEmphasizeComponents( 560 AutocompleteInput::ParseForEmphasizeComponents(
553 display_text, model_->GetDesiredTLD(), &scheme, &host); 561 display_text, model_->GetDesiredTLD(), &scheme, &host);
554 const bool emphasize = model_->CurrentTextIsURL() && (host.len > 0); 562 const bool emphasize = model_->CurrentTextIsURL() && (host.len > 0);
555 if (emphasize) { 563 if (emphasize) {
556 [as addAttribute:NSForegroundColorAttributeName value:BaseTextColor() 564 [as addAttribute:NSForegroundColorAttributeName value:BaseTextColor()
557 range:NSMakeRange(0, [as length])]; 565 range:as_entire_string];
558 566
559 [as addAttribute:NSForegroundColorAttributeName value:HostTextColor() 567 [as addAttribute:NSForegroundColorAttributeName value:HostTextColor()
560 range:ComponentToNSRange(host)]; 568 range:ComponentToNSRange(host)];
561 } 569 }
562 570
563 // TODO(shess): GTK has this as a member var, figure out why. 571 // TODO(shess): GTK has this as a member var, figure out why.
564 // [Could it be to not change if no change? If so, I'm guessing 572 // [Could it be to not change if no change? If so, I'm guessing
565 // AppKit may already handle that.] 573 // AppKit may already handle that.]
566 const ToolbarModel::SecurityLevel security_level = 574 const ToolbarModel::SecurityLevel security_level =
567 toolbar_model_->GetSecurityLevel(); 575 toolbar_model_->GetSecurityLevel();
(...skipping 539 matching lines...) Expand 10 before | Expand all | Expand 10 after
1107 1115
1108 void OmniboxViewMac::PlaceCaretAt(NSUInteger pos) { 1116 void OmniboxViewMac::PlaceCaretAt(NSUInteger pos) {
1109 DCHECK(pos <= GetTextLength()); 1117 DCHECK(pos <= GetTextLength());
1110 SetSelectedRange(NSMakeRange(pos, pos)); 1118 SetSelectedRange(NSMakeRange(pos, pos));
1111 } 1119 }
1112 1120
1113 bool OmniboxViewMac::IsCaretAtEnd() const { 1121 bool OmniboxViewMac::IsCaretAtEnd() const {
1114 const NSRange selection = GetSelectedRange(); 1122 const NSRange selection = GetSelectedRange();
1115 return selection.length == 0 && selection.location == GetTextLength(); 1123 return selection.length == 0 && selection.location == GetTextLength();
1116 } 1124 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698