3 * This file is part of LyX, the document processor.
4 * Licence details can be found in the file COPYING.
6 * \author Angus Leeming
8 * Full author contact details are available in file CREDITS.
15 #include "frontends/LyXView.h"
18 #include "FuncRequest.h"
19 #include "FuncStatus.h"
28 Dialog::Dialog(LyXView & lv, string const & name)
29 : is_closing_(false), kernel_(lv), name_(name)
37 void Dialog::setButtonsValid(bool valid)
41 void Dialog::show(string const & data)
43 if (controller().isBufferDependent() && !kernel().isBufferAvailable())
46 if (!controller().initialiseParams(data)) {
47 lyxerr << "Dialog \"" << name_
48 << "\" failed to translate the data "
49 "string passed to show()" << std::endl;
59 void Dialog::update(string const & data)
61 if (controller().isBufferDependent() && !kernel().isBufferAvailable())
64 if (!controller().initialiseParams(data)) {
65 lyxerr << "Dialog \"" << name_
66 << "\" could not be initialized" << std::endl;
76 void Dialog::checkStatus()
83 if (!view().isVisible())
86 controller().clearParams();
88 kernel().disconnect(name());
94 if (controller().isBufferDependent()) {
95 if (!kernel().isBufferAvailable() ||
96 (kernel().isBufferReadonly() &&
97 !controller().canApplyToReadOnly()))
102 controller().dispatchParams();
104 if (controller().disconnectOnApply() && !is_closing_) {
105 kernel().disconnect(name());
106 controller().initialiseParams(string());
112 bool Dialog::isVisible() const
114 return view().isVisible();
118 void Dialog::redraw()
124 void Dialog::setController(Controller * i)
126 BOOST_ASSERT(i && !controller_ptr_.get());
127 controller_ptr_.reset(i);
131 void Dialog::setView(View * v)
133 BOOST_ASSERT(v && !view_ptr_.get());
139 Dialog::Controller::Controller(Dialog & parent)
144 bool Dialog::Controller::canApply() const
146 FuncRequest const fr(getLfun(), dialog().name());
147 FuncStatus const fs(getStatus(fr));
152 Dialog::Controller & Dialog::controller() const
154 BOOST_ASSERT(controller_ptr_.get());
155 return *controller_ptr_.get();
159 Dialog::View::View(Dialog & parent, docstring title) :
160 p_(parent), title_(title)
164 Dialog::View & Dialog::view() const
166 BOOST_ASSERT(view_ptr_.get());
167 return *view_ptr_.get();
171 void Dialog::View::setTitle(docstring const & newtitle)
177 docstring const & Dialog::View::getTitle() const
183 void Dialog::View::partialUpdate(int)
186 } // namespace frontend