UniWidgets  1.0.0
IndicatorFourState.h
00001 #ifndef _INDICATORFOURSTATE_H
00002 #define _INDICATORFOURSTATE_H
00003 // -------------------------------------------------------------------------
00004 #include <string>
00005 #include <map>
00006 #include <objects/SimpleObject.h>
00007 #include <objects/LinkLogic.h>
00008 #include "TypicalTwoState.h"
00009 #include "TypicalFourState.h"
00010 #include "TypicalIndicatorBlink.h"
00011 #include <global_macros.h>
00012 // -------------------------------------------------------------------------
00013 namespace UniWidgets
00014 {
00026 class IndicatorFourState : public SimpleObject
00027 {
00028 public:
00029     IndicatorFourState();
00030     explicit IndicatorFourState(SimpleObject::BaseObjectType* gobject);
00031     virtual ~IndicatorFourState();
00032 
00033     /* Constants */
00034     static const Gdk::Rectangle highlevel_rect;         
00035     static const Gdk::Rectangle lowlevel_rect;          
00037     static const string highlevel_off_path;             
00038     static const string highlevel_warn_path;            
00039     static const string highlevel_alarm_path;           
00041     static const string lowlevel_off_path;              
00042     static const string lowlevel_warn_path;             
00043     static const string lowlevel_alarm_path;            
00045     sigc::connection button_release_conn_;              
00047 protected:
00048     /* Handlers */
00049     virtual void on_realize();
00050     virtual void on_connect() throw();
00051 
00052 private:
00053     /* Variables */
00054     TypicalFourState frame_;
00055     TypicalTwoState highlevel_;
00056     TypicalTwoState lowlevel_;
00057     /*Индикатор*/
00058     TypicalIndicatorBlink indicator_;
00059     Gdk::Rectangle* frame_rect;
00060     Gdk::Rectangle* indicator_rect;
00061     LinkLogic link_;
00062     
00063     bool is_configured;
00064 
00065     /* Methods */
00066     void constructor();
00067     void on_rectangle_changed();
00068     void on_configure();
00069 
00070     DISALLOW_COPY_AND_ASSIGN(IndicatorFourState);
00071 
00072     /* Properties */
00073     ADD_PROPERTY( value_ai, UniSetTypes::ObjectId )         
00074     ADD_PROPERTY( property_link_di, UniSetTypes::ObjectId )     
00075     ADD_PROPERTY( property_digits, int )                
00076     ADD_PROPERTY( property_precision, int )             
00077     ADD_PROPERTY( property_factor, double )             
00078     ADD_PROPERTY( svg_path, Glib::ustring )             
00079     ADD_PROPERTY( thresholdhigh_warn, UniSetTypes::ObjectId )   
00080     ADD_PROPERTY( thresholdhigh_alarm, UniSetTypes::ObjectId )  
00081     ADD_PROPERTY( thresholdlow_warn, UniSetTypes::ObjectId )    
00082     ADD_PROPERTY( thresholdlow_alarm, UniSetTypes::ObjectId )   
00083     ADD_PROPERTY( blinking_low, bool )              
00084     ADD_PROPERTY( self_state_ai, UniSetTypes::ObjectId )        
00085     ADD_PROPERTY( node, UniSetTypes::ObjectId )         
00086     ADD_PROPERTY( off_path, Glib::ustring )             
00087     ADD_PROPERTY( warn_path, Glib::ustring )            
00088     ADD_PROPERTY( alarm_path, Glib::ustring )           
00089     ADD_PROPERTY( width, long )                 
00090     ADD_PROPERTY( height, long )                    
00091     ADD_PROPERTY( ind_rect_x, long )                
00092     ADD_PROPERTY( ind_rect_y, long )                
00093     ADD_PROPERTY( indicator_lock_view_high, bool);          
00094     ADD_PROPERTY( indicator_lock_view_low, bool);           
00095 };
00096 
00097 }
00098 #endif