X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fremote%2Fstatusbar.cpp;fp=source%2Fremote%2Fstatusbar.cpp;h=5feda6494a58ef4ca4d69fa436b5b908e10e6a21;hb=f8873062b146028c07f55ad625d2767e45133c27;hp=0000000000000000000000000000000000000000;hpb=a9bbf8d37a2f94a720897fe4f0ab06a016779c69;p=r2c2.git diff --git a/source/remote/statusbar.cpp b/source/remote/statusbar.cpp new file mode 100644 index 0000000..5feda64 --- /dev/null +++ b/source/remote/statusbar.cpp @@ -0,0 +1,52 @@ +#include +#include +#include "statusbar.h" + +using namespace std; +using namespace Msp; +using namespace R2C2; + +StatusBar::StatusBar(Client &c): + client(c) +{ + Loader::WidgetMap widgets; + DataFile::load(*this, "data/remote/statusbar.ui", widgets); + + Msp::GLtk::Button *btn = dynamic_cast(get_item(widgets, "btn_power_on")); + btn->signal_clicked.connect(sigc::bind(sigc::mem_fun(&client, &Client::set_power), true)); + btn = dynamic_cast(get_item(widgets, "btn_power_off")); + btn->signal_clicked.connect(sigc::bind(sigc::mem_fun(&client, &Client::set_power), false)); + btn = dynamic_cast(get_item(widgets, "btn_halt")); + btn->signal_clicked.connect(sigc::mem_fun(this, &StatusBar::ui_halt_clicked)); + + ind_power_on = dynamic_cast(get_item(widgets, "ind_power_on")); + ind_power_off = dynamic_cast(get_item(widgets, "ind_power_off")); + ind_halt = dynamic_cast(get_item(widgets, "ind_halt")); + + lbl_status = dynamic_cast(get_item(widgets, "lbl_status")); + + client.signal_power_changed.connect(sigc::mem_fun(this, &StatusBar::power_changed)); + client.signal_halt_changed.connect(sigc::mem_fun(this, &StatusBar::halt_changed)); + client.signal_emergency.connect(sigc::mem_fun(this, &StatusBar::emergency)); +} + +void StatusBar::ui_halt_clicked() +{ + //client.set_halt(!client.get_halt()); +} + +void StatusBar::power_changed(bool p) +{ + ind_power_on->set_active(p); + ind_power_off->set_active(!p); +} + +void StatusBar::halt_changed(bool h) +{ + ind_halt->set_active(h); +} + +void StatusBar::emergency(const string &e) +{ + lbl_status->set_text(e); +}