// Copyright (c) 2013 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef UI_SHELL_DIALOGS_LINUX_SHELL_DIALOG_H_ #define UI_SHELL_DIALOGS_LINUX_SHELL_DIALOG_H_ #include "ui/shell_dialogs/select_file_dialog.h" #include "ui/shell_dialogs/shell_dialogs_export.h" namespace ui { // An interface that lets different Linux platforms override the // CreateSelectFileDialog function declared here to return native file dialogs. class SHELL_DIALOGS_EXPORT LinuxShellDialog { public: virtual ~LinuxShellDialog() {} // Sets the dynamically loaded singleton that draws the desktop native // UI. This pointer is not owned, and if this method is called a second time, // the first instance is not deleted. static void SetInstance(LinuxShellDialog* instance); // Returns a LinuxUI instance for the toolkit used in the user's desktop // environment. // // Can return NULL, in case no toolkit has been set. (For example, if we're // running with the "--ash" flag.) static const LinuxShellDialog* instance(); // Returns a native file selection dialog. virtual SelectFileDialog* CreateSelectFileDialog( SelectFileDialog::Listener* listener, SelectFilePolicy* policy) const = 0; }; } // namespace ui #endif // UI_SHELL_DIALOGS_LINUX_SHELL_DIALOG_H_