1// Copyright 2014 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#ifndef CHROME_BROWSER_UI_AUTOFILL_PASSWORD_GENERATION_POPUP_VIEW_H_
6#define CHROME_BROWSER_UI_AUTOFILL_PASSWORD_GENERATION_POPUP_VIEW_H_
7
8#include "third_party/skia/include/core/SkColor.h"
9
10namespace gfx {
11class Point;
12class Size;
13}
14
15namespace autofill {
16
17class PasswordGenerationPopupController;
18
19// Interface for creating and controlling a platform dependent view.
20class PasswordGenerationPopupView {
21 public:
22  // Number of pixels added in between lines of the help section.
23  static const int kHelpSectionAdditionalSpacing = 3;
24
25  // Display the popup.
26  virtual void Show() = 0;
27
28  // This will cause the popup to be deleted.
29  virtual void Hide() = 0;
30
31  // Get desired size of the popup.
32  virtual gfx::Size GetPreferredSizeOfPasswordView() = 0;
33
34  // Updates layout information from the controller.
35  virtual void UpdateBoundsAndRedrawPopup() = 0;
36
37  // Called when the password selection state has changed.
38  virtual void PasswordSelectionUpdated() = 0;
39
40  virtual bool IsPointInPasswordBounds(const gfx::Point& point) = 0;
41
42  // Note that PasswordGenerationPopupView owns itself, and will only be deleted
43  // when Hide() is called.
44  static PasswordGenerationPopupView* Create(
45      PasswordGenerationPopupController* controller);
46
47  static const SkColor kPasswordTextColor;
48  static const SkColor kExplanatoryTextBackgroundColor;
49  static const SkColor kExplanatoryTextColor;
50  static const SkColor kDividerColor;
51};
52
53}  // namespace autofill
54
55#endif  // CHROME_BROWSER_UI_AUTOFILL_PASSWORD_GENERATION_POPUP_VIEW_H_
56