// Copyright (c) 2013 GitHub, Inc. // Use of this source code is governed by the MIT license that can be // found in the LICENSE file. #ifndef ATOM_BROWSER_UI_FILE_DIALOG_H_ #define ATOM_BROWSER_UI_FILE_DIALOG_H_ #include #include #include #include "base/callback_forward.h" #include "base/files/file_path.h" namespace atom { class NativeWindow; } namespace file_dialog { // typedef std::pair > Filter; typedef std::vector Filters; enum FileDialogProperty { FILE_DIALOG_OPEN_FILE = 1 << 0, FILE_DIALOG_OPEN_DIRECTORY = 1 << 1, FILE_DIALOG_MULTI_SELECTIONS = 1 << 2, FILE_DIALOG_CREATE_DIRECTORY = 1 << 3, FILE_DIALOG_SHOW_HIDDEN_FILES = 1 << 4, }; typedef base::Callback& paths)> OpenDialogCallback; typedef base::Callback SaveDialogCallback; bool ShowOpenDialog(atom::NativeWindow* parent_window, const std::string& title, const std::string& button_label, const base::FilePath& default_path, const Filters& filters, int properties, std::vector* paths); void ShowOpenDialog(atom::NativeWindow* parent_window, const std::string& title, const std::string& button_label, const base::FilePath& default_path, const Filters& filters, int properties, const OpenDialogCallback& callback); bool ShowSaveDialog(atom::NativeWindow* parent_window, const std::string& title, const std::string& button_label, const base::FilePath& default_path, const Filters& filters, base::FilePath* path); void ShowSaveDialog(atom::NativeWindow* parent_window, const std::string& title, const std::string& button_label, const base::FilePath& default_path, const Filters& filters, const SaveDialogCallback& callback); } // namespace file_dialog #endif // ATOM_BROWSER_UI_FILE_DIALOG_H_