blob: ff914b6442a8cb746ee7f45c11c3d686b16e8224 [file] [log] [blame]
// Copyright 2013 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "chrome/browser/ui/views/location_bar/generated_credit_card_view.h"
#include "chrome/browser/ui/autofill/generated_credit_card_bubble_controller.h"
#include "chrome/browser/ui/toolbar/toolbar_model.h"
#include "ui/gfx/image/image.h"
GeneratedCreditCardView::GeneratedCreditCardView(
ToolbarModel* toolbar_model,
LocationBarView::Delegate* delegate)
: toolbar_model_(toolbar_model),
delegate_(delegate) {
Update();
}
GeneratedCreditCardView::~GeneratedCreditCardView() {}
void GeneratedCreditCardView::Update() {
autofill::GeneratedCreditCardBubbleController* controller = GetController();
if (controller && !controller->AnchorIcon().IsEmpty()) {
SetVisible(true);
SetImage(controller->AnchorIcon().AsImageSkia());
} else {
SetVisible(false);
SetImage(NULL);
}
}
// TODO(dbeam): figure out what to do for a tooltip and accessibility.
bool GeneratedCreditCardView::CanHandleClick() const {
autofill::GeneratedCreditCardBubbleController* controller = GetController();
return controller && !controller->IsHiding();
}
void GeneratedCreditCardView::OnClick() {
autofill::GeneratedCreditCardBubbleController* controller = GetController();
if (controller)
controller->OnAnchorClicked();
}
autofill::GeneratedCreditCardBubbleController* GeneratedCreditCardView::
GetController() const {
content::WebContents* wc = delegate_->GetWebContents();
if (!wc || toolbar_model_->GetInputInProgress())
return NULL;
return autofill::GeneratedCreditCardBubbleController::FromWebContents(wc);
}