MyGUI: MyGUI_ILayerNode.h Source File

MyGUI 3.2.2

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;
25 typedef Enumerator<VectorILayerNode> EnumeratorILayerNode;
26
27 class MYGUI_EXPORT ILayerNode :
28 public IObject
29 {
30 MYGUI_RTTI_DERIVED( ILayerNode )
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_
MyGUI_IObject.h
MyGUI::ILayerNode
Definition: MyGUI_ILayerNode.h:27
MyGUI_Enumerator.h
MyGUI::VectorILayerNode
std::vector< ILayerNode * > VectorILayerNode
Definition: MyGUI_ILayerNode.h:22
MyGUI::RenderItem
Definition: MyGUI_RenderItem.h:22
MyGUI::ILayerNode::~ILayerNode
virtual ~ILayerNode()
Definition: MyGUI_ILayerNode.h:33
MyGUI::ILayer
Definition: MyGUI_ILayer.h:21
MyGUI_Prerequest.h
MYGUI_RTTI_DERIVED
#define MYGUI_RTTI_DERIVED(DerivedType)
Definition: MyGUI_RTTI.h:65
MyGUI_IRenderTarget.h
MyGUI::Enumerator
Definition: MyGUI_Enumerator.h:48
MyGUI::types::TSize< int >
MyGUI::IObject
Definition: MyGUI_IObject.h:16
MyGUI::ITexture
Definition: MyGUI_ITexture.h:26
MYGUI_EXPORT
#define MYGUI_EXPORT
Definition: MyGUI_Platform.h:103
MyGUI
Definition: MyGUI_ActionController.h:14
MyGUI::ILayerItem
Definition: MyGUI_ILayerItem.h:18
MyGUI::IRenderTarget
Definition: MyGUI_IRenderTarget.h:20
MyGUI::EnumeratorILayerNode
Enumerator< VectorILayerNode > EnumeratorILayerNode
Definition: MyGUI_ILayerNode.h:25