password_generation_popup_view.h revision 116680a4aac90f2aa7413d9095a592090648e557
1aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger// Copyright 2014 The Chromium Authors. All rights reserved.
2aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger// Use of this source code is governed by a BSD-style license that can be
3aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger// found in the LICENSE file.
4aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger
5aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger#ifndef CHROME_BROWSER_UI_AUTOFILL_PASSWORD_GENERATION_POPUP_VIEW_H_
6aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger#define CHROME_BROWSER_UI_AUTOFILL_PASSWORD_GENERATION_POPUP_VIEW_H_
7aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger
8aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger#include "third_party/skia/include/core/SkColor.h"
9aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger
10aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingernamespace gfx {
11aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerclass Point;
12aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerclass Size;
13aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger}
14aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger
15aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingernamespace autofill {
16aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger
17aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerclass PasswordGenerationPopupController;
181d93483985f0aa2d2afc72dde5179ff3f79a0999Patrick McHardy
19aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger// Interface for creating and controlling a platform dependent view.
20aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemmingerclass PasswordGenerationPopupView {
21aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger public:
22aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger  // Number of pixels added in between lines of the help section.
23aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger  static const int kHelpSectionAdditionalSpacing = 3;
24aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger
25aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger  // Display the popup.
26aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger  virtual void Show() = 0;
27aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger
28aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger  // This will cause the popup to be deleted.
29aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger  virtual void Hide() = 0;
30aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger
31aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger  // Get desired size of the popup.
32aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger  virtual gfx::Size GetPreferredSizeOfPasswordView() = 0;
33aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger
34aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger  // Updates layout information from the controller.
351d93483985f0aa2d2afc72dde5179ff3f79a0999Patrick McHardy  virtual void UpdateBoundsAndRedrawPopup() = 0;
365e3bb534ae179be141a92eb1a4e2eb48094193b7Andreas Henriksson
375c434a9e5a5eafec09ec9939b255948843423f80Christoph J. Thompson  // Called when the password selection state has changed.
38b514b3587ee56552fcc87a066c955a7ff4f55d6fRafael Almeida  virtual void PasswordSelectionUpdated() = 0;
39aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger
40aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger  virtual bool IsPointInPasswordBounds(const gfx::Point& point) = 0;
41750a405a5a6f6cdae7d14609b49051e59738177eStephen Hemminger
42aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger  // Note that PasswordGenerationPopupView owns itself, and will only be deleted
43aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger  // when Hide() is called.
44aba5acdfdb347d2c21fc67d613d83d4430ca3937osdl.org!shemminger  static PasswordGenerationPopupView* Create(
45750a405a5a6f6cdae7d14609b49051e59738177eStephen Hemminger      PasswordGenerationPopupController* controller);
46a22e92951d21d0f796040d0d6c00d59a1e188bcaSridhar Samudrala
47750a405a5a6f6cdae7d14609b49051e59738177eStephen Hemminger  static const SkColor kExplanatoryTextBackgroundColor;
48750a405a5a6f6cdae7d14609b49051e59738177eStephen Hemminger  static const SkColor kExplanatoryTextColor;
49750a405a5a6f6cdae7d14609b49051e59738177eStephen Hemminger  static const SkColor kDividerColor;
50750a405a5a6f6cdae7d14609b49051e59738177eStephen Hemminger};
51750a405a5a6f6cdae7d14609b49051e59738177eStephen Hemminger
52750a405a5a6f6cdae7d14609b49051e59738177eStephen Hemminger}  // namespace autofill
53750a405a5a6f6cdae7d14609b49051e59738177eStephen Hemminger
54db02608b6f408998ea8c823fb791cead3e574f50Vlad Dogaru#endif  // CHROME_BROWSER_UI_AUTOFILL_PASSWORD_GENERATION_POPUP_VIEW_H_
55750a405a5a6f6cdae7d14609b49051e59738177eStephen Hemminger