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

Unified Diff: chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.mm

Issue 12042002: Alternate NTP: Add search token to omnibox (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: address review comments Created 7 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.mm
diff --git a/chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.mm b/chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.mm
index 4d6ef9a8762de2c9025fd145846c667615418288..ee9bbe00f89f0e8518cb671dd3860212026d44b5 100644
--- a/chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.mm
+++ b/chrome/browser/ui/cocoa/location_bar/location_bar_view_mac.mm
@@ -40,7 +40,9 @@
#import "chrome/browser/ui/cocoa/location_bar/location_icon_decoration.h"
#import "chrome/browser/ui/cocoa/location_bar/page_action_decoration.h"
#import "chrome/browser/ui/cocoa/location_bar/plus_decoration.h"
+#import "chrome/browser/ui/cocoa/location_bar/search_token_decoration.h"
#import "chrome/browser/ui/cocoa/location_bar/selected_keyword_decoration.h"
+#import "chrome/browser/ui/cocoa/location_bar/separator_decoration.h"
#import "chrome/browser/ui/cocoa/location_bar/star_decoration.h"
#import "chrome/browser/ui/cocoa/location_bar/web_intents_button_decoration.h"
#import "chrome/browser/ui/cocoa/location_bar/zoom_decoration.h"
@@ -94,8 +96,10 @@ LocationBarViewMac::LocationBarViewMac(
field_(field),
disposition_(CURRENT_TAB),
location_icon_decoration_(new LocationIconDecoration(this)),
+ search_token_decoration_(new SearchTokenDecoration()),
selected_keyword_decoration_(
new SelectedKeywordDecoration(OmniboxViewMac::GetFieldFont())),
+ separator_decoration_(new SeparatorDecoration()),
ev_bubble_decoration_(
new EVBubbleDecoration(location_icon_decoration_.get(),
OmniboxViewMac::GetFieldFont())),
@@ -702,15 +706,20 @@ void LocationBarViewMac::Layout() {
[cell addRightDecoration:keyword_hint_decoration_.get()];
[cell addRightDecoration:web_intents_button_decoration_.get()];
+ [cell addRightDecoration:separator_decoration_.get()];
+ [cell addRightDecoration:search_token_decoration_.get()];
// By default only the location icon is visible.
location_icon_decoration_->SetVisible(true);
selected_keyword_decoration_->SetVisible(false);
ev_bubble_decoration_->SetVisible(false);
keyword_hint_decoration_->SetVisible(false);
+ separator_decoration_->SetVisible(false);
+ search_token_decoration_->SetVisible(false);
// Get the keyword to use for keyword-search and hinting.
const string16 keyword = omnibox_view_->model()->keyword();
+
string16 short_name;
bool is_extension_keyword = false;
if (!keyword.empty()) {
@@ -718,9 +727,16 @@ void LocationBarViewMac::Layout() {
GetKeywordShortName(keyword, &is_extension_keyword);
}
+ const string16 search_provider_name = GetSearchProviderName();
const bool is_keyword_hint = omnibox_view_->model()->is_keyword_hint();
- if (!keyword.empty() && !is_keyword_hint) {
+ const bool show_search_token = !search_provider_name.empty();
+ const bool show_selected_keyword = !keyword.empty() && !is_keyword_hint &&
+ !show_search_token;
+ const bool show_keyword_hint = !keyword.empty() && is_keyword_hint &&
+ !show_search_token;
+
+ if (show_selected_keyword) {
// Switch from location icon to keyword mode.
location_icon_decoration_->SetVisible(false);
selected_keyword_decoration_->SetVisible(true);
@@ -733,10 +749,14 @@ void LocationBarViewMac::Layout() {
string16 label(toolbar_model_->GetEVCertName());
ev_bubble_decoration_->SetFullLabel(base::SysUTF16ToNSString(label));
- } else if (!keyword.empty() && is_keyword_hint) {
+ } else if (show_keyword_hint) {
keyword_hint_decoration_->SetKeyword(short_name,
is_extension_keyword);
keyword_hint_decoration_->SetVisible(true);
+ } else if (show_search_token) {
+ separator_decoration_->SetVisible(true);
+ search_token_decoration_->SetSearchProviderName(search_provider_name);
+ search_token_decoration_->SetVisible(true);
}
// These need to change anytime the layout changes.
@@ -784,3 +804,15 @@ void LocationBarViewMac::UpdatePlusDecorationVisibility() {
plus_decoration_->SetVisible(!toolbar_model_->GetInputInProgress());
}
}
+
+string16 LocationBarViewMac::GetSearchProviderName() const {
+ if (!toolbar_model_->GetInputInProgress() &&
+ toolbar_model_->WouldReplaceSearchURLWithSearchTerms()) {
+ const TemplateURL* template_url =
+ TemplateURLServiceFactory::GetForProfile(profile_)->
+ GetDefaultSearchProvider();
+ if (template_url)
+ return template_url->short_name();
+ }
+ return string16();
+}

Powered by Google App Engine
This is Rietveld 408576698