Go to the documentation of this file.00001
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef __MYGUI_LAYER_ITEM_H__
00024 #define __MYGUI_LAYER_ITEM_H__
00025
00026 #include "MyGUI_Prerequest.h"
00027 #include "MyGUI_Common.h"
00028 #include "MyGUI_LayerManager.h"
00029 #include "MyGUI_ILayer.h"
00030 #include "MyGUI_ILayerNode.h"
00031 #include "MyGUI_ILayerItem.h"
00032 #include "MyGUI_ISubWidget.h"
00033
00034 namespace MyGUI
00035 {
00036
00037 class MYGUI_EXPORT LayerItem : public ILayerItem
00038 {
00039 public:
00040 LayerItem() : mLayer(nullptr), mLayerNode(nullptr), mSaveLayerNode(nullptr) { }
00041 virtual ~LayerItem() { }
00042
00043 public:
00044 ILayer* getLayer() { return mLayer; }
00045
00046 virtual void attachItemToNode(ILayer* _layer, ILayerNode* _node);
00047 virtual void detachFromLayer();
00048 virtual void upLayerItem();
00049
00050 void setRenderItemTexture(const std::string& _texture);
00051
00052 void addChildItem(LayerItem* _item);
00053 void removeChildItem(LayerItem* _item);
00054
00055 void addChildNode(LayerItem* _item);
00056 void removeChildNode(LayerItem* _item);
00057
00058 void addRenderItem(ISubWidget* _item);
00059 void removeAllRenderItems();
00060
00061 void saveLayerItem();
00062 void restoreLayerItem();
00063
00064 protected:
00065 void attachToLayerItemNode(ILayerNode* _node, bool _deep);
00066 void detachFromLayerItemNode(bool _deep);
00067
00068 private:
00069
00070 ILayer* mLayer;
00071
00072 ILayerNode * mLayerNode;
00073 ILayerNode * mSaveLayerNode;
00074
00075 typedef std::vector<LayerItem*> VectorLayerItem;
00076
00077 VectorLayerItem mLayerItems;
00078
00079 VectorLayerItem mLayerNodes;
00080
00081
00082 VectorSubWidget mDrawItems;
00083
00084 std::string mTexture;
00085
00086 };
00087
00088 }
00089
00090 #endif // __MYGUI_LAYER_ITEM_H__