// -*- C++ -*-
/**
* \file FormFiledialog.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 FORMFILEDIALOG_H
#define FORMFILEDIALOG_H
-#include <vector>
-#include <sigc++/signal_system.h>
-#ifdef __GNUG__
-#pragma interface
-#endif
-#include <config.h>
+#include "support/std_string.h"
-#include "LString.h"
-#include FORMS_H_LOCATION
-#include "form_filedialog.h"
+#include "forms_fwd.h"
#include "frontends/FileDialog.h"
+#include <boost/signals/connection.hpp>
+#include <boost/signals/trackable.hpp>
+
+#include <vector>
+
+class Dialogs;
+
/// DirEntry internal structure definition
class DirEntry {
public:
///
- string pszName;
+ string name_;
///
- string pszDisplayed;
+ string displayed_;
///
- string pszLsEntry;
+ string ls_entry_;
};
-extern "C" void C_LyXFileDlg_FileDlgCB(FL_OBJECT * ob, long data);
-extern "C" void C_LyXFileDlg_DoubleClickCB(FL_OBJECT * ob, long data);
-extern "C" int C_LyXFileDlg_CancelCB(FL_FORM *fl, void *xev);
-class FileDialog::Private : public SigC::Object
-{
+//extern "C" {
+// void C_LyXFileDlg_FileDlgCB(FL_OBJECT * ob, long data);
+// void C_LyXFileDlg_DoubleClickCB(FL_OBJECT * ob, long data);
+// int C_LyXFileDlg_CancelCB(FL_FORM *fl, void *xev);
+//}
+
+
+class FD_filedialog;
+
+class FileDialog::Private : public boost::signals::trackable {
public:
///
Private();
string const & pszPath = string(),
string const & pszMask = string(),
string const & pszSuggested = string());
+ /// launches dialog and returns selected directory
+ string const SelectDir(string const & pszTitle = string(),
+ string const & pszPath = string(),
+ string const & pszSuggested = string());
/// XForms objects callback (static)
static void FileDlgCB(FL_OBJECT *, long);
/// Callback for double click in list
private:
/// data
- static FD_form_filedialog * pFileDlgForm;
+ static FD_filedialog * file_dlg_form_;
///
- static FileDialog::Private * pCurrentDlg;
+ static FileDialog::Private * current_dlg_;
///
- string pszUserPath1;
+ static int minw_;
///
- string pszUserPath2;
+ static int minh_;
///
- string pszDirectory;
+ string user_path1_;
///
- string pszMask;
+ string user_path2_;
///
- string pszFileName;
+ string directory_;
///
- int iDepth;
+ string mask_;
///
- int iLastSel;
+ string file_name_;
///
- long lLastTime;
+ int depth_;
///
- string pszInfoLine;
+ int last_sel_;
+ ///
+ long last_time_;
+ ///
+ string info_line_;
///
typedef std::vector<DirEntry> DirEntries;
///
- DirEntries direntries;
+ DirEntries dir_entries_;
///
- bool force_cancel;
+ bool force_cancel_;
///
- bool force_ok;
-
- /// build the dialog
- FD_form_filedialog * build_filedialog();
+ bool force_ok_;
/** Redraw the form (on receipt of a Signal indicating, for example,
that the xform colors have been re-mapped).
/// Simulates a click on OK/Cancel
void Force(bool);
/// Redraw connection.
- SigC::Connection r_;
+ boost::signals::connection r_;
};
#endif // FORMFILEDIALOG_H