// -*- 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 * ====================================================== * * LyX, The Document Processor * * Copyright 1995 Matthias Ettrich * Copyright 1995-2001 The LyX Team. * * This file Copyright 2000 * Allan Rae * ====================================================== */ #ifndef DIALOGS_H #define DIALOGS_H #include #include #include "LString.h" #include #include #ifdef __GNUG__ #pragma interface #endif #include "DialogBase.h" // Maybe this should be a UIFunc modelled on LyXFunc class LyXView; class InsetGraphics; class InsetBibKey; class InsetBibtex; class InsetError; class InsetExternal; class InsetInclude; class InsetInfo; class InsetTabular; class InsetCommand; class InsetMinipage; class LyXParagraph; /** 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 : boost::noncopyable { public: /// typedef boost::shared_ptr db_ptr; /**@name Constructor */ //@{ /// Dialogs(LyXView *); //@} /** Redraw all visible dialogs because, for example, the GUI colours have been re-mapped. */ static SigC::Signal0 redrawGUI; /**@name Global Hide and Update Signals */ //@{ /// Hide all visible dialogs SigC::Signal0 hideAll; /// Hide any dialogs that require a buffer for them to operate SigC::Signal0 hideBufferDependent; /** Update visible, buffer-dependent dialogs If the bool is true then a buffer change has occurred else its still the same buffer. */ SigC::Signal1 updateBufferDependent; //@} /**@name Dialog Access Signals. Put into some sort of alphabetical order */ //@{ /// Do we really have to push this? SigC::Signal1 const &> SetDocumentClassChoice; /// show the key and label of a bibliography entry SigC::Signal1 showBibitem; /// show the bibtex dialog SigC::Signal1 showBibtex; /// SigC::Signal0 showCharacter; /// connected to the character dialog also SigC::Signal0 setUserFreeFont; /// SigC::Signal1 showCitation; /// SigC::Signal1 createCitation; /// SigC::Signal0 showCopyright; /// SigC::Signal0 showCredits; /// SigC::Signal0 showDocument; /// SigC::Signal1 showError; /// show the external inset dialog SigC::Signal1 showExternal; /// SigC::Signal1 showGraphics; /// show the details of a LyX file include inset SigC::Signal1 showInclude; /// SigC::Signal1 showIndex; /// SigC::Signal1 createIndex; /// SigC::Signal1 showInfo; /// show the LaTeX log or build file SigC::Signal0 showLogFile; /// display the top-level maths panel SigC::Signal0 showMathPanel; /// SigC::Signal1 showMinipage; /// SigC::Signal1 updateMinipage; /// SigC::Signal0 showParagraph; /// SigC::Signal0 updateParagraph; /// SigC::Signal0 showPreamble; /// SigC::Signal0 showPreferences; /// SigC::Signal0 showPrint; /// SigC::Signal1 showRef; /// SigC::Signal1 createRef; /// SigC::Signal0 showSearch; /// pop up the splash SigC::Signal0 showSplash; /// destroy the splash dialog void destroySplash(); /// SigC::Signal1 showTabular; /// SigC::Signal1 updateTabular; /// SigC::Signal0 showTabularCreate; /// SigC::Signal1 showTOC; /// SigC::Signal1 createTOC; /// SigC::Signal1 showUrl; /// SigC::Signal1 createUrl; /// show the version control log SigC::Signal0 showVCLogFile; //@} private: /// Add a dialog to the vector of dialogs. void add(DialogBase *); /// the dialogs being managed std::vector dialogs_; /// the splash dialog boost::scoped_ptr splash_; }; #endif