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