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

Side by Side Diff: chrome/browser/views/location_bar/selected_keyword_view.cc

Issue 2078021: First pass at experimental omnibox API. There are plenty of rough edges and (Closed)
Patch Set: no prefer_keyword Created 10 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
« no previous file with comments | « chrome/browser/views/location_bar/keyword_hint_view.cc ('k') | chrome/chrome_browser.gypi » ('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 (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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/views/location_bar/selected_keyword_view.h" 5 #include "chrome/browser/views/location_bar/selected_keyword_view.h"
6 6
7 #include "app/l10n_util.h" 7 #include "app/l10n_util.h"
8 #include "base/i18n/rtl.h" 8 #include "base/i18n/rtl.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "chrome/browser/search_engines/template_url_model.h"
10 #include "chrome/browser/profile.h" 11 #include "chrome/browser/profile.h"
11 #include "chrome/browser/views/location_bar/keyword_hint_view.h" 12 #include "chrome/browser/views/location_bar/keyword_hint_view.h"
12 #include "grit/generated_resources.h" 13 #include "grit/generated_resources.h"
13 14
14 SelectedKeywordView::SelectedKeywordView(const int background_images[], 15 SelectedKeywordView::SelectedKeywordView(const int background_images[],
15 int contained_image, 16 int contained_image,
16 const SkColor& color, 17 const SkColor& color,
17 Profile* profile) 18 Profile* profile)
18 : IconLabelBubbleView(background_images, contained_image, color), 19 : IconLabelBubbleView(background_images, contained_image, color),
19 profile_(profile) { 20 profile_(profile) {
(...skipping 29 matching lines...) Expand all
49 } 50 }
50 51
51 void SelectedKeywordView::SetKeyword(const std::wstring& keyword) { 52 void SelectedKeywordView::SetKeyword(const std::wstring& keyword) {
52 keyword_ = keyword; 53 keyword_ = keyword;
53 if (keyword.empty()) 54 if (keyword.empty())
54 return; 55 return;
55 DCHECK(profile_); 56 DCHECK(profile_);
56 if (!profile_->GetTemplateURLModel()) 57 if (!profile_->GetTemplateURLModel())
57 return; 58 return;
58 59
59 const std::wstring short_name = 60 bool is_extension_keyword;
60 KeywordHintView::GetKeywordName(profile_, keyword); 61 const std::wstring short_name = profile_->GetTemplateURLModel()->
61 full_label_.SetText(l10n_util::GetStringF(IDS_OMNIBOX_KEYWORD_TEXT, 62 GetKeywordShortName(keyword, &is_extension_keyword);
62 short_name)); 63 int message_id = is_extension_keyword ?
64 IDS_OMNIBOX_EXTENSION_KEYWORD_TEXT : IDS_OMNIBOX_KEYWORD_TEXT;
65 full_label_.SetText(l10n_util::GetStringF(message_id, short_name));
63 const std::wstring min_string = CalculateMinString(short_name); 66 const std::wstring min_string = CalculateMinString(short_name);
64 partial_label_.SetText(min_string.empty() ? 67 partial_label_.SetText(min_string.empty() ?
65 full_label_.GetText() : 68 full_label_.GetText() :
66 l10n_util::GetStringF(IDS_OMNIBOX_KEYWORD_TEXT, min_string)); 69 l10n_util::GetStringF(message_id, min_string));
67 } 70 }
68 71
69 std::wstring SelectedKeywordView::CalculateMinString( 72 std::wstring SelectedKeywordView::CalculateMinString(
70 const std::wstring& description) { 73 const std::wstring& description) {
71 // Chop at the first '.' or whitespace. 74 // Chop at the first '.' or whitespace.
72 const size_t dot_index = description.find(L'.'); 75 const size_t dot_index = description.find(L'.');
73 const size_t ws_index = description.find_first_of(kWhitespaceWide); 76 const size_t ws_index = description.find_first_of(kWhitespaceWide);
74 size_t chop_index = std::min(dot_index, ws_index); 77 size_t chop_index = std::min(dot_index, ws_index);
75 std::wstring min_string; 78 std::wstring min_string;
76 if (chop_index == std::wstring::npos) { 79 if (chop_index == std::wstring::npos) {
77 // No dot or whitespace, truncate to at most 3 chars. 80 // No dot or whitespace, truncate to at most 3 chars.
78 min_string = l10n_util::TruncateString(description, 3); 81 min_string = l10n_util::TruncateString(description, 3);
79 } else { 82 } else {
80 min_string = description.substr(0, chop_index); 83 min_string = description.substr(0, chop_index);
81 } 84 }
82 base::i18n::AdjustStringForLocaleDirection(min_string, &min_string); 85 base::i18n::AdjustStringForLocaleDirection(min_string, &min_string);
83 return min_string; 86 return min_string;
84 } 87 }
OLDNEW
« no previous file with comments | « chrome/browser/views/location_bar/keyword_hint_view.cc ('k') | chrome/chrome_browser.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698