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( node, UniSetTypes::ObjectId )          
00072   ADD_PROPERTY( cube_ai, UniSetTypes::ObjectId )          
00073   ADD_PROPERTY( property_link_di, UniSetTypes::ObjectId )        
00074   ADD_PROPERTY( self_state_ai, UniSetTypes::ObjectId )        
00075   ADD_PROPERTY( threshold_high_ai, UniSetTypes::ObjectId )      
00076   ADD_PROPERTY( cistern_high_level, long)            
00077   ADD_PROPERTY( threshold_low_ai, UniSetTypes::ObjectId )        
00078   /*States of thresholds*/
00079   /*High*/
00080   ADD_PROPERTY( mode_logic_on_high, long )          
00081   ADD_PROPERTY( mode_on_high_type, UniWidgetsTypes::ThresholdType )    
00082   ADD_PROPERTY( priority_on_high, long )            
00083   /*Low*/
00084   ADD_PROPERTY( mode_logic_on_low, long )            
00085   ADD_PROPERTY( mode_on_low_type, UniWidgetsTypes::ThresholdType )    
00086   ADD_PROPERTY( priority_on_low, long )            
00087   /*Images*/
00088   ADD_PROPERTY( cistern_background_off_path, Glib::ustring )      
00089   ADD_PROPERTY( cistern_background_warn_path, Glib::ustring )      
00090   ADD_PROPERTY( cistern_background_alarm_path, Glib::ustring )      
00091   ADD_PROPERTY( cistern_filling_path, Glib::ustring )        
00092   ADD_PROPERTY( cistern_scale_path, Glib::ustring )        
00093   ADD_PROPERTY( cistern_scale_switch, bool)                            
00094   ADD_PROPERTY( high_level_off_path, Glib::ustring )        
00095   ADD_PROPERTY( high_level_alarm_path, Glib::ustring )        
00096   ADD_PROPERTY( low_level_alarm_path, Glib::ustring )        
00097   ADD_PROPERTY( low_level_off_path, Glib::ustring )        
00098   ADD_PROPERTY( cistern_indicator_path, Glib::ustring )        
00099   ADD_PROPERTY( cistern_indicator_alarm_path, Glib::ustring )      
00100   ADD_PROPERTY( cistern_high_alarm_path, Glib::ustring )        
00101   ADD_PROPERTY( cistern_low_alarm_path, Glib::ustring )        
00103   ADD_PROPERTY( indicator_font, std::string )          
00104   ADD_PROPERTY( indicator_font_color, Gdk::Color )        
00105   ADD_PROPERTY( indicator_precision, long )
00106   ADD_PROPERTY( indicator_digits, long )
00107   ADD_PROPERTY( property_factor, double )            
00109   ADD_PROPERTY( w_cistern, long)              
00110   ADD_PROPERTY( h_cistern, long)              
00111   ADD_PROPERTY( x_states, long)              
00112   ADD_PROPERTY( y_state_high, long)            
00113   ADD_PROPERTY( y_state_low, long)            
00114   ADD_PROPERTY( w_states, long)              
00115   ADD_PROPERTY( h_states, long)              
00116   ADD_PROPERTY( x_indicator, long)            
00117   ADD_PROPERTY( y_indicator, long)            
00118   ADD_PROPERTY( w_indicator, long)            
00119   ADD_PROPERTY( h_indicator, long)            
00121   ADD_PROPERTY( font_size, long )              
00122   ADD_PROPERTY( font_shadow_on, bool )            
00123   ADD_PROPERTY( font_shadow_off, bool )            
00124   ADD_PROPERTY( font_color_off, Gdk::Color )          
00126   ADD_PROPERTY( num_text_high, Glib::ustring )          
00127   ADD_PROPERTY( font_color_on_high, Gdk::Color )          
00128   ADD_PROPERTY( x_num_text_high_rect, long )          
00129   ADD_PROPERTY( y_num_text_high_rect, long )          
00131   ADD_PROPERTY( num_text_low, Glib::ustring )          
00132   ADD_PROPERTY( font_color_on_low, Gdk::Color )          
00133   ADD_PROPERTY( x_num_text_low_rect, long )          
00134   ADD_PROPERTY( y_num_text_low_rect, long )          
00136 };
00137 
00138 }
00139 #endif

Документация по UniWidgets. Последние изменения: Fri Oct 10 09:57:49 2014. Создано системой  doxygen 1.5.9