|
UniWidgets
1.0.0
|
00001 #ifndef _IBUTTON_H 00002 #define _IBUTTON_H 00003 // ------------------------------------------------------------------------- 00004 #include <uniwidgets/UDefaultFunctions.h> 00005 #include <uniwidgets/SensorProp.h> 00006 #include <global_macros.h> 00007 #include <gtkmm.h> 00008 #include <objects/SwitchRTVLogic.h> 00009 #include <objects/SimpleObject.h> 00010 #include <plugins.h> 00011 // ------------------------------------------------------------------------- 00012 namespace UniWidgets 00013 { 00014 class ImageBlink; 00015 class SwitchRTVLogic; 00027 class IButton : public Gtk::ToggleButton 00028 { 00029 00030 public: 00031 IButton(); 00032 explicit IButton(Gtk::ToggleButton::BaseObjectType* gobject); 00033 ~IButton() {}; 00034 00035 ImageBlink* image_; 00036 bool current_state_; 00037 virtual void on_clicked(); 00038 void start_blink(const long type,const long mode); 00039 void stop_blink(const long mode); 00041 protected: 00042 00043 /* Event handlers */ 00044 virtual void on_realize(); 00045 00046 private: 00047 SwitchRTVLogic* logic; 00048 std::map<long, Glib::ustring > images_; 00050 /* Methods */ 00051 void constructor(); 00052 void initialise_image(); 00053 DISALLOW_COPY_AND_ASSIGN(IButton); 00054 /* Properties */ 00055 //Картинки для двух состояний(нажата, отжата) и отсутствующая картинка 00056 ADD_PROPERTY( image0_path_, Glib::ustring ) 00057 ADD_PROPERTY( image1_path_, Glib::ustring ) 00058 ADD_PROPERTY( image0_alarm_path_, Glib::ustring ) 00059 ADD_PROPERTY( image1_alarm_path_, Glib::ustring ) 00060 ADD_PROPERTY( image0_sw_path_, Glib::ustring ) 00061 ADD_PROPERTY( image1_sw_path_, Glib::ustring ) 00062 /*Датчики команд переключения и состояния переключателя*/ 00063 ADD_PROPERTY( state_di, UniSetTypes::ObjectId ) 00064 ADD_PROPERTY( state_common_di, UniSetTypes::ObjectId ) 00065 ADD_PROPERTY( cmd_state_di, UniSetTypes::ObjectId ) 00066 ADD_PROPERTY( cmd_state_common_di, UniSetTypes::ObjectId ) 00067 /*Возможность задания смежного управления. 00068 Например, со второй GUI станции как в проекте ЯУЗА*/ 00069 ADD_PROPERTY( cmd_state_slave_di, UniSetTypes::ObjectId ) 00070 ADD_PROPERTY( cmd_state_slave_common_di, UniSetTypes::ObjectId ) 00071 ADD_PROPERTY( node, UniSetTypes::ObjectId ) 00072 ADD_PROPERTY( object, long ) 00073 }; 00074 00075 } 00076 #endif
1.7.6.1