X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2FFileDialog.h;h=c4e4c4cd1b9eb14b8273cceebac2d13fdb83949d;hb=368f6a53a87eb5997433ecd0f51e854c99360d28;hp=02d7ae3b12c1139a928b7a676848bbde860155de;hpb=1070702ea46b36ec5016bad2fe97649cec5e6148;p=lyx.git diff --git a/src/frontends/FileDialog.h b/src/frontends/FileDialog.h index 02d7ae3b12..c4e4c4cd1b 100644 --- a/src/frontends/FileDialog.h +++ b/src/frontends/FileDialog.h @@ -1,27 +1,33 @@ // -*- C++ -*- /** * \file FileDialog.h - * Copyright 2001 the LyX Team - * Read the file COPYING + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. * * \author unknown * \author John Levon + * + * Full author contact details are available in file CREDITS. */ #ifndef FILEDIALOG_H #define FILEDIALOG_H -#ifdef __GNUG__ -#pragma interface -#endif +#include "lfuns.h" #include +#include + + +namespace lyx { +namespace support { + +class FileFilterList; -#include "commandtags.h" +} // namespace support +} // namespace lyx -#include "LString.h" -class LyXView; /** * \class FileDialog @@ -31,7 +37,7 @@ class FileDialog { public: /// label, directory path button - typedef std::pair Button; + typedef std::pair Button; /// result type enum ResultType { @@ -40,53 +46,48 @@ public: }; /// result return - typedef std::pair Result; + typedef std::pair Result; /** - * Constructs a file dialog attached to LyXView \param lv, with - * title \param title. If param \a is \const LFUN_SELECT_FILE_SYNC - * then a value will be returned immediately upon performing a Select(), + * Constructs a file dialog with title \param title. + * If \param a is \const LFUN_SELECT_FILE_SYNC then a value + * will be returned immediately upon performing a open(), * otherwise a callback Dispatch() will be invoked with the filename as * argument, of action \param a. * - * Up to two optional extra buttons are allowed for specifying addtional - * directories in the navigation. + * Up to two optional extra buttons are allowed for specifying + * additional directories in the navigation (an empty + * directory is interpreted as getcwd()) */ - FileDialog(LyXView * lv, string const & title, kb_action a = LFUN_SELECT_FILE_SYNC, - Button b1 = Button(string(), string()), - Button b2 = Button(string(), string())); - + 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(); - /** - * Choose a file for selection, 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 Select(string const & path = string(), - string const & mask = string(), - string const & suggested = string()); + /// Choose a file for opening, starting in directory \c path. + Result const open(std::string const & path, + lyx::support::FileFilterList const & filters, + std::string const & suggested); + /// Choose a directory, starting in directory \c path. + Result const opendir(std::string const & path = std::string(), + std::string const & suggested = std::string()); - /* 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 - */ + /// Choose a file for saving, starting in directory \c path. + Result const save(std::string const & path, + lyx::support::FileFilterList const & filters, + std::string const & suggested); + +private: class Private; friend class Private; Private * private_; -private: - /// our LyXView - LyXView * lv_; - /// the dialog title - string title_; + std::string title_; /// success action to perform if not synchronous kb_action success_;