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
00014
00021 class TypicalMultiState : public AbstractTypical
00022 {
00023 public:
00024 TypicalMultiState();
00025 explicit TypicalMultiState(AbstractTypical::BaseObjectType* gobject);
00026 virtual ~TypicalMultiState();
00027
00028
00029
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
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
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
00088 void constructor();
00089
00090 DISALLOW_COPY_AND_ASSIGN(TypicalMultiState);
00091 };
00092
00093 }
00094 #endif