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_SELECT_FILE_DIALOG_WIN_H_ 62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#define UI_SHELL_DIALOGS_SELECT_FILE_DIALOG_WIN_H_ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 86e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#include <Windows.h> 96e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#include <commdlg.h> 106e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 116e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)#include "base/callback_forward.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ui/gfx/native_widget_types.h" 132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ui/shell_dialogs/select_file_dialog.h" 142a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#include "ui/shell_dialogs/shell_dialogs_export.h" 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace ui { 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class SelectFilePolicy; 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Implementation detail exported for unit tests. 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)SHELL_DIALOGS_EXPORT std::wstring AppendExtensionIfNeeded( 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::wstring& filename, 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::wstring& filter_selected, 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) const std::wstring& suggested_ext); 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 256e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)SHELL_DIALOGS_EXPORT SelectFileDialog* CreateWinSelectFileDialog( 266e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) SelectFileDialog::Listener* listener, 276e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) SelectFilePolicy* policy, 2803b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) const base::Callback<bool(OPENFILENAME* ofn)>& get_open_file_name_impl, 2903b57e008b61dfcb1fbad3aea950ae0e001748b0Torne (Richard Coles) const base::Callback<bool(OPENFILENAME* ofn)>& get_save_file_name_impl); 306e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles) 316e8cce623b6e4fe0c9e4af605d675dd9d0338c38Torne (Richard Coles)SelectFileDialog* CreateDefaultWinSelectFileDialog( 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SelectFileDialog::Listener* listener, 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) SelectFilePolicy* policy); 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace ui 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 372a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)#endif // UI_SHELL_DIALOGS_SELECT_FILE_DIALOG_WIN_H_ 382a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 39