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