generated_credit_card_view.cc revision 3551c9c881056c480085172ff9840cab31610854
16588c4e2dfa6d1995a69aadec386c4c1c467a666jvr// Copyright 2013 The Chromium Authors. All rights reserved.
20de2a0f1d5d461d47bb5e13476976d9c9ed0a3bdjvr// Use of this source code is governed by a BSD-style license that can be
36cc5887e46f0dca6c898136f677e0cdb47ebf593Just// found in the LICENSE file.
46cc5887e46f0dca6c898136f677e0cdb47ebf593Just
56cc5887e46f0dca6c898136f677e0cdb47ebf593Just#include "chrome/browser/ui/views/location_bar/generated_credit_card_view.h"
66cc5887e46f0dca6c898136f677e0cdb47ebf593Just
76cc5887e46f0dca6c898136f677e0cdb47ebf593Just#include "chrome/browser/ui/autofill/generated_credit_card_bubble_controller.h"
86cc5887e46f0dca6c898136f677e0cdb47ebf593Just#include "chrome/browser/ui/toolbar/toolbar_model.h"
96cc5887e46f0dca6c898136f677e0cdb47ebf593Just#include "ui/gfx/image/image.h"
106cc5887e46f0dca6c898136f677e0cdb47ebf593Just
116cc5887e46f0dca6c898136f677e0cdb47ebf593JustGeneratedCreditCardView::GeneratedCreditCardView(
126cc5887e46f0dca6c898136f677e0cdb47ebf593Just    LocationBarView::Delegate* delegate)
136cc5887e46f0dca6c898136f677e0cdb47ebf593Just    : delegate_(delegate) {
146cc5887e46f0dca6c898136f677e0cdb47ebf593Just  Update();
156cc5887e46f0dca6c898136f677e0cdb47ebf593Just}
166cc5887e46f0dca6c898136f677e0cdb47ebf593Just
176cc5887e46f0dca6c898136f677e0cdb47ebf593JustGeneratedCreditCardView::~GeneratedCreditCardView() {}
186cc5887e46f0dca6c898136f677e0cdb47ebf593Just
196cc5887e46f0dca6c898136f677e0cdb47ebf593Justvoid GeneratedCreditCardView::Update() {
206cc5887e46f0dca6c898136f677e0cdb47ebf593Just  autofill::GeneratedCreditCardBubbleController* controller = GetController();
216cc5887e46f0dca6c898136f677e0cdb47ebf593Just  if (controller && !controller->AnchorIcon().IsEmpty()) {
226cc5887e46f0dca6c898136f677e0cdb47ebf593Just    SetVisible(true);
236cc5887e46f0dca6c898136f677e0cdb47ebf593Just    SetImage(controller->AnchorIcon().AsImageSkia());
246cc5887e46f0dca6c898136f677e0cdb47ebf593Just  } else {
256cc5887e46f0dca6c898136f677e0cdb47ebf593Just    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