12a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Copyright (c) 2013 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)
52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#ifndef UI_SHELL_DIALOGS_SELECTED_FILE_INFO_H_
62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define UI_SHELL_DIALOGS_SELECTED_FILE_INFO_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"
122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ui/shell_dialogs/shell_dialogs_export.h"
135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace ui {
155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Struct used for passing selected file info to WebKit.
172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)struct SHELL_DIALOGS_EXPORT SelectedFileInfo {
185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // Selected file's user friendly path as seen in the UI.
192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  base::FilePath file_path;
205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // The actual local path to the selected file. This can be a snapshot file
225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // with a human unreadable name like /blah/.d41d8cd98f00b204e9800998ecf8427e.
235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // |real_path| can differ from |file_path| for drive files (e.g.
245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // /drive_cache/temporary/d41d8cd98f00b204e9800998ecf8427e vs.
255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // /special/drive/foo.txt).
265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // If not set, defaults to |file_path|.
272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  base::FilePath local_path;
285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // This field is optional. The display name contains only the base name
305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // portion of a file name (ex. no path separators), and used for displaying
315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // selected file names. If this field is empty, the base name portion of
325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  // |path| is used for displaying.
332a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  base::FilePath::StringType display_name;
345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  SelectedFileInfo();
362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)  SelectedFileInfo(const base::FilePath& in_file_path,
372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)                   const base::FilePath& in_local_path);
385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)  ~SelectedFileInfo();
395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)};
405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}  // namespace ui
425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)
432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif  // UI_SHELL_DIALOGS_SELECTED_FILE_INFO_H_
442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
45