Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(202)

Side by Side Diff: ppapi/c/dev/ppb_file_chooser_dev.h

Issue 6286128: Pepper: Make PPB_FileChooser_Dev::Show "return" PP_ERROR_USERCANCEL if no file is selected. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | webkit/plugins/ppapi/ppb_file_chooser_impl.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 /* Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 * Use of this source code is governed by a BSD-style license that can be 2 * Use of this source code is governed by a BSD-style license that can be
3 * found in the LICENSE file. 3 * found in the LICENSE file.
4 */ 4 */
5 #ifndef PPAPI_C_DEV_PPB_FILE_CHOOSER_DEV_H_ 5 #ifndef PPAPI_C_DEV_PPB_FILE_CHOOSER_DEV_H_
6 #define PPAPI_C_DEV_PPB_FILE_CHOOSER_DEV_H_ 6 #define PPAPI_C_DEV_PPB_FILE_CHOOSER_DEV_H_
7 7
8 #include "ppapi/c/pp_bool.h" 8 #include "ppapi/c/pp_bool.h"
9 #include "ppapi/c/pp_instance.h" 9 #include "ppapi/c/pp_instance.h"
10 #include "ppapi/c/pp_macros.h" 10 #include "ppapi/c/pp_macros.h"
11 #include "ppapi/c/pp_resource.h" 11 #include "ppapi/c/pp_resource.h"
12 12
13 struct PP_CompletionCallback; 13 struct PP_CompletionCallback;
14 14
15 typedef enum { 15 typedef enum {
16 PP_FILECHOOSERMODE_OPEN, 16 PP_FILECHOOSERMODE_OPEN,
17 PP_FILECHOOSERMODE_OPENMULTIPLE 17 PP_FILECHOOSERMODE_OPENMULTIPLE
18 // TODO(darin): Should there be a way to choose a directory? 18 // TODO(darin): Should there be a way to choose a directory?
19 } PP_FileChooserMode_Dev; 19 } PP_FileChooserMode_Dev;
20 PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_FileChooserMode_Dev, 4); 20 PP_COMPILE_ASSERT_SIZE_IN_BYTES(PP_FileChooserMode_Dev, 4);
21 21
22 struct PP_FileChooserOptions_Dev { 22 struct PP_FileChooserOptions_Dev {
23 PP_FileChooserMode_Dev mode; 23 PP_FileChooserMode_Dev mode;
24 24
25 // A comma-separated list of MIME types such as audio/*,text/plain. The 25 // A comma-separated list of MIME types such as audio/*,text/plain. The
26 // dialog may restrict selectable files to the specified MIME types. 26 // dialog may restrict selectable files to the specified MIME types. Null may
27 // be given to indicate that all types should be accepted.
27 // TODO(darin): What if the mime type is unknown to the system? The plugin 28 // TODO(darin): What if the mime type is unknown to the system? The plugin
28 // may wish to describe the mime type and provide a matching file extension. 29 // may wish to describe the mime type and provide a matching file extension.
29 // It is more webby to use mime types here instead of file extensions. 30 // It is more webby to use mime types here instead of file extensions.
30 const char* accept_mime_types; 31 const char* accept_mime_types;
31 }; 32 };
32 33
33 #define PPB_FILECHOOSER_DEV_INTERFACE "PPB_FileChooser(Dev);0.3" 34 #define PPB_FILECHOOSER_DEV_INTERFACE "PPB_FileChooser(Dev);0.3"
34 35
35 struct PPB_FileChooser_Dev { 36 struct PPB_FileChooser_Dev {
36 // Creates a file chooser dialog with the specified options. The chooser is 37 // Creates a file chooser dialog with the specified options. The chooser is
37 // associated with a particular instance, so that it may be positioned on the 38 // associated with a particular instance, so that it may be positioned on the
38 // screen relative to the tab containing the instance. Returns 0 if passed 39 // screen relative to the tab containing the instance. Returns 0 if passed
39 // an invalid instance. 40 // an invalid instance.
40 // 41 //
41 // A PPB_FileChooser_Dev instance can be used to select a single file 42 // A PPB_FileChooser_Dev instance can be used to select a single file
42 // (PP_FILECHOOSERMODE_OPEN) or multiple files 43 // (PP_FILECHOOSERMODE_OPEN) or multiple files
43 // (PP_FILECHOOSERMODE_OPENMULTIPLE). Unlike the HTML5 <input type="file"> 44 // (PP_FILECHOOSERMODE_OPENMULTIPLE). Unlike the HTML5 <input type="file">
44 // tag, a PPB_FileChooser_Dev instance cannot be used to select a directory. 45 // tag, a PPB_FileChooser_Dev instance cannot be used to select a directory.
45 // In order to get the list of files in a directory, the 46 // In order to get the list of files in a directory, the
46 // PPB_DirectoryReader_Dev interface must be used. 47 // PPB_DirectoryReader_Dev interface must be used.
47 PP_Resource (*Create)(PP_Instance instance, 48 PP_Resource (*Create)(PP_Instance instance,
48 const struct PP_FileChooserOptions_Dev* options); 49 const struct PP_FileChooserOptions_Dev* options);
49 50
50 // Returns PP_TRUE if the given resource is a FileChooser. Returns PP_FALSE 51 // Returns PP_TRUE if the given resource is a FileChooser. Returns PP_FALSE
51 // if the resource is invalid or some type other than a FileChooser. 52 // if the resource is invalid or some type other than a FileChooser.
52 PP_Bool (*IsFileChooser)(PP_Resource resource); 53 PP_Bool (*IsFileChooser)(PP_Resource resource);
53 54
54 // Prompts the user to choose a file or files. 55 // Prompts the user to choose a file or files. The callback is called with
56 // PP_OK on successful completion with a file (or files) selected or
57 // PP_ERROR_USERCANCEL if the user selected no file.
55 int32_t (*Show)(PP_Resource chooser, struct PP_CompletionCallback callback); 58 int32_t (*Show)(PP_Resource chooser, struct PP_CompletionCallback callback);
56 59
57 // After a successful call to Show, this method may be used to query the 60 // After a successful call to Show, this method may be used to query the
58 // chosen files. It should be called in a loop until it returns 0. 61 // chosen files. It should be called in a loop until it returns 0.
59 // Depending on the PP_ChooseFileMode requested when the FileChooser was 62 // Depending on the PP_ChooseFileMode requested when the FileChooser was
60 // created, the file refs will either be readable or writable. Their file 63 // created, the file refs will either be readable or writable. Their file
61 // system type will be PP_FileSystemType_External. If the user chose no 64 // system type will be PP_FileSystemType_External. If the user chose no
62 // files or cancelled the dialog, then this method will simply return 0 65 // files or cancelled the dialog, then this method will simply return 0
63 // the first time it is called. 66 // the first time it is called.
64 PP_Resource (*GetNextChosenFile)(PP_Resource chooser); 67 PP_Resource (*GetNextChosenFile)(PP_Resource chooser);
65 }; 68 };
66 69
67 #endif /* PPAPI_C_DEV_PPB_FILE_CHOOSER_DEV_H_ */ 70 #endif /* PPAPI_C_DEV_PPB_FILE_CHOOSER_DEV_H_ */
68
OLDNEW
« no previous file with comments | « no previous file | webkit/plugins/ppapi/ppb_file_chooser_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698