]> git.lyx.org Git - lyx.git/blob - src/frontends/xforms/FormERT.C
fix crash with "save as"
[lyx.git] / src / frontends / xforms / FormERT.C
1 /**
2  * \file xforms/FormERT.C
3  * This file is part of LyX, the document processor.
4  * Licence details can be found in the file COPYING.
5  *
6  * \author Jürgen Vigna
7  *
8  * Full author contact details are available in file CREDITS
9  */
10
11 #include <config.h>
12
13 #ifdef __GNUG__
14 #pragma implementation
15 #endif
16
17 #include "xformsBC.h"
18 #include "ControlERT.h"
19 #include "FormERT.h"
20 #include "forms/form_ert.h"
21 #include "support/lstrings.h"
22 #include "helper_funcs.h"
23 #include "debug.h"
24 #include FORMS_H_LOCATION
25
26 typedef FormCB<ControlERT, FormDB<FD_ert> > base_class;
27
28 FormERT::FormERT()
29         : base_class(_("ERT Options"))
30 {}
31
32
33 void FormERT::build()
34 {
35         dialog_.reset(build_ert(this));
36
37         // Manage the ok, apply and cancel/close buttons
38         bc().setOK(dialog_->button_ok);
39         bc().setApply(dialog_->button_apply);
40         bc().setCancel(dialog_->button_close);
41
42         bc().addReadOnly(dialog_->radio_open);
43         bc().addReadOnly(dialog_->radio_collapsed);
44         bc().addReadOnly(dialog_->radio_inlined);
45 }
46
47
48 void FormERT::apply()
49 {
50         if (fl_get_button(dialog_->radio_open))
51                 controller().params().status = InsetERT::Open;
52         else if (fl_get_button(dialog_->radio_collapsed))
53                 controller().params().status = InsetERT::Collapsed;
54         else
55                 controller().params().status = InsetERT::Inlined;
56 }
57
58
59 void FormERT::update()
60 {
61         switch (controller().params().status) {
62         case InsetERT::Open:
63                 fl_set_button(dialog_->radio_open, 1);
64                 break;
65         case InsetERT::Collapsed:
66                 fl_set_button(dialog_->radio_collapsed, 1);
67                 break;
68         case InsetERT::Inlined:
69                 fl_set_button(dialog_->radio_inlined, 1);
70                 break;
71         }
72 }