UniWidgets  1.0.0
TypicalGDGControl.h
00001 #ifndef _TYPICALGDGCONTROL_H
00002 #define _TYPICALGDGCONTROL_H
00003 // -------------------------------------------------------------------------
00004 #include <map>
00005 #include <typical/AbstractTypical.h>
00006 #include <objects/ShowImageLogic.h>
00007 #include <components/Image.h>
00008 #include <uniwidgets/USignals.h>
00009 #include <global_macros.h>
00010 #include <objects/StateMultiLogic.h>
00011 // -------------------------------------------------------------------------
00012 namespace UniWidgets
00013 {
00020 class TypicalGDGControl : public AbstractTypical
00021 {
00022 public:
00023     TypicalGDGControl();
00024     explicit TypicalGDGControl(AbstractTypical::BaseObjectType* gobject);
00025     virtual ~TypicalGDGControl();
00026 
00027     /* FIXME: Move this types to private or into include/types.h */
00028     /* Types */
00029     typedef std::map<long, Image*> ModeImageMap;                
00030     typedef std::pair<long, Image*> ModeImagePair;              
00031     typedef std::map<long, Glib::ustring > ModePathMap;         
00032     typedef std::pair<long, Glib::ustring > ModePathPair;           
00034     /* Methods */
00035     void configure();                           
00037     void set_rect(const Gdk::Rectangle rect);               
00038     void set_path(const long mode, const Glib::ustring& path);      
00039     void set_state_ai(const UniSetTypes::ObjectId sensor);          
00040     void set_state_obj(const UniSetTypes::ObjectId sensor);         
00041     void set_node(const UniSetTypes::ObjectId node);            
00042     void set_mode_state(const long mode);                   
00043     void set_text_property(const long x, const long y, const long keg); 
00044     void set_text_color(Gdk::Color color);                  
00045     virtual void set_lock_view(const bool lock);                
00049     Glib::ustring get_path(const long mode);                
00051     Gdk::Rectangle* get_rect();                     
00053 private:
00054     /* Variables */
00055     Gdk::Rectangle rect_;
00056     SimpleText *text_;
00057     ShowImageLogic showlogic_;
00058     StateMultiLogic statemultilogic_;
00059     ModeImageMap images_;
00060     ModePathMap paths_;
00061     long x_text_;
00062     long y_text_;
00063 
00064     /* Methods */
00065     void constructor();
00066     void create_images();
00067 
00068     DISALLOW_COPY_AND_ASSIGN(TypicalGDGControl);
00069 };
00070 
00071 }
00072 #endif