1 // Copyright 2013 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.
5 // This file provides API functions for the file manager to act as the file
6 // dialog for opening and saving files.
8 #ifndef CHROME_BROWSER_CHROMEOS_EXTENSIONS_FILE_MANAGER_PRIVATE_API_DIALOG_H_
9 #define CHROME_BROWSER_CHROMEOS_EXTENSIONS_FILE_MANAGER_PRIVATE_API_DIALOG_H_
12 #include "chrome/browser/chromeos/extensions/file_manager/private_api_base.h"
15 struct SelectedFileInfo;
18 namespace extensions {
20 // Cancel file selection Dialog. Closes the dialog window.
21 class FileBrowserPrivateCancelDialogFunction
22 : public LoggedAsyncExtensionFunction {
24 DECLARE_EXTENSION_FUNCTION("fileBrowserPrivate.cancelDialog",
25 FILEBROWSERPRIVATE_CANCELDIALOG)
28 virtual ~FileBrowserPrivateCancelDialogFunction() {}
30 // AsyncExtensionFunction overrides.
31 virtual bool RunImpl() OVERRIDE;
34 class FileBrowserPrivateSelectFileFunction
35 : public LoggedAsyncExtensionFunction {
37 DECLARE_EXTENSION_FUNCTION("fileBrowserPrivate.selectFile",
38 FILEBROWSERPRIVATE_SELECTFILE)
41 virtual ~FileBrowserPrivateSelectFileFunction() {}
43 // AsyncExtensionFunction overrides.
44 virtual bool RunImpl() OVERRIDE;
47 // A callback method to handle the result of GetSelectedFileInfo.
48 void GetSelectedFileInfoResponse(
50 const std::vector<ui::SelectedFileInfo>& files);
53 // Select multiple files. Closes the dialog window.
54 class FileBrowserPrivateSelectFilesFunction
55 : public LoggedAsyncExtensionFunction {
57 DECLARE_EXTENSION_FUNCTION("fileBrowserPrivate.selectFiles",
58 FILEBROWSERPRIVATE_SELECTFILES)
61 virtual ~FileBrowserPrivateSelectFilesFunction() {}
63 // AsyncExtensionFunction overrides.
64 virtual bool RunImpl() OVERRIDE;
67 // A callback method to handle the result of GetSelectedFileInfo.
68 void GetSelectedFileInfoResponse(
69 const std::vector<ui::SelectedFileInfo>& files);
72 } // namespace extensions
74 #endif // CHROME_BROWSER_CHROMEOS_EXTENSIONS_FILE_MANAGER_PRIVATE_API_DIALOG_H_