UniWidgets  1.0.0
VDG.h
00001 #ifndef _VDG_H
00002 #define _VDG_H
00003 // -------------------------------------------------------------------------
00004 #include <string>
00005 #include <map>
00006 #include <components/Image.h>
00007 #include <objects/SimpleObject.h>
00008 #include <objects/LinkLogic.h>
00009 #include <typical/TypicalState.h>
00010 #include <typical/IndicatorTwoState.h>
00011 #include <typical/IndicatorFourState.h>
00012 #include <global_macros.h>
00013 // -------------------------------------------------------------------------
00014 namespace UniWidgets
00015 {
00025 class VDG : public SimpleObject
00026 {
00027 public:
00028     VDG();
00029     explicit VDG(SimpleObject::BaseObjectType* gobject);
00030     virtual ~VDG();
00031 
00032     /* Constants */
00033     Gdk::Rectangle *back_rect;              
00034     Gdk::Rectangle *D_rect;                 
00035     Gdk::Rectangle *G_rect;                 
00036     Gdk::Rectangle *gen_states_rect;            
00037     Gdk::Rectangle *key_rect;               
00038     Gdk::Rectangle *control_rect;               
00039     static const string img_back_path;          
00040     static const string img_back_protection_path;       
00042     static const string img_key_off_path;           
00043     static const string img_key_on_path;            
00044     static const string img_key_protection_path;        
00045     static const string img_key_undef_path;         
00046     static const string img_key_undef_off_path;     
00048     static const string img_gen_off_path;           
00050     static const string img_indicator_u_path;       
00051     static const string img_indicator_u_warn_path;      
00052     static const string img_indicator_p_path;       
00053     static const string img_indicator_p_warn_path;      
00054     static const string img_indicator_p_alarm_path;     
00055     static const string img_indicator_f_path;       
00056     static const string img_indicator_f_warn_path;      
00057     static const string img_indicator_i_path;       
00059     static const string img_control_dist_path;      
00060     static const string img_control_hand_path;      
00062     sigc::connection button_release_conn_;          
00064 protected:
00065     /* Handlers */
00066     virtual void on_realize();
00067     virtual void on_connect() throw();
00068 
00069 private:
00070     /* Variables */
00071     Image name;
00072     TypicalState state_back;
00073     TypicalState state_key;
00074     TypicalTwoState state_D;
00075     TypicalTwoState state_G;
00076     TypicalFourState generator_states;
00077     IndicatorTwoState indicator_u;
00078     IndicatorFourState indicator_p;
00079     IndicatorTwoState indicator_f;
00080     IndicatorTwoState *indicator_i;
00081     TypicalState state_control;
00082     LinkLogic link_;
00083 
00084     bool is_configured;
00085 
00086     /* Methods */
00087     void constructor();
00088     void on_rectangle_changed();
00089     void on_configure();
00090 
00091     DISALLOW_COPY_AND_ASSIGN(VDG);
00092 
00093     /* Properties */
00094     ADD_PROPERTY( node, UniSetTypes::ObjectId )             
00095     ADD_PROPERTY( property_link_di, UniSetTypes::ObjectId )         
00096     ADD_PROPERTY( svg_path, Glib::ustring )                 
00097     ADD_PROPERTY( name_path, Glib::ustring )                
00098     ADD_PROPERTY( g_off_path, Glib::ustring )               
00099     ADD_PROPERTY( g_on_path, Glib::ustring )                
00100     ADD_PROPERTY( g_warn_path, Glib::ustring )              
00101     ADD_PROPERTY( g_alarm_path, Glib::ustring )             
00102     ADD_PROPERTY( d_off_path, Glib::ustring )               
00103     ADD_PROPERTY( d_on_path, Glib::ustring )                
00104     ADD_PROPERTY( d_alarm_path, Glib::ustring )             
00105     ADD_PROPERTY( generator_ai, UniSetTypes::ObjectId )         
00106     ADD_PROPERTY( diesel_on_di, UniSetTypes::ObjectId )         
00107     ADD_PROPERTY( diesel_alarm_di, UniSetTypes::ObjectId )          
00108     ADD_PROPERTY( key_ai, UniSetTypes::ObjectId )               
00109     ADD_PROPERTY( back_protection_ai, UniSetTypes::ObjectId )       
00110     ADD_PROPERTY( gen_work_path, Glib::ustring )                
00111     ADD_PROPERTY( gen_overload105_di, UniSetTypes::ObjectId )       
00112     ADD_PROPERTY( gen_overload105_path, Glib::ustring )         
00113     ADD_PROPERTY( gen_overload110_di, UniSetTypes::ObjectId )       
00114     ADD_PROPERTY( gen_overload110_path, Glib::ustring )         
00115     ADD_PROPERTY( indicator_u_ai, UniSetTypes::ObjectId )           
00116     ADD_PROPERTY( indicator_p_ai, UniSetTypes::ObjectId )           
00117     ADD_PROPERTY( indicator_f_ai, UniSetTypes::ObjectId )           
00118     ADD_PROPERTY( indicator_i_ai, UniSetTypes::ObjectId )           
00119     ADD_PROPERTY( indicator_threshold_u_warn, UniSetTypes::ObjectId )   
00120     ADD_PROPERTY( indicator_threshold_p_low_warn, UniSetTypes::ObjectId )   
00121     ADD_PROPERTY( indicator_threshold_p_warn, UniSetTypes::ObjectId )   
00122     ADD_PROPERTY( indicator_threshold_p_alarm, UniSetTypes::ObjectId )  
00123     ADD_PROPERTY( indicator_threshold_f_warn, UniSetTypes::ObjectId )   
00124     ADD_PROPERTY( control_di, UniSetTypes::ObjectId )           
00125     ADD_PROPERTY( vdg_ready_di, UniSetTypes::ObjectId )         
00126     ADD_PROPERTY( vdg_ready_path, Glib::ustring )               
00127     ADD_PROPERTY( back_width, long )                    
00128     ADD_PROPERTY( back_height, long )                   
00129     ADD_PROPERTY( x_control, long )                     
00130     ADD_PROPERTY( y_control, long )                     
00131     ADD_PROPERTY( w_control, long )                     
00132     ADD_PROPERTY( h_control, long )                     
00133     ADD_PROPERTY( x_diesel_gen, long )                  
00134     ADD_PROPERTY( y_diesel, long )                      
00135     ADD_PROPERTY( w_h_diesel, long )                    
00136     ADD_PROPERTY( y_gen, long )                     
00137     ADD_PROPERTY( w_h_gen, long )                       
00138     ADD_PROPERTY( x_gen_states, long )                  
00139     ADD_PROPERTY( y_gen_states, long )                  
00140     ADD_PROPERTY( w_gen_states, long )                  
00141     ADD_PROPERTY( h_gen_states, long )                  
00142     ADD_PROPERTY( x_indicators_up, long )                   
00143     ADD_PROPERTY( x_indicators_if, long )                   
00144     ADD_PROPERTY( y_indicator_u, long )                 
00145     ADD_PROPERTY( y_indicator_p, long )                 
00146     ADD_PROPERTY( y_indicator_f, long )                 
00147     ADD_PROPERTY( y_indicator_i, long )                 
00148     ADD_PROPERTY( w_indicators_up, long )                   
00149     ADD_PROPERTY( h_indicators_up, long )                   
00150     ADD_PROPERTY( w_indicators_if, long )                   
00151     ADD_PROPERTY( h_indicators_if, long )                   
00152     ADD_PROPERTY( x_indicator_value_u, long )               
00153     ADD_PROPERTY( x_indicator_value_p, long )               
00154     ADD_PROPERTY( x_indicator_value_f, long )               
00155     ADD_PROPERTY( x_indicator_value_i, long )               
00156     ADD_PROPERTY( x_key, long )                     
00157     ADD_PROPERTY( y_key, long )                     
00158     ADD_PROPERTY( w_key, long )                     
00159     ADD_PROPERTY( h_key, long )                     
00160     ADD_PROPERTY( x_name, long )                        
00161     ADD_PROPERTY( y_name, long )                        
00162     ADD_PROPERTY( w_name, long )                        
00163     ADD_PROPERTY( h_name, long )                        
00165 };
00166 
00167 }
00168 #endif