X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;ds=inline;f=src%2Ffrontends%2FFileDialog.h;h=54c2afd4e691216502c6a6cc9ffec46a8a6dfff4;hb=9383f4c3c6f9cfab2d658701ba66e2b54cd68bea;hp=423e8404e1e887f4e207fe7ccd5bbe1596b99248;hpb=44cd0fc9a1687cc63911c7f98d978594458e7813;p=lyx.git diff --git a/src/frontends/FileDialog.h b/src/frontends/FileDialog.h index 423e8404e1..54c2afd4e6 100644 --- a/src/frontends/FileDialog.h +++ b/src/frontends/FileDialog.h @@ -14,11 +14,16 @@ #define FILEDIALOG_H #include "lfuns.h" +#include "support/docstring.h" -#include #include +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 Button; + typedef std::pair Button; /// result type enum ResultType { @@ -36,7 +41,7 @@ public: }; /// result return - typedef std::pair Result; + typedef std::pair 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 : - * - * | - * - * 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 : - * - * | - * - * 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