Index: ui/shell_dialogs/linux_shell_dialog.h |
diff --git a/ui/shell_dialogs/linux_shell_dialog.h b/ui/shell_dialogs/linux_shell_dialog.h |
new file mode 100644 |
index 0000000000000000000000000000000000000000..a503b78ebdd081a15ab58d8913cdf8688790bc8f |
--- /dev/null |
+++ b/ui/shell_dialogs/linux_shell_dialog.h |
@@ -0,0 +1,40 @@ |
+// 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_ |
+ |