-/* $Id$
-
-This file is part of the MSP Märklin suite
-Copyright © 2009 Mikkosoft Productions, Mikko Rasa
-Distributed under the GPL
-*/
-
#ifndef TRAINPANEL_H_
#define TRAINPANEL_H_
-#include <gtkmm/checkbutton.h>
-#include <gtkmm/frame.h>
-#include <gtkmm/label.h>
-#include <gtkmm/scale.h>
+#include <msp/gltk/indicator.h>
+#include <msp/gltk/panel.h>
+#include <msp/gltk/slider.h>
+#include <msp/gltk/toggle.h>
#include "network/train.h"
-class TrainPanel: public Gtk::Frame
+class TrainPanel: public Msp::GLtk::Panel, public sigc::trackable
{
private:
- Marklin::NetTrain &train;
- Gtk::Scale *scl_speed;
- Gtk::Label *lbl_status;
- std::map<unsigned, Gtk::CheckButton *> chk_funcs;
+ R2C2::NetTrain &train;
+ Msp::GLtk::Indicator *ind_forward;
+ Msp::GLtk::Indicator *ind_reverse;
+ Msp::GLtk::Slider *sld_speed;
+ Msp::GLtk::Label *lbl_speed;
+ Msp::GLtk::Label *lbl_status;
+ std::map<unsigned, Msp::GLtk::Toggle *> tgl_functions;
+ bool updating;
public:
- TrainPanel(Marklin::NetTrain &);
+ TrainPanel(R2C2::NetTrain &);
+
private:
- void name_changed(const std::string &);
- void status_changed(const std::string &);
- void speed_changed(unsigned);
+ void update_reverse(bool);
+ void update_speed(float);
+ void ui_speed_changed(float);
void function_changed(unsigned, bool);
- void ui_speed_changed();
- void ui_function_changed(unsigned);
+ void ui_function_toggled(bool, unsigned);
+ void status_changed(const std::string &);
};
#endif