]> git.lyx.org Git - lyx.git/blob - src/frontends/DialogBase.h
make doc++ able to generate the source documentation for lyx
[lyx.git] / src / frontends / DialogBase.h
1 // -*- C++ -*-
2 /* DialogBase.h
3  * Abstract base class of all dialogs.
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 #ifndef DIALOGBASE_H
18 #define DIALOGBASE_H
19
20 #include <sigc++/signal_system.h>
21
22 // If we do not want to bring them in global namespace, they could be
23 // defined inside DialogBase... (JMarc) 
24 #ifdef SIGC_CXX_NAMESPACES
25 using SigC::Connection;
26 using SigC::slot;
27 using SigC::Object;
28
29 #endif
30
31
32 /** Abstract base class of all dialogs.
33     The outside world only needs some way to tell a dialog when to show, hide
34     or update itself.  A dialog then takes whatever steps are necessary to
35     satisfy that request.  Thus a dialog will have to "pull" the necessary
36     details from the core of the program.
37  */
38 class DialogBase : public Object
39 {
40 public:
41         /**@name Constructors and Deconstructors */
42         //@{
43         ///
44         virtual ~DialogBase() {}
45         //@}
46
47         /**@name Signal Targets */
48         //@{
49         ///
50         virtual void show() = 0;
51         ///
52         virtual void hide() = 0;
53         ///
54         virtual void update() = 0;
55         //@}
56
57         ///
58         enum EnumDialogStatus {
59                 ///
60                 DIALOG_UNMODIFIED,
61                 ///
62                 DIALOG_MODIFIED,
63                 ///
64                 DIALOG_READONLY
65         };
66 };
67
68 #endif // DIALOGBASE_H