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
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
00041 virtual void on_realize();
00042 virtual void on_connect() throw();
00043
00044 private:
00045
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
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
00066
00067 ADD_PROPERTY( cistern_lock_view_high, bool);
00068 ADD_PROPERTY( cistern_lock_view_low, bool);
00069
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
00079
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
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
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