00001
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef __MYGUI_I_LAYER_H__
00024 #define __MYGUI_I_LAYER_H__
00025
00026 #include "MyGUI_Prerequest.h"
00027 #include "MyGUI_Types.h"
00028 #include "MyGUI_IRenderTarget.h"
00029 #include "MyGUI_ILayerNode.h"
00030 #include "MyGUI_ISerializable.h"
00031
00032 namespace MyGUI
00033 {
00034
00035 class ILayerItem;
00036
00037 class MYGUI_EXPORT ILayer : public ISerializable
00038 {
00039 MYGUI_RTTI_DERIVED( ILayer )
00040
00041 public:
00042 ILayer() { }
00043 virtual ~ILayer() { }
00044
00045
00046 const std::string& getName() const { return mName; }
00047
00048
00049 virtual ILayerNode* createChildItemNode() = 0;
00050
00051 virtual void destroyChildItemNode(ILayerNode* _node) = 0;
00052
00053
00054 virtual void upChildItemNode(ILayerNode* _node) = 0;
00055
00056
00057 virtual EnumeratorILayerNode getEnumerator() = 0;
00058
00059
00060 virtual ILayerItem* getLayerItemByPoint(int _left, int _top) = 0;
00061
00062
00063 virtual IntPoint getPosition(int _left, int _top) const = 0;
00064
00065
00066 virtual const IntSize& getSize() const = 0;
00067
00068
00069 virtual void renderToTarget(IRenderTarget* _target, bool _update) = 0;
00070
00071 virtual void dumpStatisticToLog() { }
00072
00073 protected:
00074 std::string mName;
00075 };
00076
00077 }
00078
00079 #endif // __MYGUI_I_LAYER_H__