]> git.lyx.org Git - lyx.git/blob - src/frontends/gnome/GPreamble.C
gtkmm-2 upgrade. Still some small bugs to iron out, but mostly functional
[lyx.git] / src / frontends / gnome / GPreamble.C
1 /* This file is part of
2  * =================================================
3  * 
4  *          LyX, The Document Processor
5  *          Copyright 1995-2000 The LyX Team.
6  *
7  * ================================================= 
8  *
9  * \author Michael Koziarski 
10  */
11
12 #ifdef __GNUG__
13 #pragma implementation
14 #endif
15
16 #include <config.h>
17
18 #include "gnomeBC.h"
19 #include "GPreamble.h"
20
21 #include <gtkmm/textview.h>
22 #include <gtkmm/button.h>
23
24 GPreamble::GPreamble(ControlPreamble & c)
25         : FormCB<ControlPreamble>(c, "GPreamble")
26 {}
27
28
29 GPreamble::~GPreamble()
30 {}
31
32
33 void GPreamble::build()
34 {
35         // Connect the buttons.
36         ok_btn()->signal_clicked().connect(SigC::slot(*this, &GPreamble::OKClicked));
37         cancel_btn()->signal_clicked().connect(SigC::slot(*this, &GPreamble::CancelClicked));
38         apply_btn()->signal_clicked().connect(SigC::slot(*this, &GPreamble::ApplyClicked));
39         // Manage the buttons state
40         bc().setOK(ok_btn());
41         bc().setCancel(cancel_btn());
42         bc().setApply(apply_btn());
43         bc().refresh();
44 }
45
46 void GPreamble::apply()
47 {
48         controller().params() = preamble()->get_buffer()->get_text(preamble()->get_buffer()->get_start_iter(),
49                                                                    preamble()->get_buffer()->get_end_iter(),
50                                                                    false);
51 }
52
53
54 void GPreamble::update()
55 {
56         disconnect_signals();
57         preamble()->get_buffer()->set_text(controller().params());
58         connect_signals();
59 }
60
61 void GPreamble::connect_signals()
62 {
63         slot_preamble_ = preamble()->
64                 get_buffer()->
65                 signal_changed().connect(SigC::slot(*this, &GPreamble::InputChanged));
66 }
67
68 void GPreamble::disconnect_signals() 
69 {
70         slot_preamble_.disconnect();
71 }
72
73 Gtk::Button * GPreamble::ok_btn() const 
74 {
75         return getWidget<Gtk::Button>("r_ok_btn");
76 }
77 Gtk::Button * GPreamble::apply_btn() const 
78 {
79         return getWidget<Gtk::Button>("r_apply_btn");
80 }
81 Gtk::Button * GPreamble::cancel_btn() const 
82 {
83         return getWidget<Gtk::Button>("r_cancel_btn");
84 }
85 Gtk::TextView * GPreamble::preamble() const 
86 {
87         return getWidget<Gtk::TextView>("r_preamble");
88 }