16 mLayerItems.push_back(_item);
17 if (mLayerNode !=
nullptr)
25 VectorLayerItem::iterator item = std::remove(mLayerItems.begin(), mLayerItems.end(), _item);
26 MYGUI_ASSERT(item != mLayerItems.end(),
"item not found");
27 mLayerItems.erase(item);
32 mLayerNodes.push_back(_item);
33 if (mLayerNode !=
nullptr)
43 VectorLayerItem::iterator item = std::remove(mLayerNodes.begin(), mLayerNodes.end(), _item);
44 MYGUI_ASSERT(item != mLayerNodes.end(),
"item not found");
45 mLayerNodes.erase(item);
50 mDrawItems.push_back(_item);
61 if (mTexture == _texture)
76 mSaveLayerNode = mLayerNode;
81 mLayerNode = mSaveLayerNode;
99 if (
nullptr == mLayer)
106 mLayerNode->detachLayerItem(
this);
115 mLayer->destroyChildItemNode(save);
116 mLayerNode =
nullptr;
137 for (
auto& drawItem : mDrawItems)
139 drawItem->createDrawItem(mTexture, _item);
142 for (
auto& layerItem : mLayerItems)
144 layerItem->attachToLayerItemNode(_item, _deep);
147 for (
auto& layerNode : mLayerNodes)
153 layerNode->attachToLayerItemNode(child_node, _deep);
160 for (
auto& layerItem : mLayerItems)
162 layerItem->detachFromLayerItemNode(_deep);
165 for (
auto& layerNode : mLayerNodes)
170 layerNode->detachFromLayerItemNode(_deep);
182 for (
auto& drawItem : mDrawItems)
184 drawItem->destroyDrawItem();
187 mLayerNode =
nullptr;
#define MYGUI_ASSERT(exp, dest)
#define MYGUI_DEBUG_ASSERT(exp, dest)
virtual void upChildItemNode(ILayerNode *_item)=0
virtual void destroyChildItemNode(ILayerNode *_node)=0
virtual ILayerNode * getParent() const =0
virtual ILayer * getLayer() const =0
virtual ILayerNode * createChildItemNode()=0
void removeChildNode(LayerItem *_item)
ILayerNode * getLayerNode() const
void attachToLayerItemNode(ILayerNode *_item, bool _deep)
void detachFromLayerItemNode(bool _deep)
void addChildItem(LayerItem *_item)
void addChildNode(LayerItem *_item)
void removeChildItem(LayerItem *_item)
void removeAllRenderItems()
ILayer * getLayer() const
void addRenderItem(ISubWidget *_item)
void detachFromLayer() override
void upLayerItem() override
void attachItemToNode(ILayer *_layer, ILayerNode *_node) override
void setRenderItemTexture(ITexture *_texture)