]> git.tdb.fi Git - r2c2.git/blob - source/remote/mainpanel.cpp
Some other minor UI tweaks
[r2c2.git] / source / remote / mainpanel.cpp
1 #include "mainpanel.h"
2
3 using namespace std;
4 using namespace R2C2;
5
6 MainPanel::MainPanel(Remote &r, R2C2::Client &c):
7         remote(r),
8         client(c)
9 {
10         client.signal_power_changed.connect(sigc::mem_fun(this, &MainPanel::power_changed));
11         client.signal_halt_changed.connect(sigc::mem_fun(this, &MainPanel::halt_changed));
12         client.signal_emergency.connect(sigc::mem_fun(this, &MainPanel::emergency));
13
14         Gtk::HBox *hbox = new Gtk::HBox(false, 5);
15         pack_start(*manage(hbox), false, true);
16
17         hbox->pack_start(*manage(chk_power = new Gtk::CheckButton("Power")), false, true);
18         chk_power->signal_toggled().connect(sigc::mem_fun(this, &MainPanel::ui_power_changed));
19
20         hbox->pack_start(*manage(chk_halt = new Gtk::CheckButton("Halt")), false, true);
21         chk_halt->signal_toggled().connect(sigc::mem_fun(this, &MainPanel::ui_halt_changed));
22
23         pack_start(*manage(lbl_status = new Gtk::Label), false, true);
24
25         show_all();
26 }
27
28 void MainPanel::power_changed(bool p)
29 {
30         chk_power->set_active(p);
31 }
32
33 void MainPanel::halt_changed(bool h)
34 {
35         chk_halt->set_active(h);
36         if(!h)
37                 lbl_status->set_text(string());
38 }
39
40 void MainPanel::emergency(const string &msg)
41 {
42         lbl_status->set_text(msg);
43 }
44
45 void MainPanel::ui_power_changed()
46 {
47         client.set_power(chk_power->get_active());
48 }
49
50 void MainPanel::ui_halt_changed()
51 {
52         client.set_halt(chk_halt->get_active());
53 }