private_api_dialog.h revision 010d83a9304c5a91596085d917d248abff47903a
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.
4//
5// This file provides API functions for the file manager to act as the file
6// dialog for opening and saving files.
7
8#ifndef CHROME_BROWSER_CHROMEOS_EXTENSIONS_FILE_MANAGER_PRIVATE_API_DIALOG_H_
9#define CHROME_BROWSER_CHROMEOS_EXTENSIONS_FILE_MANAGER_PRIVATE_API_DIALOG_H_
10
11#include <vector>
12
13#include "chrome/browser/chromeos/extensions/file_manager/private_api_base.h"
14
15namespace ui {
16struct SelectedFileInfo;
17}
18
19namespace extensions {
20
21// Cancel file selection Dialog.  Closes the dialog window.
22class FileBrowserPrivateCancelDialogFunction
23    : public LoggedAsyncExtensionFunction {
24 public:
25  DECLARE_EXTENSION_FUNCTION("fileBrowserPrivate.cancelDialog",
26                             FILEBROWSERPRIVATE_CANCELDIALOG)
27
28 protected:
29  virtual ~FileBrowserPrivateCancelDialogFunction() {}
30
31  // AsyncExtensionFunction overrides.
32  virtual bool RunAsync() OVERRIDE;
33};
34
35class FileBrowserPrivateSelectFileFunction
36    : public LoggedAsyncExtensionFunction {
37 public:
38  DECLARE_EXTENSION_FUNCTION("fileBrowserPrivate.selectFile",
39                             FILEBROWSERPRIVATE_SELECTFILE)
40
41 protected:
42  virtual ~FileBrowserPrivateSelectFileFunction() {}
43
44  // AsyncExtensionFunction overrides.
45  virtual bool RunAsync() OVERRIDE;
46
47 private:
48  // A callback method to handle the result of GetSelectedFileInfo.
49  void GetSelectedFileInfoResponse(
50      int index,
51      const std::vector<ui::SelectedFileInfo>& files);
52};
53
54// Select multiple files.  Closes the dialog window.
55class FileBrowserPrivateSelectFilesFunction
56    : public LoggedAsyncExtensionFunction {
57 public:
58  DECLARE_EXTENSION_FUNCTION("fileBrowserPrivate.selectFiles",
59                             FILEBROWSERPRIVATE_SELECTFILES)
60
61 protected:
62  virtual ~FileBrowserPrivateSelectFilesFunction() {}
63
64  // AsyncExtensionFunction overrides.
65  virtual bool RunAsync() OVERRIDE;
66
67 private:
68  // A callback method to handle the result of GetSelectedFileInfo.
69  void GetSelectedFileInfoResponse(
70      const std::vector<ui::SelectedFileInfo>& files);
71};
72
73}  // namespace extensions
74
75#endif  // CHROME_BROWSER_CHROMEOS_EXTENSIONS_FILE_MANAGER_PRIVATE_API_DIALOG_H_
76