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
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
00066 virtual void on_realize();
00067 virtual void on_connect() throw();
00068
00069 private:
00070
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
00087 void constructor();
00088 void on_rectangle_changed();
00089 void on_configure();
00090
00091 DISALLOW_COPY_AND_ASSIGN(VDG);
00092
00093
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