Index: chrome/browser/android/compositor/layer/contextual_search_layer.cc |
diff --git a/chrome/browser/android/compositor/layer/contextual_search_layer.cc b/chrome/browser/android/compositor/layer/contextual_search_layer.cc |
index 5b87c194a2287d07adc336ad23882ef344056ed7..fc426e1c7b014d38319fbf7af72a4b5463281ac5 100644 |
--- a/chrome/browser/android/compositor/layer/contextual_search_layer.cc |
+++ b/chrome/browser/android/compositor/layer/contextual_search_layer.cc |
@@ -38,6 +38,7 @@ void ContextualSearchLayer::SetProperties( |
int search_provider_icon_resource_id, |
int search_icon_resource_id, |
int arrow_up_resource_id, |
+ int close_icon_resource_id, |
int progress_bar_background_resource_id, |
int progress_bar_resource_id, |
int search_promo_resource_id, |
@@ -63,6 +64,8 @@ void ContextualSearchLayer::SetProperties( |
bool arrow_icon_visible, |
float arrow_icon_opacity, |
float arrow_icon_rotation, |
+ bool close_icon_visible, |
+ float close_icon_opacity, |
bool progress_bar_visible, |
float progress_bar_y, |
float progress_bar_height, |
@@ -232,6 +235,42 @@ void ContextualSearchLayer::SetProperties( |
} |
// --------------------------------------------------------------------------- |
+ // Close Icon |
+ // --------------------------------------------------------------------------- |
+ if (close_icon_visible) { |
+ // Grab the Close Icon resource. |
+ ui::ResourceManager::Resource* close_icon_resource = |
+ resource_manager_->GetResource(ui::ANDROID_RESOURCE_TYPE_STATIC, |
+ close_icon_resource_id); |
+ if (close_icon_->parent() != layer_) { |
+ layer_->AddChild(close_icon_); |
+ } |
+ |
+ // Positions the icon at the end of the Search Bar. |
+ float close_icon_left; |
+ if (is_rtl) { |
+ close_icon_left = search_bar_margin_side; |
+ } else { |
+ close_icon_left = search_panel_width - |
+ close_icon_resource->size.width() - search_bar_margin_side; |
+ } |
+ |
+ // Centers the Close Icon vertically in the Search Bar. |
+ float close_icon_top = search_bar_margin_top + |
+ (search_bar_height - search_bar_margin_top) / 2 - |
+ close_icon_resource->size.height() / 2; |
+ |
+ close_icon_->SetUIResourceId(close_icon_resource->ui_resource->id()); |
+ close_icon_->SetBounds(close_icon_resource->size); |
+ close_icon_->SetPosition( |
+ gfx::PointF(close_icon_left, close_icon_top)); |
+ close_icon_->SetOpacity(close_icon_opacity); |
+ } else { |
+ if (close_icon_.get() && close_icon_->parent()) |
+ close_icon_->RemoveFromParent(); |
+ } |
+ |
+ // --------------------------------------------------------------------------- |
// Search Promo |
// --------------------------------------------------------------------------- |
if (search_promo_visible) { |
@@ -400,6 +439,8 @@ ContextualSearchLayer::ContextualSearchLayer( |
cc::UIResourceLayer::Create(content::Compositor::LayerSettings())), |
arrow_icon_( |
cc::UIResourceLayer::Create(content::Compositor::LayerSettings())), |
+ close_icon_( |
+ cc::UIResourceLayer::Create(content::Compositor::LayerSettings())), |
content_view_container_( |
cc::Layer::Create(content::Compositor::LayerSettings())), |
search_bar_border_( |
@@ -434,6 +475,9 @@ ContextualSearchLayer::ContextualSearchLayer( |
// Arrow Icon |
arrow_icon_->SetIsDrawable(true); |
+ // Close Icon |
+ close_icon_->SetIsDrawable(true); |
+ |
// Search Opt Out Promo |
search_promo_container_->SetIsDrawable(true); |
search_promo_container_->SetBackgroundColor(kSearchBackgroundColor); |