UniWidgets  1.0.0
ControlledRectifier.h
00001 #ifndef _CONTROLLEDRECTIFIER_H
00002 #define _CONTROLLEDRECTIFIER_H
00003 // -------------------------------------------------------------------------
00004 #include <string>
00005 #include <map>
00006 #include <objects/SimpleObject.h>
00007 #include <objects/LinkLogic.h>
00008 #include <typical/TypicalState.h>
00009 #include <typical/TypicalIndicator.h>
00010 #include <global_macros.h>
00011 // -------------------------------------------------------------------------
00012 namespace UniWidgets
00013 {
00023 class ControlledRectifier : public SimpleObject
00024 {
00025 public:
00026     ControlledRectifier();
00027     explicit ControlledRectifier(SimpleObject::BaseObjectType* gobject);
00028     virtual ~ControlledRectifier();
00029 
00030     /* Constants */
00031     Gdk::Rectangle* state_rect;             
00032     Gdk::Rectangle* state2_rect;                
00033     Gdk::Rectangle* state3_rect;                
00034     Gdk::Rectangle* indicator1_rect;            
00035     Gdk::Rectangle* indicator2_rect;            
00036     Gdk::Rectangle* back_rect;              
00038 protected:
00039     /* Handlers */
00040     virtual void on_realize();
00041     virtual void on_connect() throw();
00042 
00043 private:
00044     /* Variables */
00045     TypicalState state1_;
00046     TypicalState state2_;
00047     TypicalState state3_;
00048     TypicalIndicator indicator1_;
00049     TypicalIndicator indicator2_;
00050     TypicalState back_;
00051     LinkLogic link_;
00052     bool is_configured;
00053 
00054     /* Methods */
00055     void constructor();
00056     void on_rectangle_changed();
00057     void on_configure();
00058     void set_rectangle(Gdk::Rectangle* rect,const long x, const long y, const long w, const long h);
00059 
00060     DISALLOW_COPY_AND_ASSIGN(ControlledRectifier);
00061 
00062     /* Properties */
00063     ADD_PROPERTY( state_ai, UniSetTypes::ObjectId )             
00064     ADD_PROPERTY( property_link_di, UniSetTypes::ObjectId )         
00065     ADD_PROPERTY( u_ai, UniSetTypes::ObjectId )             
00066     ADD_PROPERTY( i_ai, UniSetTypes::ObjectId )             
00067     ADD_PROPERTY( node, UniSetTypes::ObjectId )             
00068     ADD_PROPERTY(balancer1_off_path, Glib::ustring )            
00069     ADD_PROPERTY(balancer1_on_path, Glib::ustring )             
00070     ADD_PROPERTY(balancer1_warn_path, Glib::ustring )           
00071     ADD_PROPERTY(balancer1_alarm_path,Glib::ustring  )          
00072     ADD_PROPERTY(balancer2_off_path, Glib::ustring )            
00073     ADD_PROPERTY(balancer2_on_path, Glib::ustring )             
00074     ADD_PROPERTY(balancer2_warn_path, Glib::ustring )           
00075     ADD_PROPERTY(balancer2_alarm_path, Glib::ustring )          
00076     ADD_PROPERTY(word_off_path, Glib::ustring )             
00077     ADD_PROPERTY(word_on_path, Glib::ustring )              
00078     ADD_PROPERTY(word_warn_path, Glib::ustring )                
00079     ADD_PROPERTY(word_alarm_path, Glib::ustring )               
00080     ADD_PROPERTY(word_back_path, Glib::ustring )                
00081     ADD_PROPERTY(indicator_u_path, Glib::ustring )              
00082     ADD_PROPERTY(indicator_i_path, Glib::ustring )              
00083     ADD_PROPERTY(background_path, Glib::ustring )               
00084     ADD_PROPERTY(background_on_path, Glib::ustring )            
00085     ADD_PROPERTY(background_warn_path, Glib::ustring )          
00086     ADD_PROPERTY(background_alarm_path, Glib::ustring )         
00087     /*Rectangle*/
00088     ADD_PROPERTY( w_back_rect, long )                   
00089     ADD_PROPERTY( h_back_rect, long )                   
00090     ADD_PROPERTY( w_state_rect, long )                  
00091     ADD_PROPERTY( h_state_rect, long )                  
00092     ADD_PROPERTY( x_state_rect, long )                  
00093     ADD_PROPERTY( y_state_rect1, long )                 
00094     ADD_PROPERTY( y_state_rect2, long )                 
00095     ADD_PROPERTY( w_state3_rect, long )                 
00096     ADD_PROPERTY( h_state3_rect, long )                 
00097     ADD_PROPERTY( x_state3_rect, long )                 
00098     ADD_PROPERTY( y_state3_rect, long )                 
00099     ADD_PROPERTY( w_indicator_rect, long )                  
00100     ADD_PROPERTY( h_indicator_rect, long )                  
00101     ADD_PROPERTY( x_indicator_rect, long )                  
00102     ADD_PROPERTY( y_indicator1_rect, long )                 
00103     ADD_PROPERTY( y_indicator2_rect, long )                 
00104 };
00105 
00106 }
00107 #endif