MyGUI  3.2.1
MyGUI_ILayerNode.h
Go to the documentation of this file.
1 /*
2  * This source file is part of MyGUI. For the latest info, see http://mygui.info/
3  * Distributed under the MIT License
4  * (See accompanying file COPYING.MIT or copy at http://opensource.org/licenses/MIT)
5  */
6 
7 #ifndef __MYGUI_I_LAYER_NODE_H__
8 #define __MYGUI_I_LAYER_NODE_H__
9 
10 #include "MyGUI_Prerequest.h"
11 #include "MyGUI_Enumerator.h"
12 #include "MyGUI_IObject.h"
13 #include "MyGUI_IRenderTarget.h"
14 
15 namespace MyGUI
16 {
17 
18  class ILayer;
19  class ILayerItem;
20  class ILayerNode;
21 
22  class RenderItem;
23 
24  typedef std::vector<ILayerNode*> VectorILayerNode;
26 
28  public IObject
29  {
31 
32  public:
33  virtual ~ILayerNode() { }
34 
35  // леер, которому мы принадлежим
36  virtual ILayer* getLayer() const = 0;
37 
38  // возвращает отца или nullptr
39  virtual ILayerNode* getParent() const = 0;
40 
41  // создаем дочерний нод
42  virtual ILayerNode* createChildItemNode() = 0;
43  // удаляем дочерний нод
44  virtual void destroyChildItemNode(ILayerNode* _node) = 0;
45 
46  // поднимаем дочерний нод
47  virtual void upChildItemNode(ILayerNode* _node) = 0;
48 
49  // список детей
50  virtual EnumeratorILayerNode getEnumerator() const = 0;
51 
52  virtual size_t getLayerNodeCount() const = 0;
53 
54  virtual ILayerNode* getLayerNodeAt(size_t _index) const = 0;
55 
56  // добавляем айтем к ноду
57  virtual void attachLayerItem(ILayerItem* _item) = 0;
58  // удаляем айтем из нода
59  virtual void detachLayerItem(ILayerItem* _root) = 0;
60 
61  // добавляет саб айтем и возвращает рендер айтем
62  virtual RenderItem* addToRenderItem(ITexture* _texture, bool _firstQueue, bool _separate) = 0;
63  // необходимо обновление нода
64  virtual void outOfDate(RenderItem* _item) = 0;
65 
66  // возвращает виджет по позиции
67  virtual ILayerItem* getLayerItemByPoint(int _left, int _top) const = 0;
68 
69  // рисует леер
70  virtual void renderToTarget(IRenderTarget* _target, bool _update) = 0;
71 
72  virtual void resizeView(const IntSize& _viewSize) = 0;
73 
74  virtual float getNodeDepth() = 0;
75  };
76 
77 } // namespace MyGUI
78 
79 #endif // __MYGUI_I_LAYER_NODE_H__