3 * \file ButtonController.tmpl
4 * Read the file COPYING
7 * \author Angus Leeming
10 * Full author contact details are available in file CREDITS
12 * GuiBC is a base class and so these templatised methods will be
13 * instantiated if this file is #included in the derived classes' .C file.
14 * see, e.g., xforms/xformsBC.C
17 #include "ButtonController.h"
20 template <class Button, class Widget>
21 GuiBC<Button, Widget>::GuiBC(string const & cancel, string const & close)
22 : ButtonControllerBase(cancel, close),
23 okay_(0), apply_(0), cancel_(0), restore_(0)
27 template <class Button, class Widget>
28 void GuiBC<Button, Widget>::refresh()
30 lyxerr[Debug::GUI] << "Calling BC refresh()" << std::endl;
33 bool const enabled = bp().buttonStatus(ButtonPolicy::OKAY);
34 setButtonEnabled(okay_, enabled);
37 bool const enabled = bp().buttonStatus(ButtonPolicy::APPLY);
38 setButtonEnabled(apply_, enabled);
41 bool const enabled = bp().buttonStatus(ButtonPolicy::RESTORE);
42 setButtonEnabled(restore_, enabled);
45 bool const enabled = bp().buttonStatus(ButtonPolicy::CANCEL);
47 setButtonLabel(cancel_, cancel_label_);
49 setButtonLabel(cancel_, close_label_);
54 template <class Button, class Widget>
55 void GuiBC<Button, Widget>::refreshReadOnly()
57 if (read_only_.empty()) return;
59 bool const enable = !bp().isReadOnly();
61 typename Widgets::const_iterator end = read_only_.end();
62 typename Widgets::const_iterator iter = read_only_.begin();
63 for (; iter != end; ++iter) {
64 setWidgetEnabled(*iter, enable);
69 template <class BP, class GUIBC>
70 ButtonController<BP, GUIBC>::ButtonController(string const & cancel,
72 : GUIBC(cancel, close)