Home | History | Annotate | Download | only in shell_dialogs
      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.
      4 
      5 #ifndef UI_SHELL_DIALOGS_LINUX_SHELL_DIALOG_H_
      6 #define UI_SHELL_DIALOGS_LINUX_SHELL_DIALOG_H_
      7 
      8 #include "ui/shell_dialogs/select_file_dialog.h"
      9 #include "ui/shell_dialogs/shell_dialogs_export.h"
     10 
     11 namespace ui {
     12 
     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() {}
     18 
     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);
     23 
     24   // Returns a LinuxUI instance for the toolkit used in the user's desktop
     25   // environment.
     26   //
     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();
     30 
     31   // Returns a native file selection dialog.
     32   virtual SelectFileDialog* CreateSelectFileDialog(
     33       SelectFileDialog::Listener* listener,
     34       SelectFilePolicy* policy) const = 0;
     35 };
     36 
     37 }  // namespace ui
     38 
     39 #endif  // UI_SHELL_DIALOGS_LINUX_SHELL_DIALOG_H_
     40 
     41