Index: chrome/browser/ui/cocoa/autofill/autofill_dialog_cocoa.h |
diff --git a/chrome/browser/ui/android/autofill/autofill_dialog_view_android.h b/chrome/browser/ui/cocoa/autofill/autofill_dialog_cocoa.h |
similarity index 30% |
copy from chrome/browser/ui/android/autofill/autofill_dialog_view_android.h |
copy to chrome/browser/ui/cocoa/autofill/autofill_dialog_cocoa.h |
index 517e156ff70c1ad6fcc02de179027740211be7eb..d144c7485d79869fafb10590e6589ae55432a5ef 100644 |
--- a/chrome/browser/ui/android/autofill/autofill_dialog_view_android.h |
+++ b/chrome/browser/ui/cocoa/autofill/autofill_dialog_cocoa.h |
@@ -2,31 +2,35 @@ |
// Use of this source code is governed by a BSD-style license that can be |
// found in the LICENSE file. |
-#ifndef CHROME_BROWSER_UI_ANDROID_AUTOFILL_AUTOFILL_DIALOG_VIEW_ANDROID_H_ |
-#define CHROME_BROWSER_UI_ANDROID_AUTOFILL_AUTOFILL_DIALOG_VIEW_ANDROID_H_ |
+#ifndef CHROME_BROWSER_UI_COCOA_AUTOFILL_AUTOFILL_DIALOG_COCOA_H_ |
+#define CHROME_BROWSER_UI_COCOA_AUTOFILL_AUTOFILL_DIALOG_COCOA_H_ |
-#include <jni.h> |
- |
-#include "base/android/jni_string.h" |
-#include "base/android/scoped_java_ref.h" |
+#include "base/memory/scoped_ptr.h" |
#include "chrome/browser/ui/autofill/autofill_dialog_controller.h" |
#include "chrome/browser/ui/autofill/autofill_dialog_view.h" |
+#include "chrome/browser/ui/cocoa/constrained_window/constrained_window_mac.h" |
+ |
+namespace content { |
+ class NavigationController; |
+} |
+ |
+@class AutofillDialogWindowController; |
+@class GTMWidthBasedTweaker; |
namespace autofill { |
-// Android implementation of the Autofill dialog that handles the imperative |
-// autocomplete API call. |
-class AutofillDialogViewAndroid : public AutofillDialogView { |
+class AutofillDialogCocoa : public AutofillDialogView, |
+ public ConstrainedWindowMacDelegate { |
public: |
- explicit AutofillDialogViewAndroid(AutofillDialogController* controller); |
- virtual ~AutofillDialogViewAndroid(); |
+ explicit AutofillDialogCocoa(AutofillDialogController* controller); |
+ virtual ~AutofillDialogCocoa(); |
// AutofillDialogView implementation: |
virtual void Show() OVERRIDE; |
virtual void Hide() OVERRIDE; |
- virtual void UpdateNotificationArea() OVERRIDE; |
virtual void UpdateAccountChooser() OVERRIDE; |
virtual void UpdateButtonStrip() OVERRIDE; |
+ virtual void UpdateNotificationArea() OVERRIDE; |
virtual void UpdateSection(DialogSection section, |
UserInputAction action) OVERRIDE; |
virtual void GetUserInput(DialogSection section, |
@@ -41,61 +45,39 @@ class AutofillDialogViewAndroid : public AutofillDialogView { |
virtual void SubmitForTesting() OVERRIDE; |
virtual void CancelForTesting() OVERRIDE; |
- // Java to C++ calls |
- void ItemSelected(JNIEnv* env, jobject obj, jint section, jint index); |
- void AccountSelected(JNIEnv* env, jobject obj, jint index); |
- void EditingStart(JNIEnv* env, jobject obj, jint section); |
- jboolean EditingComplete(JNIEnv* env, jobject obj, jint section); |
- void EditingCancel(JNIEnv* env, jobject obj, jint section); |
- base::android::ScopedJavaLocalRef<jstring> ValidateField( |
- JNIEnv* env, jobject obj, jint type, jstring value); |
- void ValidateSection(JNIEnv* env, jobject obj, jint section); |
- void DialogSubmit(JNIEnv* env, jobject obj); |
- void DialogCancel(JNIEnv* env, jobject obj); |
- base::android::ScopedJavaLocalRef<jstring> GetLabelForSection( |
- JNIEnv* env, |
- jobject obj, |
- jint section); |
- base::android::ScopedJavaLocalRef<jobjectArray> GetListForField(JNIEnv* env, |
- jobject obj, |
- jint field); |
- void ContinueAutomaticSignin(JNIEnv* env, jobject obj, |
- jstring account_name, jstring sid, jstring lsid); |
- base::android::ScopedJavaLocalRef<jobject> GetIconForField( |
- JNIEnv* env, |
- jobject obj, |
- jint field_id, |
- jstring jinput); |
- base::android::ScopedJavaLocalRef<jstring> GetPlaceholderForField( |
- JNIEnv* env, |
- jobject obj, |
- jint section, |
- jint field_id); |
- |
- static bool RegisterAutofillDialogViewAndroid(JNIEnv* env); |
+ // ConstrainedWindowMacDelegate implementation. |
+ virtual void OnConstrainedWindowClosed( |
+ ConstrainedWindowMac* window) OVERRIDE; |
+ |
+ void PerformClose(); |
private: |
- // Returns the list of available user accounts. |
- std::vector<std::string> GetAvailableUserAccounts(); |
- bool ValidateSection(DialogSection section, |
- AutofillDialogController::ValidationType type); |
- // Starts an automatic sign-in attempt for a given account. |
- bool StartAutomaticSignIn(const std::string& username); |
+ scoped_ptr<ConstrainedWindowMac> constrained_window_; |
+ scoped_nsobject<AutofillDialogWindowController> sheet_controller_; |
- // Updates the visibility of the checkbox to save the edited information |
- // locally. |
- void UpdateSaveLocallyCheckBox(); |
+ // The controller |this| queries for logic and state. |
+ AutofillDialogController* controller_; |
+}; |
- // The controller that drives this view. Weak pointer, always non-NULL. |
- AutofillDialogController* const controller_; |
+} // autofill |
- // The corresponding java object. |
- base::android::ScopedJavaGlobalRef<jobject> java_object_; |
+@interface AutofillDialogWindowController : NSWindowController |
+ <NSWindowDelegate> { |
+ @private |
+ content::WebContents* webContents_; // weak. |
+ autofill::AutofillDialogCocoa* autofillDialog_; // weak. |
- DISALLOW_COPY_AND_ASSIGN(AutofillDialogViewAndroid); |
-}; |
+ scoped_nsobject<GTMWidthBasedTweaker> buttonContainer_; |
+} |
+ |
+// Designated initializer. The WebContents cannot be NULL. |
+- (id)initWithWebContents:(content::WebContents*)webContents |
+ autofillDialog:(autofill::AutofillDialogCocoa*)autofillDialog; |
+ |
+// Closes the sheet and ends the modal loop. This will also clean up the memory. |
+- (IBAction)closeSheet:(id)sender; |
-} // namespace autofill |
+@end |
-#endif // CHROME_BROWSER_UI_ANDROID_AUTOFILL_AUTOFILL_DIALOG_VIEW_ANDROID_H_ |
+#endif // CHROME_BROWSER_UI_COCOA_AUTOFILL_AUTOFILL_DIALOG_COCOA_H_ |