]> git.lyx.org Git - lyx.git/blob - src/frontends/Dialogs.h
John's FormExternal patch, Edwin's Qt2 patch and Baruch's gnome patch.
[lyx.git] / src / frontends / Dialogs.h
1 // -*- C++ -*-
2 /* Dialogs.h
3  * Container of all dialogs and signals a LyXView needs or uses to access them.
4  * Author: Allan Rae <rae@lyx.org>
5  * This file is part of
6  * ======================================================
7  *
8  *           LyX, The Document Processor
9  *
10  *           Copyright 1995 Matthias Ettrich
11  *           Copyright 1995-2000 The LyX Team.
12  *
13  *           This file Copyright 2000
14  *           Allan Rae
15  * ======================================================
16  */
17
18 #ifndef DIALOGS_H
19 #define DIALOGS_H
20
21 #include <vector>
22 #include <sigc++/signal_system.h>
23
24 #include "LString.h"
25 #include <boost/utility.hpp>
26
27 class DialogBase;
28
29 // Maybe this should be a UIFunc modelled on LyXFunc
30 class LyXView;
31
32 class InsetGraphics;
33 class InsetBibKey;
34 class InsetBibtex;
35 class InsetError;
36 class InsetExternal;
37 class InsetInclude;
38 class InsetInfo;
39 class InsetTabular;
40 class InsetCommand;
41
42 #ifdef SIGC_CXX_NAMESPACES
43 using SigC::Signal0;
44 using SigC::Signal1;
45 #endif
46
47 /** Container of all dialogs and signals a LyXView needs or uses to access them
48     The list of dialog signals isn't comprehensive but should be a good guide
49     for any future additions.  Remember don't go overboard -- think minimal.
50  */
51 class Dialogs : public noncopyable
52 {
53 public:
54         /**@name Constructors and Deconstructors */
55         //@{
56         ///
57         Dialogs(LyXView *);
58         ///
59         ~Dialogs();
60         //@}
61         
62         /** Redraw all visible popups because, for example, the GUI colours
63             have been re-mapped. */
64         static Signal0<void> redrawGUI;
65
66         /**@name Global Hide and Update Signals */
67         //@{
68         /// Hide all visible popups
69         Signal0<void> hideAll;
70         
71         /// Hide any dialogs that require a buffer for them to operate
72         Signal0<void> hideBufferDependent;
73         
74         /** Update visible, buffer-dependent dialogs
75             If the bool is true then a buffer change has occurred
76             else its still the same buffer.
77          */
78         Signal1<void, bool> updateBufferDependent;
79         //@}
80
81         /**@name Dialog Access Signals.
82            Put into some sort of alphabetical order */
83         //@{
84         /// Do we really have to push this?
85         Signal1<void, std::vector<string> const &> SetDocumentClassChoice;
86         /// show the key and label of a bibliography entry
87         Signal1<void, InsetCommand *> showBibitem;
88         /// show the bibtex dialog
89         Signal1<void, InsetCommand *> showBibtex;
90         ///
91         Signal0<void> showCharacter;
92         ///
93         Signal1<void, InsetCommand *> showCitation;
94         ///
95         Signal1<void, string const &> createCitation;
96         ///
97         Signal0<void> showCopyright;
98         ///
99         Signal0<void> showCredits;
100         ///
101         Signal1<void, InsetError *> showError;
102         /// show the external inset dialog
103         Signal1<void, InsetExternal *> showExternal; 
104         ///
105         Signal1<void, InsetGraphics *> showGraphics;
106         /// show the details of a LyX file include inset
107         Signal1<void, InsetCommand *> showInclude;
108         /// create a LyX file include inset
109         Signal1<void, string const &> createInclude;
110         ///
111         Signal1<void, InsetCommand *> showIndex;
112         ///
113         Signal1<void, string const &> createIndex;
114         ///
115         Signal1<void, InsetInfo *> showInfo;
116         ///
117         Signal0<void> showLayoutDocument;
118         ///
119         Signal0<void> showLayoutParagraph;
120         ///
121         Signal0<void> showLayoutCharacter;
122         ///
123         Signal0<void> setUserFreeFont;
124         /// show the version control log
125         Signal0<void> showVCLogFile;
126         /// show the LaTeX log or build file
127         Signal0<void> showLogFile;
128         ///
129         Signal0<void> showPreamble;
130         ///
131         Signal0<void> showPreferences;
132         ///
133         Signal0<void> showPrint;
134         ///
135         Signal1<void, InsetCommand *> showRef;
136         ///
137         Signal1<void, string const &> createRef;
138         ///
139         Signal0<void> showSearch;
140         /// pop up the splash
141         Signal0<void> showSplash;
142         /// hide the splash immediately
143         Signal0<void> hideSplash;
144         ///
145         Signal1<void, InsetTabular *> showTabular;
146         ///
147         Signal1<void, InsetTabular *> updateTabular;
148         ///
149         Signal0<void> showTabularCreate;
150         ///
151         Signal1<void, InsetCommand *> showTOC;
152         ///
153         Signal1<void, string const &> createTOC;
154         ///
155         Signal1<void, InsetCommand *> showUrl;
156         ///
157         Signal1<void, string const &> createUrl;
158         ///
159         Signal0<void> updateCharacter;  // allow update as cursor moves
160         //@}
161 private:
162         ///
163         std::vector<DialogBase *> dialogs_;
164 };
165
166 #endif