1ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch// Copyright 2013 The Chromium Authors. All rights reserved. 2ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 3ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch// found in the LICENSE file. 4ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 5ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch#ifndef CHROME_BROWSER_UI_AUTOFILL_GENERATED_CREDIT_CARD_BUBBLE_VIEW_H_ 6ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch#define CHROME_BROWSER_UI_AUTOFILL_GENERATED_CREDIT_CARD_BUBBLE_VIEW_H_ 7ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 8ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch#include "base/memory/weak_ptr.h" 9ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 10ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdochnamespace autofill { 11ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 12ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdochclass GeneratedCreditCardBubbleController; 13ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 14ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch// A cross-platform interface for a bubble shown to educate users after a credit 15ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch// card number is generated. Anchored to an omnibox icon and shown either on 16ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch// creation or when the anchor is clicked. Hidden when focus is lost. 17ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdochclass GeneratedCreditCardBubbleView { 18ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch public: 19ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch // The preferred size of the bubble's contents. 20ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch static const int kContentsWidth; 21ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 22ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch virtual ~GeneratedCreditCardBubbleView(); 23ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 24ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch // Visually reveals the bubble. 25ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch virtual void Show() = 0; 26ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 27ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch // Hides the bubble from view. 28ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch virtual void Hide() = 0; 29ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 30ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch // Returns whether the bubble is currently in the process of hiding itself. 31ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch virtual bool IsHiding() const = 0; 32ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 33ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch // Creates a bubble that's operated by |controller| and owns itself. 34ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch // |controller| may be invalid while the bubble is closing. 35ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch static base::WeakPtr<GeneratedCreditCardBubbleView> Create( 36ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch const base::WeakPtr<GeneratedCreditCardBubbleController>& controller); 37ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch}; 38ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 39ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch} // namespace autofill 40ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch 41ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch#endif // CHROME_BROWSER_UI_AUTOFILL_GENERATED_CREDIT_CARD_BUBBLE_VIEW_H_ 42