UniWidgets  1.0.0
TypicalIndicatorBlink.h
00001 #ifndef _TYPICALINDICATORBLINK_H
00002 #define _TYPICALINDICATORBLINK_H
00003 // -------------------------------------------------------------------------
00004 #include <map>
00005 #include <typical/AbstractTypical.h>
00006 #include <objects/IndicatorLogic.h>
00007 #include <objects/IndicatorStateLogic.h>
00008 #include <objects/IndicatorShowLogic.h>
00009 #include <components/TextBlink.h>
00010 #include <uniwidgets/USignals.h>
00011 #include <global_macros.h>
00012 // -------------------------------------------------------------------------
00013 namespace UniWidgets
00014 {
00022 class TypicalIndicatorBlink : public SimpleObject
00023 {
00024 public:
00025     TypicalIndicatorBlink();
00026     explicit TypicalIndicatorBlink(SimpleObject::BaseObjectType* gobject);
00027     virtual ~TypicalIndicatorBlink();
00028 
00029     /* Methods */
00030     void configure();
00031 
00032     void set_rect(const Gdk::Rectangle rect);
00033     void set_precision(int precision);                  
00034     void set_digits(int digits);                        
00035     void set_factor(double factor);                     
00036     void set_value_ai(const UniSetTypes::ObjectId sensor);
00037     void set_node(const UniSetTypes::ObjectId node);
00038     
00039     void set_state_di_colorhigh_warn(const UniSetTypes::ObjectId sensor);   
00040     void set_node_colorhigh_warn(const UniSetTypes::ObjectId node);     
00041     void set_mode_colorhigh_warn(const int mode);               
00043     void set_state_di_colorlow_warn(const UniSetTypes::ObjectId sensor);
00044     void set_node_colorlow_warn(const UniSetTypes::ObjectId node);
00045     void set_mode_colorlow_warn(const int mode);
00046     
00047     void set_state_di_colorhigh_alarm(const UniSetTypes::ObjectId sensor);
00048     void set_node_colorhigh_alarm(const UniSetTypes::ObjectId node);
00049     void set_mode_colorhigh_alarm(const int mode);
00050     
00051     void set_state_di_colorlow_alarm(const UniSetTypes::ObjectId sensor);
00052     void set_node_colorlow_alarm(const UniSetTypes::ObjectId node);
00053     void set_mode_colorlow_alarm(const int mode);
00054 
00055     void set_state_blink_low(bool state);
00056 
00057     void set_state_obj(const UniSetTypes::ObjectId sensor);
00058 
00059     int get_precision();
00060     int get_digits();
00061     double get_factor();
00062     Gdk::Rectangle* get_rect();
00063     inline TextBlink* get_indicator(){return indicator_;};
00064 
00065 private:
00066     /* Variables */
00067     Gdk::Rectangle rect_;
00068     TextBlink *indicator_;
00069     
00070     /*Loigcs*/
00071     IndicatorLogic logic_;
00072   IndicatorShowLogic blinklogic_;
00073   IndicatorStateLogic colorlogichigh_warn_;
00074   IndicatorStateLogic colorlogichigh_alarm_;
00075 
00076   IndicatorStateLogic colorlogiclow_warn_;
00077   IndicatorStateLogic colorlogiclow_alarm_;
00078 
00079     int precision_;
00080     int digits_;
00081     double factor_;
00082 
00083     /* Methods */
00084     void create_indicator();
00085     void constructor();
00086 
00087     DISALLOW_COPY_AND_ASSIGN(TypicalIndicatorBlink);
00088 };
00089 
00090 }
00091 #endif