15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef CONTENT_PUBLIC_COMMON_FILE_CHOOSER_PARAMS_H_ 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define CONTENT_PUBLIC_COMMON_FILE_CHOOSER_PARAMS_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <vector> 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "base/files/file_path.h" 117d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "base/strings/string16.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "content/common/content_export.h" 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace content { 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Struct used by WebContentsDelegate. 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct CONTENT_EXPORT FileChooserParams { 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) FileChooserParams(); 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ~FileChooserParams(); 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) enum Mode { 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Requires that the file exists before allowing the user to pick it. 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Open, 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Like Open, but allows picking multiple files to open. 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) OpenMultiple, 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 28a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) // Like Open, but selects a folder for upload. 29a36e5920737c6adbddd3e43b760e5de8431db6e0Torne (Richard Coles) UploadFolder, 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Allows picking a nonexistent file, and prompts to overwrite if the file 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // already exists. 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Save, 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }; 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Mode mode; 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Title to be used for the dialog. This may be empty for the default title, 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // which will be either "Open" or "Save" depending on the mode. 40a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) base::string16 title; 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Default file name to select in the dialog. 432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) base::FilePath default_file_name; 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // A list of valid lower-cased MIME types or file extensions specified in an 465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // input element. It is used to restrict selectable files to such types. 47a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles) std::vector<base::string16> accept_types; 485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#if defined(OS_ANDROID) 507dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch // See http://www.w3.org/TR/html-media-capture for more information. 517dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch // If true, the data should be obtained using the device's camera/mic/etc. 527dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch bool capture; 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace content 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif // CONTENT_PUBLIC_COMMON_FILE_CHOOSER_PARAMS_H_ 59