summaryrefslogtreecommitdiffstats
path: root/chrome/browser/autofill/autofill_dialog.h
blob: de70e533fa838bbd0f2cd20d32d10cfb78d4c485 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// Copyright (c) 2010 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.

#ifndef CHROME_BROWSER_AUTOFILL_AUTOFILL_DIALOG_H_
#define CHROME_BROWSER_AUTOFILL_AUTOFILL_DIALOG_H_

#include <vector>

#include "chrome/browser/autofill/autofill_profile.h"
#include "chrome/browser/autofill/credit_card.h"
#include "gfx/native_widget_types.h"

class Profile;

// An interface the AutoFill dialog uses to notify its clients (observers) when
// the user has applied changes to the AutoFill profile data.
class AutoFillDialogObserver {
 public:
  // The user has confirmed changes by clicking "Apply" or "OK".  Any of the
  // parameters may be NULL. A NULL parameter is treated as not changing the
  // existing data. For example, |OnAutoFillDialogApply(new_profiles, NULL)|
  // only sets the profiles and not the credit cards.
  virtual void OnAutoFillDialogApply(
      std::vector<AutoFillProfile>* profiles,
      std::vector<CreditCard>* credit_cards) = 0;

 protected:
  virtual ~AutoFillDialogObserver() {}
};

// Shows the AutoFill dialog, which allows the user to edit profile information.
// |profile| is profile from which you can get vectors of autofill profiles that
// contains the current profile information and credit cards.  The dialog fills
// out the profile fields using this data.
//
// |observer| will be notified by OnAutoFillDialogAccept when the user has
// applied changes.  May not be NULL.
//
// The |parent| parameter (currently only used on Windows) specifies the parent
// view in the view hierarchy.  May be NULL on Mac and gtk.
void ShowAutoFillDialog(gfx::NativeView parent,
                        AutoFillDialogObserver* observer,
                        Profile* profile);

#endif  // CHROME_BROWSER_AUTOFILL_AUTOFILL_DIALOG_H_