]> git.lyx.org Git - lyx.git/blobdiff - src/frontends/FileDialog.h
'using namespace std' instead of 'using std::xxx'
[lyx.git] / src / frontends / FileDialog.h
index 423e8404e1e887f4e207fe7ccd5bbe1596b99248..54c2afd4e691216502c6a6cc9ffec46a8a6dfff4 100644 (file)
 #define FILEDIALOG_H
 
 #include "lfuns.h"
+#include "support/docstring.h"
 
-#include <utility>
 #include <string>
 
 
+namespace lyx {
+
+namespace support { class FileFilterList; }
+
+
 /**
  * \class FileDialog
  * \brief GUI-I definition of file dialog interface
@@ -27,7 +32,7 @@ class FileDialog
 {
 public:
        /// label, directory path button
-       typedef std::pair<std::string, std::string> Button;
+       typedef std::pair<docstring, docstring> Button;
 
        /// result type
        enum ResultType {
@@ -36,7 +41,7 @@ public:
        };
 
        /// result return
-       typedef std::pair<FileDialog::ResultType, std::string> Result;
+       typedef std::pair<FileDialog::ResultType, docstring> Result;
 
        /**
         * Constructs a file dialog with title \param title.
@@ -49,64 +54,39 @@ public:
         * additional directories in the navigation (an empty
         * directory is interpreted as getcwd())
         */
-       FileDialog(std::string const & title,
-                  kb_action a = LFUN_SELECT_FILE_SYNC,
-                  Button b1 = Button(std::string(), std::string()),
-                  Button b2 = Button(std::string(), std::string()));
-
+       FileDialog(docstring const & title, kb_action a = LFUN_SELECT_FILE_SYNC);
 
        ~FileDialog();
 
-       /**
-        * Choose a file for opening, starting in directory \param
-        * path, with the file selection \param mask. The \param mask
-        * string is of the form :
-        *
-        * <glob to match> | <description>
-        *
-        * for example, "*.ps | PostScript files (*.ps)".
-        *
-        * FIXME: should support multiple lines of these for different file types.
-        */
-       Result const open(std::string const & path = std::string(),
-               std::string const & mask = std::string(),
-               std::string const & suggested = std::string());
+       void setButton1(docstring const & label, docstring const & dir);
+       void setButton2(docstring const & label, docstring const & dir);
 
-       /**
-        * Choose a directory, starting in directory \param
-        * path.
-        */
-       Result const opendir(std::string const & path = std::string(),
-               std::string const & suggested = std::string());
+       /// Choose a file for opening, starting in directory \c path.
+       Result const open(docstring const & path,
+                         support::FileFilterList const & filters,
+                         docstring const & suggested);
 
-       /**
-        * Choose a file for saving, starting in directory \param
-        * path, with the file selection \param mask. The \param mask
-        * string is of the form :
-        *
-        * <glob to match> | <description>
-        *
-        * for example, "*.ps | PostScript files (*.ps)".
-        */
-       Result const save(std::string const & path = std::string(),
-               std::string const & mask = std::string(),
-               std::string const & suggested = std::string());
+       /// Choose a directory, starting in directory \c path.
+       Result const opendir(docstring const & path = docstring(),
+                            docstring const & suggested = docstring());
 
+       /// Choose a file for saving, starting in directory \c  path.
+       Result const save(docstring const & path,
+                         support::FileFilterList const & filters,
+                         docstring const & suggested);
 
-       /* This *has* to be public because there is no way to specify extern "C" functions
-        * as friends of Private implementation for the xforms implementation ... grr
-        */
+private:
        class Private;
        friend class Private;
        Private * private_;
 
-private:
        /// the dialog title
-       std::string title_;
+       docstring title_;
 
        /// success action to perform if not synchronous
        kb_action success_;
-
 };
 
+} // namespace lyx
+
 #endif // FILEDIALOG_H