UniWidgets  1.0.0
TypicalTwoState.h
00001 #ifndef _TYPICALTWOSTATE_H
00002 #define _TYPICALTWOSTATE_H
00003 // -------------------------------------------------------------------------
00004 #include <map>
00005 #include <typical/AbstractTypical.h>
00006 #include <objects/StateLogic.h>
00007 #include <objects/ShowLogic.h>
00008 #include <components/Image.h>
00009 #include <uniwidgets/USignals.h>
00010 #include <global_macros.h>
00011 // -------------------------------------------------------------------------
00012 namespace UniWidgets
00013 {
00025 class TypicalTwoState : public AbstractTypical
00026 {
00027 public:
00028     TypicalTwoState();
00029     explicit TypicalTwoState(AbstractTypical::BaseObjectType* gobject);
00030     virtual ~TypicalTwoState();
00031 
00032     /* FIXME: Move this types to private or into include/types.h */
00033     /* Types */
00034     typedef std::map<long, Image*> ModeImageMap;                    
00035     typedef std::pair<long, Image*> ModeImagePair;                  
00036     typedef std::map<long, Glib::ustring > ModePathMap;             
00037     typedef std::pair<long, Glib::ustring > ModePathPair;               
00039     /* Methods */
00040     void configure();                               
00042     void set_rect(const Gdk::Rectangle rect);                   
00043     void set_path(const long mode, const Glib::ustring& path);          
00044     void set_path2(const long mode, const Glib::ustring& path);         
00045     void set_state_ai_high(const UniSetTypes::ObjectId sensor);         
00046     void set_state_obj(const UniSetTypes::ObjectId sensor);             
00047     void set_node_high(const UniSetTypes::ObjectId node);               
00048     void set_mode_state_high(const long mode);                  
00049     void set_state_ai_low(const UniSetTypes::ObjectId sensor);          
00050     void set_node_low(const UniSetTypes::ObjectId node);                
00051     void set_mode_state_low(const long mode);                   
00052     void set_state_blink_low(bool state);                       
00053     virtual void set_lock_view(const bool lock);                    
00054     void insert_mode(const long mode, const long priority, const long blink);   
00056     Glib::ustring get_path(const long mode, bool is_back = false);          
00058     Gdk::Rectangle* get_rect();                         
00060 private:
00061     /* Variables */
00062     Gdk::Rectangle rect_;
00063     ShowLogic showlogic_;
00064     StateLogic statelogic_high_;
00065     StateLogic statelogic_low_;
00066     ModeImageMap images_;
00067     ModePathMap paths_;/*Пути для картинок*/
00068     ModePathMap paths_2;/*Пути для картинок "подложек" основного состояния*/
00069 
00070     /* Methods */
00071     void constructor();
00072 
00073     DISALLOW_COPY_AND_ASSIGN(TypicalTwoState);
00074 };
00075 
00076 }
00077 #endif