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