3 #include FORMS_H_LOCATION
9 #include "ButtonController.h"
10 #include "support/LAssert.h"
14 ButtonController::ButtonController(ButtonPolicy * bp,
15 char const * cancel, char const * close)
16 : bp_(bp), okay_(0), apply_(0), cancel_(0), undo_all_(0),
17 read_only_(), cancel_label(cancel), close_label(close)
23 void ButtonController::refresh()
26 if (bp_->buttonStatus(ButtonPolicy::OKAY)) {
27 fl_activate_object(okay_);
28 fl_set_object_lcol(okay_, FL_BLACK);
30 fl_deactivate_object(okay_);
31 fl_set_object_lcol(okay_, FL_INACTIVE);
35 if (bp_->buttonStatus(ButtonPolicy::APPLY)) {
36 fl_activate_object(apply_);
37 fl_set_object_lcol(apply_, FL_BLACK);
39 fl_deactivate_object(apply_);
40 fl_set_object_lcol(apply_, FL_INACTIVE);
44 if (bp_->buttonStatus(ButtonPolicy::UNDO_ALL)) {
45 fl_activate_object(undo_all_);
46 fl_set_object_lcol(undo_all_, FL_BLACK);
48 fl_deactivate_object(undo_all_);
49 fl_set_object_lcol(undo_all_,
54 if (bp_->buttonStatus(ButtonPolicy::CANCEL)) {
55 fl_set_object_label(cancel_,
58 fl_set_object_label(cancel_,
62 if (!read_only_.empty()) {
63 if (bp_->isReadOnly()) {
64 std::list<FL_OBJECT *>::iterator
65 end = read_only_.end();
66 for (std::list<FL_OBJECT *>::iterator
67 iter = read_only_.begin();
70 fl_deactivate_object(*iter);
71 fl_set_object_lcol(*iter,
75 std::list<FL_OBJECT *>::iterator
76 end = read_only_.end();
77 for (std::list<FL_OBJECT *>::iterator
78 iter = read_only_.begin();
81 fl_activate_object(*iter);
82 fl_set_object_lcol(*iter,
90 void ButtonController::input(ButtonPolicy::SMInput in)
92 //lyxerr << "ButtonController::input: bp_[" << bp_ << "]" << endl;
98 void ButtonController::ok()
100 input(ButtonPolicy::SMI_OKAY);
104 void ButtonController::apply()
106 input(ButtonPolicy::SMI_APPLY);
110 void ButtonController::cancel()
112 input(ButtonPolicy::SMI_CANCEL);
116 void ButtonController::undoAll()
118 input(ButtonPolicy::SMI_UNDO_ALL);
122 void ButtonController::hide()
124 input(ButtonPolicy::SMI_HIDE);
128 bool ButtonController::readOnly(bool ro)
131 input(ButtonPolicy::SMI_READ_ONLY);
133 input(ButtonPolicy::SMI_READ_WRITE);
139 void ButtonController::readWrite()
145 bool ButtonController::valid(bool v)
148 input(ButtonPolicy::SMI_VALID);
150 input(ButtonPolicy::SMI_INVALID);
156 void ButtonController::invalid()