UniWidgets  1.0.0
CisternSmall.h
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