aw: Move SharedRendererState out of AwContents
[chromium-blink-merge.git] / ui / shell_dialogs / linux_shell_dialog.h
bloba503b78ebdd081a15ab58d8913cdf8688790bc8f
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"
11 namespace ui {
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 {
16 public:
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
25 // environment.
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;
37 } // namespace ui
39 #endif // UI_SHELL_DIALOGS_LINUX_SHELL_DIALOG_H_