using namespace R2C2;
ClockDialog::ClockDialog(Engineer &engineer):
+ DynamicDialog(engineer.get_user_interface()),
clock(engineer.get_layout().get_clock())
{
Loader::WidgetMap widgets;
GLtk::Button *button = dynamic_cast<GLtk::Button *>(get_item(widgets, "btn_rate"));
button->signal_clicked.connect(sigc::mem_fun(this, &ClockDialog::set_rate));
ent_rate = dynamic_cast<GLtk::Entry *>(get_item(widgets, "ent_rate"));
+ ent_rate->set_text(lexical_cast<string>(clock.get_rate()));
button = dynamic_cast<GLtk::Button *>(get_item(widgets, "btn_stop"));
button->signal_clicked.connect(sigc::mem_fun(this, &ClockDialog::stop_clicked));
stack.arrange(*get_item(widgets, "placeholder"));
add(*(new ClockWidget(clock)));
- clock.signal_minute.connect(sigc::mem_fun(this, &ClockDialog::minute_changed));
+ clock.signal_minute.connect(sigc::mem_fun(this, &ClockDialog::update_time));
+ clock.signal_discontinuity.connect(sigc::mem_fun(this, &ClockDialog::update_time));
+ update_time();
}
-void ClockDialog::minute_changed()
+void ClockDialog::update_time()
{
Time::TimeDelta time = clock.get_current_time();
unsigned hour = time/Time::hour;
{
}
}
+
+bool ClockDialog::save_state(DataFile::Statement &st) const
+{
+ st.keyword = "clockdialog";
+ save_position(st.sub);
+
+ return true;
+}