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_NEW_CREDIT_CARD_BUBBLE_VIEW_H_
6ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch#define CHROME_BROWSER_UI_AUTOFILL_NEW_CREDIT_CARD_BUBBLE_VIEW_H_
7ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
8ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch#include "base/memory/weak_ptr.h"
9ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
10ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdochnamespace autofill {
11ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
12ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdochclass NewCreditCardBubbleController;
13ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
14ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch// A cross-platform interface for a bubble that is shown when a new credit card
15ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch// is saved. Points at the settings menu in the toolbar and hides when
16ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch// activation is lost.
17ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdochclass NewCreditCardBubbleView {
18ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch public:
19ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  // The preferred width of the bubble's contents.
20ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  static const int kContentsWidth;
21ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
22ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  virtual ~NewCreditCardBubbleView();
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  // Creates a bubble that's operated by |controller| and owns itself.
31ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  // |controller| may be invalid while the bubble is closing.
32ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch  static base::WeakPtr<NewCreditCardBubbleView> Create(
33ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch      NewCreditCardBubbleController* controller);
34ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch};
35ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
36ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch}  // namespace autofill
37ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch
38ba5b9a6411cb1792fd21f0a078d7a25cd1ceec16Ben Murdoch#endif  // CHROME_BROWSER_UI_AUTOFILL_NEW_CREDIT_CARD_BUBBLE_VIEW_H_
39