]> git.lyx.org Git - lyx.git/blob - src/frontends/controllers/ControlDialog.tmpl
Compaq cxx 6.5 will now compile lyx.
[lyx.git] / src / frontends / controllers / ControlDialog.tmpl
1 // -*- C++ -*-
2 /*
3  * \file ControlDialog.tmpl
4  * Copyright 2002 the LyX Team
5  * Read the file COPYING
6  *
7  * \author Angus Leeming <a.leeming@ic.ac.uk>
8  *
9  * ControlDialog is a base class and so these templatised methods will be
10  * instantiated if this file is #included in the derived classes' .C file.
11  */
12
13 #include "ControlDialog.h"
14 #include "ButtonControllerBase.h"
15 #include "ControlConnections.h"
16 #include "frontends/LyXView.h"
17 #include "BufferView.h"
18 #include "ViewBase.h"
19 #include "debug.h"
20
21 template <class Base>
22 ControlDialog<Base>::ControlDialog(LyXView & lv, Dialogs & d)
23         : Base(lv, d), dialog_built_(false)
24 {}
25
26
27 template <class Base>
28 void ControlDialog<Base>::show()
29 {
30         if (Base::isBufferDependent() && !Base::lv_.view()->available())
31                 return;
32
33         Base::connect();
34
35         setParams();
36         if (Base::emergency_exit_) {
37                 hide();
38                 return;
39         }
40
41         if (!dialog_built_) {
42                 Base::view().build();
43                 dialog_built_ = true;
44         }
45
46         Base::bc().readOnly(Base::isReadonly());
47         Base::view().show();
48 }
49
50 template <class Base>
51 void ControlDialog<Base>::update()
52 {
53         if (Base::isBufferDependent() && !Base::lv_.view()->available())
54                 return;
55
56         setParams();
57         if (Base::emergency_exit_) {
58                 hide();
59                 return;
60         }
61
62         Base::bc().readOnly(Base::isReadonly());
63         Base::view().update();
64 }
65
66 template <class Base>
67 void ControlDialog<Base>::hide()
68 {
69         Base::emergency_exit_ = false;
70         clearParams();
71
72         Base::disconnect();
73         Base::view().hide();
74 }
75