]> git.lyx.org Git - lyx.git/blob - src/frontends/controllers/ButtonControllerBase.C
This file is part of LyX, the document processor.
[lyx.git] / src / frontends / controllers / ButtonControllerBase.C
1 /**
2  * \file ButtonControllerBase.C
3  * This file is part of LyX, the document processor.
4  * Licence details can be found in the file COPYING.
5  *
6  * \author Allan Rae
7  *
8  * Full author contact details are available in file CREDITS
9  */
10
11 #ifdef __GNUG__
12 #pragma implementation
13 #endif
14
15 #include <config.h>
16 #include "ButtonControllerBase.h"
17 #include "support/LAssert.h"
18 #include "debug.h"
19
20
21 ButtonControllerBase::ButtonControllerBase(string const & cancel,
22                                            string const & close)
23         : cancel_label_(cancel), close_label_(close)
24 {}
25
26
27 void ButtonControllerBase::ok()
28 {
29         input(ButtonPolicy::SMI_OKAY);
30 }
31
32
33 void ButtonControllerBase::input(ButtonPolicy::SMInput in)
34 {
35         if (ButtonPolicy::SMI_NOOP == in) return;
36         bp().input(in);
37         refresh();
38 }
39
40
41 void ButtonControllerBase::apply()
42 {
43         input(ButtonPolicy::SMI_APPLY);
44 }
45
46
47 void ButtonControllerBase::cancel()
48 {
49         input(ButtonPolicy::SMI_CANCEL);
50 }
51
52
53 void ButtonControllerBase::restore()
54 {
55         input(ButtonPolicy::SMI_RESTORE);
56 }
57
58
59 void ButtonControllerBase::hide()
60 {
61         input(ButtonPolicy::SMI_HIDE);
62 }
63
64
65 void ButtonControllerBase::valid(bool v)
66 {
67         if (v) {
68                 input(ButtonPolicy::SMI_VALID);
69         } else {
70                 input(ButtonPolicy::SMI_INVALID);
71         }
72 }
73
74
75 void ButtonControllerBase::invalid()
76 {
77         input(ButtonPolicy::SMI_INVALID);
78 }
79
80
81 bool ButtonControllerBase::readOnly(bool ro)
82 {
83         lyxerr[Debug::GUI] << "Setting controller ro: " << ro << std::endl;
84
85         if (ro) {
86                 bp().input(ButtonPolicy::SMI_READ_ONLY);
87         } else {
88                 bp().input(ButtonPolicy::SMI_READ_WRITE);
89         }
90         refreshReadOnly();
91         refresh();
92         return ro;
93 }
94
95
96 void ButtonControllerBase::readWrite()
97 {
98         readOnly(false);
99 }