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 3// found in the LICENSE file. 4 5#include "chrome/browser/ui/views/location_bar/generated_credit_card_view.h" 6 7#include "chrome/browser/ui/autofill/generated_credit_card_bubble_controller.h" 8#include "chrome/browser/ui/toolbar/toolbar_model.h" 9#include "ui/gfx/image/image.h" 10 11GeneratedCreditCardView::GeneratedCreditCardView( 12 LocationBarView::Delegate* delegate) 13 : delegate_(delegate) { 14 Update(); 15} 16 17GeneratedCreditCardView::~GeneratedCreditCardView() {} 18 19void GeneratedCreditCardView::Update() { 20 autofill::GeneratedCreditCardBubbleController* controller = GetController(); 21 if (controller && !controller->AnchorIcon().IsEmpty()) { 22 SetVisible(true); 23 SetImage(controller->AnchorIcon().AsImageSkia()); 24 } else { 25 SetVisible(false); 26 SetImage(NULL); 27 } 28} 29 30// TODO(dbeam): figure out what to do for a tooltip and accessibility. 31 32bool GeneratedCreditCardView::CanHandleClick() const { 33 autofill::GeneratedCreditCardBubbleController* controller = GetController(); 34 return controller && !controller->IsHiding(); 35} 36 37void GeneratedCreditCardView::OnClick() { 38 autofill::GeneratedCreditCardBubbleController* controller = GetController(); 39 if (controller) 40 controller->OnAnchorClicked(); 41} 42 43autofill::GeneratedCreditCardBubbleController* GeneratedCreditCardView:: 44 GetController() const { 45 content::WebContents* wc = delegate_->GetWebContents(); 46 if (!wc || delegate_->GetToolbarModel()->input_in_progress()) 47 return NULL; 48 49 return autofill::GeneratedCreditCardBubbleController::FromWebContents(wc); 50} 51