1// Copyright (c) 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#ifndef UI_SHELL_DIALOGS_SELECT_FILE_DIALOG_WIN_H_ 6#define UI_SHELL_DIALOGS_SELECT_FILE_DIALOG_WIN_H_ 7 8#include <Windows.h> 9#include <commdlg.h> 10 11#include "base/callback_forward.h" 12#include "ui/gfx/native_widget_types.h" 13#include "ui/shell_dialogs/select_file_dialog.h" 14#include "ui/shell_dialogs/shell_dialogs_export.h" 15 16namespace ui { 17class SelectFilePolicy; 18 19// Implementation detail exported for unit tests. 20SHELL_DIALOGS_EXPORT std::wstring AppendExtensionIfNeeded( 21 const std::wstring& filename, 22 const std::wstring& filter_selected, 23 const std::wstring& suggested_ext); 24 25SHELL_DIALOGS_EXPORT SelectFileDialog* CreateWinSelectFileDialog( 26 SelectFileDialog::Listener* listener, 27 SelectFilePolicy* policy, 28 const base::Callback<bool(OPENFILENAME* ofn)>& get_open_file_name_impl, 29 const base::Callback<bool(OPENFILENAME* ofn)>& get_save_file_name_impl); 30 31SelectFileDialog* CreateDefaultWinSelectFileDialog( 32 SelectFileDialog::Listener* listener, 33 SelectFilePolicy* policy); 34 35} // namespace ui 36 37#endif // UI_SHELL_DIALOGS_SELECT_FILE_DIALOG_WIN_H_ 38 39