UniWidgets  1.0.0
TypicalFourState.h
00001 #ifndef _TYPICALFOURSTATE_H
00002 #define _TYPICALFOURSTATE_H
00003 // -------------------------------------------------------------------------
00004 #include <map>
00005 #include <typical/AbstractTypical.h>
00006 #include <objects/StateLogic.h>
00007 #include <objects/ShowImageLogic.h>
00008 #include <components/Image.h>
00009 #include <uniwidgets/USignals.h>
00010 #include <global_macros.h>
00011 // -------------------------------------------------------------------------
00012 namespace UniWidgets
00013 {
00025 class TypicalFourState : public AbstractTypical
00026 {
00027 public:
00028     TypicalFourState();
00029     explicit TypicalFourState(AbstractTypical::BaseObjectType* gobject);
00030     virtual ~TypicalFourState();
00031 
00032     /* FIXME: Move this types to private or into include/types.h */
00033     /* Types */
00034     typedef std::map<long, Image*> ModeImageMap;                
00035     typedef std::pair<long, Image*> ModeImagePair;              
00036     typedef std::map<long, Glib::ustring > ModePathMap;         
00037     typedef std::pair<long, Glib::ustring > ModePathPair;           
00039     /* Methods */
00040     void configure();                           
00042     void set_rect(const Gdk::Rectangle rect);               
00043     void set_path(const long mode, const Glib::ustring& path);      
00044     void set_state_ai_high_warn(const UniSetTypes::ObjectId sensor);    
00045     void set_node_high_warn(const UniSetTypes::ObjectId node);      
00046     void set_mode_state_high_warn(const long mode);             
00047     void set_state_ai_low_warn(const UniSetTypes::ObjectId sensor);     
00048     void set_node_low_warn(const UniSetTypes::ObjectId node);       
00049     void set_mode_state_low_warn(const long mode);              
00051     void set_state_obj(const UniSetTypes::ObjectId sensor);         
00053     void set_state_ai_high_alarm(const UniSetTypes::ObjectId sensor);   
00054     void set_node_high_alarm(const UniSetTypes::ObjectId node);     
00055     void set_mode_state_high_alarm(const long mode);            
00056     void set_state_ai_low_alarm(const UniSetTypes::ObjectId sensor);    
00057     void set_node_low_alarm(const UniSetTypes::ObjectId node);      
00058     void set_mode_state_low_alarm(const long mode);             
00059     void set_state_blink_low(bool state);                   
00060     virtual void set_lock_view(const bool lock);                
00061     void insert_mode(const long mode, const long priority, const long blink);
00063     Glib::ustring get_path(const long mode);                
00065     Gdk::Rectangle* get_rect();                     
00067 private:
00068     /* Variables */
00069     Gdk::Rectangle rect_;
00070     ShowImageLogic showlogic_;
00071     StateLogic statelogic_high_warn_;
00072     StateLogic statelogic_low_warn_;
00073     StateLogic statelogic_high_alarm_;
00074     StateLogic statelogic_low_alarm_;
00075     ModeImageMap images_;
00076     ModePathMap paths_;
00077 
00078     /* Methods */
00079     void constructor();
00080 
00081     DISALLOW_COPY_AND_ASSIGN(TypicalFourState);
00082 };
00083 
00084 }
00085 #endif