MyGUI
3.2.1
|
00001 /* 00002 * This source file is part of MyGUI. For the latest info, see http://mygui.info/ 00003 * Distributed under the MIT License 00004 * (See accompanying file COPYING.MIT or copy at http://opensource.org/licenses/MIT) 00005 */ 00006 00007 #ifndef __MYGUI_LAYER_ITEM_H__ 00008 #define __MYGUI_LAYER_ITEM_H__ 00009 00010 #include "MyGUI_Prerequest.h" 00011 #include "MyGUI_LayerManager.h" 00012 #include "MyGUI_ILayer.h" 00013 #include "MyGUI_ILayerNode.h" 00014 #include "MyGUI_ILayerItem.h" 00015 #include "MyGUI_ISubWidget.h" 00016 00017 namespace MyGUI 00018 { 00019 00020 class MYGUI_EXPORT LayerItem : 00021 public ILayerItem 00022 { 00023 public: 00024 LayerItem(); 00025 virtual ~LayerItem(); 00026 00027 ILayer* getLayer() const; 00028 ILayerNode* getLayerNode() const; 00029 00030 virtual void attachItemToNode(ILayer* _layer, ILayerNode* _node); 00031 virtual void detachFromLayer(); 00032 virtual void upLayerItem(); 00033 00034 void setRenderItemTexture(ITexture* _texture); 00035 00036 void addChildItem(LayerItem* _item); 00037 void removeChildItem(LayerItem* _item); 00038 00039 void addChildNode(LayerItem* _item); 00040 void removeChildNode(LayerItem* _item); 00041 00042 void addRenderItem(ISubWidget* _item); 00043 void removeAllRenderItems(); 00044 00045 void saveLayerItem(); 00046 void restoreLayerItem(); 00047 00048 protected: 00049 void attachToLayerItemNode(ILayerNode* _node, bool _deep); 00050 void detachFromLayerItemNode(bool _deep); 00051 00052 private: 00053 // актуально для рутового виджета 00054 ILayer* mLayer; 00055 // конкретный айтем находящийся в слое 00056 ILayerNode* mLayerNode; 00057 ILayerNode* mSaveLayerNode; 00058 00059 typedef std::vector<LayerItem*> VectorLayerItem; 00060 // список наших детей айтемов 00061 VectorLayerItem mLayerItems; 00062 // список наших узлов 00063 VectorLayerItem mLayerNodes; 00064 00065 // вектор всех детей сабскинов 00066 VectorSubWidget mDrawItems; 00067 00068 ITexture* mTexture; 00069 }; 00070 00071 } // namespace MyGUI 00072 00073 #endif // __MYGUI_LAYER_ITEM_H__