X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=src%2Ffrontends%2FDialogs.h;h=cb8a929dd4dcfe6619add2950df8a17973a99758;hb=c5058bffd88b5eb000ffd11d5729fbec0f34fb0f;hp=a8cd0320367ab6b37256e991adf538b6e7007fb1;hpb=f65b7ff4ab2fe8ad0d9196c231064240e3fde81f;p=lyx.git diff --git a/src/frontends/Dialogs.h b/src/frontends/Dialogs.h index a8cd032036..cb8a929dd4 100644 --- a/src/frontends/Dialogs.h +++ b/src/frontends/Dialogs.h @@ -1,163 +1,182 @@ // -*- C++ -*- -/* Dialogs.h - * Container of all dialogs and signals a LyXView needs or uses to access them. - * Author: Allan Rae - * This file is part of - * ====================================================== +/** + * \file Dialogs.h + * This file is part of LyX, the document processor. + * Licence details can be found in the file COPYING. + * \author Allan Rae * - * LyX, The Document Processor - * - * Copyright 1995 Matthias Ettrich - * Copyright 1995-2000 The LyX Team. - * - * This file Copyright 2000 - * Allan Rae - * ====================================================== + * Full author contact details are available in file CREDITS */ #ifndef DIALOGS_H #define DIALOGS_H -#include -#include +#ifdef __GNUG__ +#pragma interface +#endif #include "LString.h" -#include -class DialogBase; +#include +#include +#include +#include -// Maybe this should be a UIFunc modelled on LyXFunc class LyXView; - -class InsetGraphics; class InsetBibKey; class InsetBibtex; +class InsetCommand; class InsetError; +class InsetERT; +class InsetExternal; +class InsetFloat; +class InsetWrap; +class InsetGraphics; class InsetInclude; class InsetInfo; +class InsetMinipage; +class Paragraph; class InsetTabular; -class InsetCommand; - -using std::vector; - -#ifdef SIGC_CXX_NAMESPACES -using SigC::Signal0; -using SigC::Signal1; -#endif /** 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. */ -class Dialogs : public noncopyable +class Dialogs : boost::noncopyable { public: - /**@name Constructors and Deconstructors */ - //@{ - /// - Dialogs(LyXView *); /// + Dialogs(LyXView &); + /// Define an empty d-tor out-of-line to keep boost::scoped_ptr happy. ~Dialogs(); - //@} - - /** Redraw all visible popups because, for example, the GUI colours - have been re-mapped. */ - static Signal0 redrawGUI; + + /** Redraw all visible dialogs because, for example, the GUI colours + * have been re-mapped. + * + * Note that static boost signals break some compilers, so we return a + * reference to some hidden magic ;-) + */ + static boost::signal0 & redrawGUI(); + + /// Toggle tooltips on/off in all dialogs. + static void toggleTooltips(); + + /// Are the tooltips on or off? + static bool tooltipsEnabled(); /**@name Global Hide and Update Signals */ //@{ - /// Hide all visible popups - Signal0 hideAll; - + /// Hide all visible dialogs + boost::signal0 hideAll; + /// Hide any dialogs that require a buffer for them to operate - Signal0 hideBufferDependent; - + boost::signal0 hideBufferDependent; + /** Update visible, buffer-dependent dialogs If the bool is true then a buffer change has occurred else its still the same buffer. */ - Signal1 updateBufferDependent; + boost::signal1 updateBufferDependent; //@} /**@name Dialog Access Signals. Put into some sort of alphabetical order */ //@{ - /// Do we really have to push this? - Signal1 const &> SetDocumentClassChoice; + /// + void showAboutlyx(); /// show the key and label of a bibliography entry - Signal1 showBibitem; + void showBibitem(InsetCommand * ic); /// show the bibtex dialog - Signal1 showBibtex; + void showBibtex(InsetCommand * ic); + /// + void showCharacter(); + /// connected to the character dialog also + void setUserFreeFont(); /// - Signal0 showCharacter; + void showCitation(InsetCommand *); /// - Signal1 showCitation; + void createCitation(string const &); /// - Signal1 createCitation; + void showDocument(); /// - Signal0 showCopyright; + void showError(InsetError *); /// - Signal0 showCredits; + void showERT(InsetERT *); /// - Signal1 showError; + void updateERT(InsetERT *); + /// show the external inset dialog + void showExternal(InsetExternal *); + /// show the contents of a file. + void showFile(string const &); /// - Signal1 showGraphics; + void showFloat(InsetFloat *); + /// + void showWrap(InsetWrap *); + /// show all forked child processes + void showForks(); + /// + void showGraphics(InsetGraphics *); /// show the details of a LyX file include inset - Signal1 showInclude; - /// create a LyX file include inset - Signal1 createInclude; + void showInclude(InsetInclude *); /// - Signal1 showIndex; + void showIndex(InsetCommand *); /// - Signal1 createIndex; + void createIndex(); + /// show the LaTeX log or build file + void showLogFile(); + /// display the top-level maths panel + void showMathPanel(); /// - Signal1 showInfo; + void showMinipage(InsetMinipage *); /// - Signal0 showLayoutDocument; + void updateMinipage(InsetMinipage *); /// - Signal0 showLayoutParagraph; + void showParagraph(); /// - Signal0 showLayoutCharacter; + void updateParagraph(); /// - Signal0 setUserFreeFont; - /// show the version control log - Signal0 showVCLogFile; - /// show the LaTeX log or build file - Signal0 showLogFile; + void showPreamble(); /// - Signal0 showPreamble; + void showPreferences(); /// - Signal0 showPreferences; + void showPrint(); /// - Signal0 showPrint; + void showRef(InsetCommand *); /// - Signal1 showRef; + void createRef(string const &); /// - Signal1 createRef; - /// pop up the splash - Signal0 showSplash; - /// hide the splash immediately - Signal0 hideSplash; + void showSearch(); /// - Signal1 showTabular; + void showSendto(); + /// bring up the spellchecker + void showSpellchecker(); /// - Signal1 updateTabular; + void showTabular(InsetTabular *); /// - Signal0 showTabularCreate; + void updateTabular(InsetTabular *); /// - Signal1 showTOC; + void showTabularCreate(); + /// show the TexInfo + void showTexinfo(); + /// show the thesaurus dialog + void showThesaurus(string const &); /// - Signal1 createTOC; + void showTOC(InsetCommand *); /// - Signal1 showUrl; + void createTOC(string const &); /// - Signal1 createUrl; + void showUrl(InsetCommand *); /// - Signal0 updateCharacter; // allow update as cursor moves + void createUrl(string const &); + /// show the version control log + void showVCLogFile(); //@} + private: - /// - vector dialogs_; + /// Use the Pimpl idiom to hide the internals. + class Impl; + /// The pointer never changes although *pimpl_'s contents may. + boost::scoped_ptr const pimpl_; }; #endif