TypicalMultiState.h

00001 #ifndef _TYPICALMULTISTATE_H
00002 #define _TYPICALMULTISTATE_H
00003 // -------------------------------------------------------------------------
00004 #include <map>
00005 #include <typical/AbstractTypical.h>
00006 #include <global_macros.h>
00007 #include <objects/StateMultiLogic.h>
00008 #include <objects/ShowLogic.h>
00009 // -------------------------------------------------------------------------
00010 namespace UniWidgets
00011 {
00012 class Image;
00013 // class ShowLogic;
00014 // class StateMultiLogic;
00021 class TypicalMultiState : public AbstractTypical
00022 {
00023 public:
00024     TypicalMultiState();
00025     explicit TypicalMultiState(AbstractTypical::BaseObjectType* gobject);
00026     virtual ~TypicalMultiState();
00027 
00028     /* FIXME: Move this types to private or into include/types.h */
00029     /* Types */
00030     typedef std::map<long, Image*> ModeImageMap;
00031     typedef std::pair<long, Image*> ModeImagePair;
00032     typedef std::map<long, Glib::ustring > ModePathMap;
00033     typedef std::pair<long, Glib::ustring > ModePathPair;
00034 
00035     /* Methods */
00036     void configure();
00037 
00038     void set_rect(const Gdk::Rectangle rect);
00039     void set_path(const long mode, const Glib::ustring& path);
00040     void set_path2(const long mode, const Glib::ustring& path);
00041 
00042     void set_firststate_ai(const UniSetTypes::ObjectId sensor);
00043     void set_firststate_node(const UniSetTypes::ObjectId node);
00044     void set_firststate_mode(const long mode);
00045     void add_firststate_ignoremode(const long mode);
00046     void add_firststate_blinkoff_mode(const long mode);
00047 
00048     void set_secondstate_ai(const UniSetTypes::ObjectId sensor);
00049     void set_secondstate_node(const UniSetTypes::ObjectId node);
00050     void set_secondstate_mode(const long mode);
00051     void add_secondstate_ignoremode(const long mode);
00052     void add_secondstate_blinkoff_mode(const long mode);
00053 
00054     void set_thirdstate_ai(const UniSetTypes::ObjectId sensor);
00055     void set_thirdstate_node(const UniSetTypes::ObjectId node);
00056     void set_thirdstate_mode(const long mode);
00057     void add_thirdstate_ignoremode(const long mode);
00058     void add_thirdstate_blinkoff_mode(const long mode);
00059 
00060     void set_fourthstate_ai(const UniSetTypes::ObjectId sensor);
00061     void set_fourthstate_node(const UniSetTypes::ObjectId node);
00062     void set_fourthstate_mode(const long mode);
00063     void add_fourthstate_ignoremode(const long mode);
00064     void add_fourthstate_blinkoff_mode(const long mode);
00065 
00066     virtual void set_lock_view(const bool lock);
00067 
00068     void set_state_obj(const UniSetTypes::ObjectId sensor);
00069     void insert_mode(const long mode, const long priority, const long blink);   
00071     Glib::ustring get_path(const long mode, bool is_back = false);
00072 
00073     Gdk::Rectangle* get_rect();
00074 
00075 private:
00076     /* Variables */
00077     Gdk::Rectangle rect_;
00078     ShowLogic *showlogic_;
00079     StateMultiLogic statemultilogic_firststate_;
00080     StateMultiLogic statemultilogic_secondstate_;
00081     StateMultiLogic statemultilogic_thirdstate_;
00082     StateMultiLogic statemultilogic_fourthstate_;
00083     ModeImageMap images_;
00084     ModePathMap paths_;
00085     ModePathMap paths_2;
00086 
00087     /* Methods */
00088     void constructor();
00089 
00090     DISALLOW_COPY_AND_ASSIGN(TypicalMultiState);
00091 };
00092 
00093 }
00094 #endif

Документация по UniWidgets. Последние изменения: Fri Oct 10 09:57:50 2014. Создано системой  doxygen 1.5.9