diff options
author | Zeno Albisser <zeno.albisser@digia.com> | 2013-08-15 21:46:11 +0200 |
---|---|---|
committer | Zeno Albisser <zeno.albisser@digia.com> | 2013-08-15 21:46:11 +0200 |
commit | 679147eead574d186ebf3069647b4c23e8ccace6 (patch) | |
tree | fc247a0ac8ff119f7c8550879ebb6d3dd8d1ff69 /chromium/ui/shell_dialogs/select_file_dialog_android.h | |
download | qtwebengine-chromium-679147eead574d186ebf3069647b4c23e8ccace6.tar.gz |
Initial import.
Diffstat (limited to 'chromium/ui/shell_dialogs/select_file_dialog_android.h')
-rw-r--r-- | chromium/ui/shell_dialogs/select_file_dialog_android.h | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/chromium/ui/shell_dialogs/select_file_dialog_android.h b/chromium/ui/shell_dialogs/select_file_dialog_android.h new file mode 100644 index 00000000000..911dc483ed6 --- /dev/null +++ b/chromium/ui/shell_dialogs/select_file_dialog_android.h @@ -0,0 +1,66 @@ +// Copyright (c) 2013 The Chromium Authors. All rights reserved. +// Use of this source code is governed by a BSD-style license that can be +// found in the LICENSE file. + +#ifndef UI_SHELL_DIALOGS_ANDROID_SELECT_FILE_DIALOG_ANDROID_H_ +#define UI_SHELL_DIALOGS_ANDROID_SELECT_FILE_DIALOG_ANDROID_H_ + +#include <jni.h> + +#include "base/android/scoped_java_ref.h" +#include "base/files/file_path.h" +#include "ui/shell_dialogs/select_file_dialog.h" + +namespace ui { + +class SelectFileDialogImpl : public SelectFileDialog { + public: + static SelectFileDialogImpl* Create(Listener* listener, + SelectFilePolicy* policy); + + void OnFileSelected(JNIEnv* env, jobject java_object, jstring filepath); + void OnFileNotSelected(JNIEnv* env, jobject java_object); + + // From SelectFileDialog + virtual bool IsRunning(gfx::NativeWindow) const OVERRIDE; + virtual void ListenerDestroyed() OVERRIDE; + + // Called when it is time to display the file picker. + // params is expected to be a vector<string16> with accept_types first and + // the capture value as the last element of the vector. + virtual void SelectFileImpl( + SelectFileDialog::Type type, + const base::string16& title, + const base::FilePath& default_path, + const SelectFileDialog::FileTypeInfo* file_types, + int file_type_index, + const std::string& default_extension, + gfx::NativeWindow owning_window, + void* params) OVERRIDE; + + static bool RegisterSelectFileDialog(JNIEnv* env); + + protected: + virtual ~SelectFileDialogImpl(); + + private: + SelectFileDialogImpl(Listener* listener, SelectFilePolicy* policy); + + virtual bool HasMultipleFileTypeChoicesImpl() OVERRIDE; + + base::android::ScopedJavaGlobalRef<jobject> java_object_; + + // Stores the state whether select_file_dialog is running. + bool is_running_; + + DISALLOW_COPY_AND_ASSIGN(SelectFileDialogImpl); +}; + +SelectFileDialog* CreateAndroidSelectFileDialog( + SelectFileDialog::Listener* listener, + SelectFilePolicy* policy); + +} // namespace ui + +#endif // UI_SHELL_DIALOGS_ANDROID_SELECT_FILE_DIALOG_ANDROID_H_ + |