]> git.lyx.org Git - lyx.git/blob - src/frontends/xforms/FormChanges.C
remove defaults stuff, let Qt handle no toolbar
[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 "xformsBC.h"
14 #include "ControlChanges.h"
15 #include "FormChanges.h"
16 #include "forms/form_changes.h"
17 #include "xforms_helpers.h"
18
19 #include FORMS_H_LOCATION
20
21 typedef FormController<ControlChanges, FormView<FD_changes> > base_class;
22
23 FormChanges::FormChanges(Dialog & parent)
24         : base_class(parent, _("Merge changes"))
25 {}
26
27
28 void FormChanges::build()
29 {
30         dialog_.reset(build_changes(this));
31
32         // Manage the cancel/close buttons
33         bcview().setCancel(dialog_->button_close);
34
35         // disable for read-only documents
36         bcview().addReadOnly(dialog_->button_accept);
37         bcview().addReadOnly(dialog_->button_reject);
38 }
39
40
41 void FormChanges::update()
42 {
43         input(dialog_->button_next, 0);
44 }
45
46
47 ButtonPolicy::SMInput FormChanges::input(FL_OBJECT * obj, long)
48 {
49         if (obj == dialog_->button_accept) {
50                 controller().accept();
51
52         } else if (obj == dialog_->button_reject) {
53                 controller().reject();
54
55         } else if (obj == dialog_->button_next) {
56
57                 bool const exist = controller().find();
58                 setEnabled(dialog_->button_accept, exist);
59                 setEnabled(dialog_->button_reject, exist);
60                 setEnabled(dialog_->button_next, exist);
61
62                 string const author = exist ? controller().getChangeAuthor() : "";
63                 fl_set_object_label(dialog_->text_author, author.c_str());
64
65                 string const date = exist ? controller().getChangeDate() : "";
66                 fl_set_object_label(dialog_->text_date, date.c_str());
67
68                 // Yes, this is needed.
69                 fl_redraw_form(form());
70         }
71
72         return ButtonPolicy::SMI_VALID;
73 }