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