UniWidgets  1.0.0
Cistern.h
00001 #ifndef _CISTERN_H
00002 #define _CISTERN_H
00003 // -------------------------------------------------------------------------
00004 #include <string>
00005 #include <map>
00006 #include <objects/SimpleObject.h>
00007 #include <global_macros.h>
00008 // -------------------------------------------------------------------------
00009 namespace UniWidgets
00010 {
00011 class LinkLogic;
00012 class TypicalState;
00013 class TypicalText;
00014 class TypicalIndicator;
00015 class TypicalCisternBlink;
00016 class TypicalTwoState;
00017 class TypicalIndicatorBlink;
00025 class Cistern : public SimpleObject
00026 {
00027 public:
00028     Cistern();
00029     explicit Cistern(SimpleObject::BaseObjectType* gobject);
00030     virtual ~Cistern();
00031 
00032     /* Constants */
00033     Gdk::Rectangle* state_h_rect;           
00034     Gdk::Rectangle* state_l_rect;           
00035     Gdk::Rectangle* indicator_rect;         
00036     Gdk::Rectangle* cistern_rect;           
00037     Gdk::Rectangle* n_text_h_rect;          
00038     Gdk::Rectangle* n_text_l_rect;          
00039 protected:
00040     /* Handlers */
00041     virtual void on_realize();
00042     virtual void on_connect() throw();
00043 
00044 private:
00045     /* Variables */
00046     TypicalIndicatorBlink* indicator_;
00047     TypicalCisternBlink* cistern_;
00048     TypicalTwoState* frame_;
00049     TypicalState* state_h_;
00050     TypicalState* state_l_;
00051     TypicalText* n_text_h_;
00052     TypicalText* n_text_l_;
00053     LinkLogic* link_;
00054     bool is_configured;
00055 
00056     /* Methods */
00057     void constructor();
00058     void on_rectangle_changed();
00059     void on_text_changed(TypicalText *, const Glib::Property<Glib::ustring> *);
00060     void set_rectangle(Gdk::Rectangle* rect_,const long x, const long y, const long w, const long h);
00061     void on_configure();
00062 
00063     DISALLOW_COPY_AND_ASSIGN(Cistern);
00064 
00065     /* Properties */
00066     /*Lock view for ULockNotebook*/
00067     ADD_PROPERTY( cistern_lock_view_high, bool);                    
00068     ADD_PROPERTY( cistern_lock_view_low, bool);                 
00069     /*Sensors*/
00070     ADD_PROPERTY( state_ai, UniSetTypes::ObjectId )                 
00071     ADD_PROPERTY( cube_ai, UniSetTypes::ObjectId )                  
00072     ADD_PROPERTY( property_link_di, UniSetTypes::ObjectId )             
00073     ADD_PROPERTY( self_state_ai, UniSetTypes::ObjectId )                
00074     ADD_PROPERTY( threshold_high_ai, UniSetTypes::ObjectId )            
00075     ADD_PROPERTY( cistern_high_level, long)                     
00076     ADD_PROPERTY( threshold_low_ai, UniSetTypes::ObjectId )             
00077     /*States of thresholds*/
00078     /*High*/
00079     ADD_PROPERTY( mode_logic_on_high, long )                    
00080     ADD_PROPERTY( mode_on_high_type, UniWidgetsTypes::ThresholdType )       
00081     ADD_PROPERTY( priority_on_high, long )                      
00082     /*Low*/
00083     ADD_PROPERTY( mode_logic_on_low, long )                     
00084     ADD_PROPERTY( mode_on_low_type, UniWidgetsTypes::ThresholdType )        
00085     ADD_PROPERTY( priority_on_low, long )                       
00086     /*Images*/
00087     ADD_PROPERTY( cistern_background_off_path, Glib::ustring )          
00088     ADD_PROPERTY( cistern_background_warn_path, Glib::ustring )         
00089     ADD_PROPERTY( cistern_background_alarm_path, Glib::ustring )            
00090     ADD_PROPERTY( cistern_filling_path, Glib::ustring )             
00091     ADD_PROPERTY( cistern_scale_path, Glib::ustring )               
00092     ADD_PROPERTY( cistern_scale_switch, bool)                               
00093     ADD_PROPERTY( high_level_off_path, Glib::ustring )              
00094     ADD_PROPERTY( high_level_alarm_path, Glib::ustring )                
00095     ADD_PROPERTY( low_level_alarm_path, Glib::ustring )             
00096     ADD_PROPERTY( low_level_off_path, Glib::ustring )               
00097     ADD_PROPERTY( cistern_indicator_path, Glib::ustring )               
00098     ADD_PROPERTY( cistern_indicator_alarm_path, Glib::ustring )         
00099     ADD_PROPERTY( cistern_high_alarm_path, Glib::ustring )              
00100     ADD_PROPERTY( cistern_low_alarm_path, Glib::ustring )               
00102     ADD_PROPERTY( indicator_font, std::string )                 
00103     ADD_PROPERTY( indicator_font_color, Gdk::Color )                
00104     ADD_PROPERTY( property_factor, double )                     
00106     ADD_PROPERTY( w_cistern, long)                          
00107     ADD_PROPERTY( h_cistern, long)                          
00108     ADD_PROPERTY( x_states, long)                           
00109     ADD_PROPERTY( y_state_high, long)                       
00110     ADD_PROPERTY( y_state_low, long)                        
00111     ADD_PROPERTY( w_states, long)                           
00112     ADD_PROPERTY( h_states, long)                           
00113     ADD_PROPERTY( x_indicator, long)                        
00114     ADD_PROPERTY( y_indicator, long)                        
00115     ADD_PROPERTY( w_indicator, long)                        
00116     ADD_PROPERTY( h_indicator, long)                        
00117     ADD_PROPERTY( node, UniSetTypes::ObjectId )                 
00119     ADD_PROPERTY( font_size, long )                         
00120     ADD_PROPERTY( font_shadow_on, bool )                        
00121     ADD_PROPERTY( font_shadow_off, bool )                       
00122     ADD_PROPERTY( font_color_off, Gdk::Color )                  
00124     ADD_PROPERTY( num_text_high, Glib::ustring )                    
00125     ADD_PROPERTY( font_color_on_high, Gdk::Color )                  
00126     ADD_PROPERTY( x_num_text_high_rect, long )                  
00127     ADD_PROPERTY( y_num_text_high_rect, long )                  
00129     ADD_PROPERTY( num_text_low, Glib::ustring )                 
00130     ADD_PROPERTY( font_color_on_low, Gdk::Color )                   
00131     ADD_PROPERTY( x_num_text_low_rect, long )                   
00132     ADD_PROPERTY( y_num_text_low_rect, long )                   
00134 };
00135 
00136 }
00137 #endif