CisternStateLogic.h
00001 #ifndef _CISTERNSTATELOGIC_H
00002 #define _CISTERNSTATELOGIC_H
00003
00004 #include <UniSetTypes.h>
00005 #include <objects/AbstractLogic.h>
00006 #include <USignals.h>
00007 #include <plugins.h>
00008 #include <global_macros.h>
00009
00010 namespace UniWidgets
00011 {
00012 class CisternShowLogic;
00023 class CisternStateLogic : public AbstractLogic
00024 {
00025 public:
00026 CisternStateLogic();
00027 explicit CisternStateLogic(Gtk::EventBox::BaseObjectType* gobject);
00028 virtual ~CisternStateLogic();
00029
00030 virtual void connect();
00031 protected:
00032
00033 virtual void on_init();
00035 private:
00036
00037 CisternShowLogic* current_cistern_;
00038 long current_value_;
00040
00041 void constructor();
00042 void init_state();
00043 void set_state(const long value);
00044 void set_current_state();
00046 void set_message_handler();
00047 void set_confirm_handler(UMessages::MessageId id);
00048 void set_sensor_handler();
00049
00050
00051 void confirm_handler(UMessages::MessageId id, time_t sec);
00052 void message_handler(UMessages::MessageId id, Glib::ustring msg);
00053 void sensor_handler(UniSetTypes::ObjectId sensor, UniSetTypes::ObjectId node, long value);
00054
00055 void set_state_object();
00056
00057 DISALLOW_COPY_AND_ASSIGN(CisternStateLogic);
00058
00059 ADD_PROPERTY( state_di, UniSetTypes::ObjectId )
00060 ADD_PROPERTY( state_obj_ai, UniSetTypes::ObjectId )
00061 ADD_PROPERTY( mode, UniSetTypes::ObjectId )
00062 ADD_PROPERTY( threshold, UniSetTypes::ObjectId )
00063 ADD_PROPERTY( node, UniSetTypes::ObjectId )
00064 };
00065
00066 }
00067
00068 #endif