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.
5 #ifndef UI_SHELL_DIALOGS_LINUX_SHELL_DIALOG_H_
6 #define UI_SHELL_DIALOGS_LINUX_SHELL_DIALOG_H_
8 #include "ui/shell_dialogs/select_file_dialog.h"
9 #include "ui/shell_dialogs/shell_dialogs_export.h"
13 // An interface that lets different Linux platforms override the
14 // CreateSelectFileDialog function declared here to return native file dialogs.
15 class SHELL_DIALOGS_EXPORT LinuxShellDialog
{
17 virtual ~LinuxShellDialog() {}
19 // Sets the dynamically loaded singleton that draws the desktop native
20 // UI. This pointer is not owned, and if this method is called a second time,
21 // the first instance is not deleted.
22 static void SetInstance(LinuxShellDialog
* instance
);
24 // Returns a LinuxUI instance for the toolkit used in the user's desktop
27 // Can return NULL, in case no toolkit has been set. (For example, if we're
28 // running with the "--ash" flag.)
29 static const LinuxShellDialog
* instance();
31 // Returns a native file selection dialog.
32 virtual SelectFileDialog
* CreateSelectFileDialog(
33 SelectFileDialog::Listener
* listener
,
34 SelectFilePolicy
* policy
) const = 0;
39 #endif // UI_SHELL_DIALOGS_LINUX_SHELL_DIALOG_H_