Home | History | Annotate | Download | only in android
      1 // Copyright (c) 2012 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_JAVASCRIPT_APP_MODAL_DIALOG_ANDROID_H_
      6 #define CHROME_BROWSER_UI_ANDROID_JAVASCRIPT_APP_MODAL_DIALOG_ANDROID_H_
      7 
      8 #include "base/android/jni_helper.h"
      9 #include "base/android/scoped_java_ref.h"
     10 #include "base/memory/scoped_ptr.h"
     11 #include "chrome/browser/ui/app_modal_dialogs/native_app_modal_dialog.h"
     12 
     13 class JavaScriptAppModalDialog;
     14 
     15 class JavascriptAppModalDialogAndroid : public NativeAppModalDialog {
     16  public:
     17   JavascriptAppModalDialogAndroid(JNIEnv* env,
     18                                   JavaScriptAppModalDialog* dialog,
     19                                   gfx::NativeWindow parent);
     20 
     21   // NativeAppModalDialog:
     22   virtual int GetAppModalDialogButtons() const OVERRIDE;
     23   virtual void ShowAppModalDialog() OVERRIDE;
     24   virtual void ActivateAppModalDialog() OVERRIDE;
     25   virtual void CloseAppModalDialog() OVERRIDE;
     26   virtual void AcceptAppModalDialog() OVERRIDE;
     27   virtual void CancelAppModalDialog() OVERRIDE;
     28 
     29   // Called when java confirms or cancels the dialog.
     30   void DidAcceptAppModalDialog(JNIEnv* env,
     31                                jobject obj,
     32                                jstring prompt_text,
     33                                bool suppress_js_dialogs);
     34   void DidCancelAppModalDialog(JNIEnv* env, jobject, bool suppress_js_dialogs);
     35 
     36   const base::android::ScopedJavaGlobalRef<jobject>& GetDialogObject() const;
     37 
     38   static bool RegisterJavascriptAppModalDialog(JNIEnv* env);
     39 
     40  private:
     41   // The object deletes itself.
     42   virtual ~JavascriptAppModalDialogAndroid();
     43 
     44   scoped_ptr<JavaScriptAppModalDialog> dialog_;
     45   base::android::ScopedJavaGlobalRef<jobject> dialog_jobject_;
     46   JavaObjectWeakGlobalRef parent_jobject_weak_ref_;
     47 
     48   DISALLOW_COPY_AND_ASSIGN(JavascriptAppModalDialogAndroid);
     49 };
     50 
     51 
     52 #endif  // CHROME_BROWSER_UI_ANDROID_JAVASCRIPT_APP_MODAL_DIALOG_ANDROID_H_
     53