00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef _COMPOSITESCREENELEMENT_
00019 #define _COMPOSITESCREENELEMENT_
00020
00021 #include <list>
00022
00023 #include "AbstractScreenElement.h"
00024
00025 class CompositeScreenElement : public AbstractScreenElement
00026 {
00027 private:
00028 typedef std::pair<std::string, AbstractScreenElement*> StringAbstractElementPair;
00029 typedef std::list<StringAbstractElementPair> ScreenElementList;
00030
00031 ScreenElementList m_subElements;
00032 public:
00033 virtual ~CompositeScreenElement();
00034 virtual void Update(const int nDelta);
00035 virtual void Render(AbstractRenderer* pRenderer, const int nDelta);
00036
00037 void AddElement(const char* id, AbstractScreenElement* pElement);
00038 void RemoveElement(const char* id);
00039 AbstractScreenElement* FindElement(const char* id);
00040 const char* FindElement(AbstractScreenElement* pElement);
00041
00042 };
00043
00044 #endif