3 * This file is part of LyX, the document processor.
4 * Licence details can be found in the file COPYING.
8 * Full author contact details are available in file CREDITS.
13 #include "FormChanges.h"
14 #include "ControlChanges.h"
15 #include "forms/form_changes.h"
18 #include "xforms_helpers.h"
20 #include "lyx_forms.h"
29 typedef FormController<ControlChanges, FormView<FD_changes> > base_class;
31 FormChanges::FormChanges(Dialog & parent)
32 : base_class(parent, _("Merge Changes"))
36 void FormChanges::build()
38 dialog_.reset(build_changes(this));
40 // Manage the cancel/close buttons
41 bcview().setCancel(dialog_->button_close);
43 // disable for read-only documents
44 bcview().addReadOnly(dialog_->button_accept);
45 bcview().addReadOnly(dialog_->button_reject);
49 void FormChanges::update()
51 input(dialog_->button_next, 0);
55 ButtonPolicy::SMInput FormChanges::input(FL_OBJECT * obj, long)
57 if (obj == dialog_->button_accept) {
58 controller().accept();
60 } else if (obj == dialog_->button_reject) {
61 controller().reject();
63 } else if (obj == dialog_->button_next) {
65 bool const exist = controller().find();
66 setEnabled(dialog_->button_accept, exist);
67 setEnabled(dialog_->button_reject, exist);
68 setEnabled(dialog_->button_next, exist);
70 string const author = exist ? controller().getChangeAuthor() : "";
71 fl_set_object_label(dialog_->text_author, author.c_str());
73 string const date = exist ? controller().getChangeDate() : "";
74 fl_set_object_label(dialog_->text_date, date.c_str());
76 // Yes, this is needed.
77 fl_redraw_form(form());
80 return ButtonPolicy::SMI_VALID;
83 } // namespace frontend