]> git.lyx.org Git - lyx.git/blob - src/frontends/controllers/ButtonController.C
introduce namespace lyx::support
[lyx.git] / src / frontends / controllers / ButtonController.C
1 /**
2  * \file ButtonController.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
12 #include <config.h>
13 #include "ButtonController.h"
14 #include "BCView.h"
15 #include "support/LAssert.h"
16 #include "debug.h"
17
18 using namespace lyx::support;
19
20 BCView & ButtonController::view() const
21 {
22         Assert(view_.get());
23         return *view_.get();
24 }
25
26 void ButtonController::view(BCView * view)
27 {
28         view_.reset(view);
29 }
30
31
32 ButtonPolicy & ButtonController::bp() const
33 {
34         Assert(bp_.get());
35         return *bp_.get();
36 }
37
38 void ButtonController::bp(ButtonPolicy * bp)
39 {
40         bp_.reset(bp);
41 }
42
43
44 void ButtonController::refresh() const
45 {
46         view().refresh();
47 }
48
49
50 void ButtonController::refreshReadOnly() const
51 {
52         view().refreshReadOnly();
53 }
54
55
56 void ButtonController::ok() const
57 {
58         input(ButtonPolicy::SMI_OKAY);
59 }
60
61
62 void ButtonController::input(ButtonPolicy::SMInput in) const
63 {
64         if (ButtonPolicy::SMI_NOOP == in)
65                 return;
66         bp().input(in);
67         view().refresh();
68 }
69
70
71 void ButtonController::apply() const
72 {
73         input(ButtonPolicy::SMI_APPLY);
74 }
75
76
77 void ButtonController::cancel() const
78 {
79         input(ButtonPolicy::SMI_CANCEL);
80 }
81
82
83 void ButtonController::restore() const
84 {
85         input(ButtonPolicy::SMI_RESTORE);
86 }
87
88
89 void ButtonController::hide() const
90 {
91         input(ButtonPolicy::SMI_HIDE);
92 }
93
94
95 void ButtonController::valid(bool v) const
96 {
97         if (v) {
98                 input(ButtonPolicy::SMI_VALID);
99         } else {
100                 input(ButtonPolicy::SMI_INVALID);
101         }
102 }
103
104
105 bool ButtonController::readOnly(bool ro) const
106 {
107         lyxerr[Debug::GUI] << "Setting controller ro: " << ro << std::endl;
108
109         if (ro) {
110                 bp().input(ButtonPolicy::SMI_READ_ONLY);
111         } else {
112                 bp().input(ButtonPolicy::SMI_READ_WRITE);
113         }
114         view().refreshReadOnly();
115         view().refresh();
116         return ro;
117 }