Upstream version 11.40.271.0
[platform/framework/web/crosswalk.git] / src / chrome / browser / ui / android / autofill / password_generation_popup_view_android.h
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_ANDROID_AUTOFILL_PASSWORD_GENERATION_POPUP_VIEW_ANDROID_H_
6 #define CHROME_BROWSER_UI_ANDROID_AUTOFILL_PASSWORD_GENERATION_POPUP_VIEW_ANDROID_H_
7
8 #include <jni.h>
9
10 #include "base/android/scoped_java_ref.h"
11 #include "base/compiler_specific.h"
12 #include "chrome/browser/ui/autofill/password_generation_popup_view.h"
13
14 namespace autofill {
15
16 class PasswordGenerationPopupController;
17
18 // The android implementation of the password generation UI.
19 class PasswordGenerationPopupViewAndroid : public PasswordGenerationPopupView {
20  public:
21   // Builds the UI for the |controller|.
22   explicit PasswordGenerationPopupViewAndroid(
23       PasswordGenerationPopupController* controller);
24
25   // Called from JNI when the "saved passwords" link was clicked.
26   void SavedPasswordsLinkClicked(JNIEnv* env, jobject obj);
27
28   // Called from JNI when the popup was dismissed.
29   void Dismissed(JNIEnv* env, jobject obj);
30
31   // Called from JNI when the suggested password was selected.
32   void PasswordSelected(JNIEnv* env, jobject object);
33
34   // Registers the popup with JNI.
35   static bool Register(JNIEnv* env);
36
37  private:
38   // The popup owns itself.
39   virtual ~PasswordGenerationPopupViewAndroid();
40
41   // PasswordGenerationPopupView implementation.
42   virtual void Show() override;
43   virtual void Hide() override;
44   virtual gfx::Size GetPreferredSizeOfPasswordView() override;
45   virtual void UpdateBoundsAndRedrawPopup() override;
46   virtual void PasswordSelectionUpdated() override;
47   virtual bool IsPointInPasswordBounds(const gfx::Point& point) override;
48
49   // Weak pointer to the controller.
50   PasswordGenerationPopupController* controller_;
51
52   // The corresponding java object.
53   base::android::ScopedJavaGlobalRef<jobject> java_object_;
54
55   DISALLOW_COPY_AND_ASSIGN(PasswordGenerationPopupViewAndroid);
56 };
57
58 }  // namespace autofill
59
60 #endif  // CHROME_BROWSER_UI_ANDROID_AUTOFILL_PASSWORD_GENERATION_POPUP_VIEW_ANDROID_H_