]> git.lyx.org Git - lyx.git/blob - src/frontends/xforms/FormChanges.C
get rid of broken_header.h and some unneeded tests
[lyx.git] / src / frontends / xforms / FormChanges.C
1 /**
2  * \file FormChanges.C
3  * This file is part of LyX, the document processor.
4  * Licence details can be found in the file COPYING.
5  *
6  * \author John Levon
7  *
8  * Full author contact details are available in file CREDITS.
9  */
10
11 #include <config.h>
12
13 #include "FormChanges.h"
14 #include "ControlChanges.h"
15 #include "forms/form_changes.h"
16
17 #include "xformsBC.h"
18 #include "xforms_helpers.h"
19
20 #include "lyx_forms.h"
21
22 using std::string;
23
24
25 namespace lyx {
26 namespace frontend {
27
28
29 typedef FormController<ControlChanges, FormView<FD_changes> > base_class;
30
31 FormChanges::FormChanges(Dialog & parent)
32         : base_class(parent, _("Merge Changes"))
33 {}
34
35
36 void FormChanges::build()
37 {
38         dialog_.reset(build_changes(this));
39
40         // Manage the cancel/close buttons
41         bcview().setCancel(dialog_->button_close);
42
43         // disable for read-only documents
44         bcview().addReadOnly(dialog_->button_accept);
45         bcview().addReadOnly(dialog_->button_reject);
46 }
47
48
49 void FormChanges::update()
50 {
51         input(dialog_->button_next, 0);
52 }
53
54
55 ButtonPolicy::SMInput FormChanges::input(FL_OBJECT * obj, long)
56 {
57         if (obj == dialog_->button_accept) {
58                 controller().accept();
59
60         } else if (obj == dialog_->button_reject) {
61                 controller().reject();
62
63         } else if (obj == dialog_->button_next) {
64
65                 bool const exist = controller().find();
66                 setEnabled(dialog_->button_accept, exist);
67                 setEnabled(dialog_->button_reject, exist);
68                 setEnabled(dialog_->button_next, exist);
69
70                 string const author = exist ? controller().getChangeAuthor() : "";
71                 fl_set_object_label(dialog_->text_author, author.c_str());
72
73                 string const date = exist ? controller().getChangeDate() : "";
74                 fl_set_object_label(dialog_->text_date, date.c_str());
75
76                 // Yes, this is needed.
77                 fl_redraw_form(form());
78         }
79
80         return ButtonPolicy::SMI_VALID;
81 }
82
83 } // namespace frontend
84 } // namespace lyx