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 <typical/TypicalTwoState.h>
00009 #include <typical/TypicalFourState.h>
00010 #include <typical/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
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
00049 virtual void on_realize();
00050 virtual void on_connect() throw();
00051
00052 private:
00053
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
00066 void constructor();
00067 void on_rectangle_changed();
00068 void on_configure();
00069
00070 DISALLOW_COPY_AND_ASSIGN(IndicatorFourState);
00071
00072
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