#include <boost/scoped_ptr.hpp>
#include <boost/signals/signal0.hpp>
#include <boost/signals/signal1.hpp>
-#include <boost/signals/signal2.hpp>
+
class Dialog;
class InsetBase;
class LyXView;
-class Paragraph;
-
/** Container of all dialogs and signals a LyXView needs or uses to access them
The list of dialog signals isn't comprehensive but should be a good guide
for any future additions. Remember don't go overboard -- think minimal.
Put into some sort of alphabetical order */
//@{
///
- void showCharacter();
- /// connected to the character dialog also
- void setUserFreeFont();
- ///
void showDocument();
- /// show the contents of a file.
- void showFile(string const &);
/// show all forked child processes
void showForks();
- /// show the LaTeX log or build file
- void showLogFile();
- /// display the top-level maths panel
- void showMathPanel();
- ///
- void showParagraph();
- ///
- void updateParagraph();
///
void showPreamble();
///
void showSendto();
/// bring up the spellchecker
void showSpellchecker();
- /// show the TexInfo
- void showTexinfo();
- /// show the thesaurus dialog
- void showThesaurus(string const &);
- /// show the version control log
- void showVCLogFile();
//@}
- ///name == "about" etc
- void show(string const & name);
- /** name == "bibtex", "citation" etc
- data is generated by the Inset::write method, to be read by the
- Inset::read method in the frontends.
- inset is stored. On a subsequent Apply from the frontends, the
- stored inset will be modified. If no inset is stored, then a
- new one will be created at the current cursor position.
- */
+ /** \param name == "about" etc; an identifier used to
+ launch a particular dialog.
+ \param data is a string encoding of the data used to populate
+ the dialog. Several of these dialogs do not need any data,
+ so it defaults to string().
+ */
+ void show(string const & name, string const & data = string());
+
+ /** \param name == "bibtex", "citation" etc; an identifier used to
+ launch a particular dialog.
+ \param data is a string representation of the Inset contents.
+ It is often little more than the output from Inset::write.
+ It is passed to, and parsed by, the frontend dialog.
+ \param inset is _not_ passed to the frontend dialog.
+ It is stored internally and used by the kernel to ascertain
+ what to do with the FuncRequest dispatched from the frontend
+ dialog on 'Apply'; should it be used to create a new inset at
+ the current cursor position or modify an existing, 'open' inset?
+ */
void show(string const & name, string const & data, InsetBase * inset);
- /** name == "citation", "bibtex" etc.
- Update the contents of the dialog.
- */
+
+ /** \param name == "citation", "bibtex" etc; an identifier used
+ to update the contents of a particular dialog with \param data .
+ See the comments to 'show', above.
+ */
void update(string const & name, string const & data);
- /** All Dialogs of the given 'name' will be closed if they are
- connected to the given 'inset'.
- */
- static boost::signal2<void, string const &, InsetBase*> & hide();
+
+ /// is the dialog currently visible?
+ bool visible(string const & name) const;
+
+ /** All Dialogs of the given \param name will be closed if they are
+ connected to the given \param inset.
+ */
+ static void hide(string const & name, InsetBase * inset);
///
void disconnect(string const & name);
///