1 /* This file is part of
2 * =================================================
4 * LyX, The Document Processor
5 * Copyright 1995-2000 The LyX Team.
7 * =================================================
9 * \author Michael Koziarski <michael@koziarski.org>
13 #pragma implementation
21 #include <gtk--/radiobutton.h>
22 #include <gtk--/button.h>
24 FormERT::FormERT(ControlERT & c)
25 : FormCB<ControlERT>(c, "FormERT")
35 // Connect the buttons.
36 ok_btn()->clicked.connect(SigC::slot(this, &FormERT::OKClicked));
37 cancel_btn()->clicked.connect(SigC::slot(this, &FormERT::CancelClicked));
38 apply_btn()->clicked.connect(SigC::slot(this, &FormERT::ApplyClicked));
40 // Manage the buttons state
42 bc().setCancel(cancel_btn());
43 bc().setApply(apply_btn());
45 // Make sure everything is in the correct state.
48 // Manage the read-only aware widgets.
49 bc().addReadOnly(open());
50 bc().addReadOnly(inlined());
51 bc().addReadOnly(collapsed());
56 void FormERT::connect_signals()
58 slot_open = open()->clicked.connect(SigC::slot(this, &FormERT::InputChanged));
59 slot_collapsed = collapsed()->clicked.connect(SigC::slot(this, &FormERT::InputChanged));
60 slot_inlined = inlined()->clicked.connect(SigC::slot(this, &FormERT::InputChanged));
64 void FormERT::disconnect_signals()
66 slot_open.disconnect();
67 slot_collapsed.disconnect();
68 slot_inlined.disconnect();
75 if (open()->get_active())
76 controller().params().status = InsetERT::Open;
77 else if (collapsed()->get_active())
78 controller().params().status = InsetERT::Collapsed;
80 controller().params().status = InsetERT::Inlined;
85 void FormERT::update()
88 switch (controller().params().status) {
90 open()->set_active(true);
92 case InsetERT::Collapsed:
93 collapsed()->set_active(true);
95 case InsetERT::Inlined:
96 inlined()->set_active(true);
103 bool FormERT::validate() const
109 Gtk::Button * FormERT::ok_btn() const
111 return getWidget<Gtk::Button>("r_ok_btn");
113 Gtk::Button * FormERT::apply_btn() const
115 return getWidget<Gtk::Button>("r_apply_btn");
117 Gtk::Button * FormERT::cancel_btn() const
119 return getWidget<Gtk::Button>("r_cancel_btn");
121 Gtk::RadioButton * FormERT::open() const
123 return getWidget<Gtk::RadioButton>("r_open");
125 Gtk::RadioButton * FormERT::collapsed() const
127 return getWidget<Gtk::RadioButton>("r_collapsed");
129 Gtk::RadioButton * FormERT::inlined() const
131 return getWidget<Gtk::RadioButton>("r_inlined");