|
UniWidgets
1.0.0
|
00001 #ifndef _CISTERNSMALL_H 00002 #define _CISTERNSMALL_H 00003 // ------------------------------------------------------------------------- 00004 #include <string> 00005 #include <map> 00006 #include <objects/SimpleObject.h> 00007 #include <objects/LinkLogic.h> 00008 #include <typical/TypicalCisternSmall.h> 00009 #include <typical/TypicalText.h> 00010 #include <global_macros.h> 00011 #include <glibmm.h> 00012 #include <gtkmm/enums.h> 00013 // ------------------------------------------------------------------------- 00014 namespace UniWidgets 00015 { 00026 class CisternSmall : public SimpleObject 00027 { 00028 public: 00029 CisternSmall(); 00030 explicit CisternSmall(SimpleObject::BaseObjectType* gobject); 00031 virtual ~CisternSmall(); 00032 00033 protected: 00034 /* Handlers */ 00035 virtual void on_realize(); 00036 virtual void on_connect() throw(); 00037 00038 private: 00039 /* Variables */ 00040 TypicalCisternSmall cistern_; 00041 TypicalText num_text_; 00042 bool is_configured; 00043 Gdk::Rectangle cistern_rect; 00044 Gdk::Rectangle* num_text_rect; 00045 LinkLogic link_; 00046 00047 /* Methods */ 00048 void constructor(); 00049 void on_rectangle_changed(); 00050 void on_rectangle_text_changed(); 00051 void on_text_changed(); 00052 void on_configure(); 00053 00054 DISALLOW_COPY_AND_ASSIGN(CisternSmall); 00055 00056 /* Properties */ 00057 ADD_PROPERTY( state_ai, UniSetTypes::ObjectId ) 00058 ADD_PROPERTY( self_state_ai, UniSetTypes::ObjectId ) 00059 ADD_PROPERTY( property_link_di, UniSetTypes::ObjectId ) 00060 ADD_PROPERTY( img_off_path, Glib::ustring ) 00061 ADD_PROPERTY( img_alarm_path, Glib::ustring ) 00062 ADD_PROPERTY( img_alarm_back_path, Glib::ustring ) 00063 ADD_PROPERTY( property_node, UniSetTypes::ObjectId ) 00064 ADD_PROPERTY( width, long ) 00065 ADD_PROPERTY( height, long ) 00066 /*Свойство для определения к какому типу принадлежит датчик. 00067 AI - если значение оставить по-умолчанию на -1, то виджет будет обрабатывать все изменения датчика 00068 и сработает по приходу значения равного значению свойства "mode_on", для которого есть отображение. 00069 Все остальные значения, кроме "0", будут игнорироваться 00070 DI - Необходимо выставить определенный "mode" в поле "mode_logic",которому соответствует "mode_on". 00071 Так как состояния определены заранее в types.h и приоритеты к ним в AbstractTypical.cc, то необходимо 00072 правильно указаывать "mode" ориентируясь на имеющийся список. 00073 */ 00074 ADD_PROPERTY( mode_logic, long ) 00075 ADD_PROPERTY( num_text, Glib::ustring ) 00076 ADD_PROPERTY( font_size, long ) 00077 ADD_PROPERTY( mode_on, UniWidgetsTypes::ThresholdType ) 00078 ADD_PROPERTY( priority_on, long ) 00079 ADD_PROPERTY( font_color_on, Gdk::Color ) 00080 ADD_PROPERTY( font_color_off, Gdk::Color ) 00081 ADD_PROPERTY( font_shadow_on, bool ) 00082 ADD_PROPERTY( font_shadow_off, bool ) 00083 ADD_PROPERTY( blink_state_on, bool ) 00084 ADD_PROPERTY( alignment, Pango::Alignment ) 00085 ADD_PROPERTY( x_num_text_rect, long ) 00086 ADD_PROPERTY( y_num_text_rect, long ) 00087 00088 }; 00089 00090 } 00091 #endif
1.7.6.1