MyGUI
3.2.1
Main Page
Related Pages
Namespaces
Data Structures
Files
Examples
File List
Globals
mygui
MyGUIEngine
include
MyGUI_LayerNode.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_LAYER_NODE_H__
8
#define __MYGUI_LAYER_NODE_H__
9
10
#include "
MyGUI_Prerequest.h
"
11
#include "
MyGUI_ILayer.h
"
12
#include "
MyGUI_ILayerNode.h
"
13
#include "
MyGUI_RenderItem.h
"
14
15
namespace
MyGUI
16
{
17
18
class
LayerItem
;
19
typedef
std::vector<RenderItem*>
VectorRenderItem
;
20
typedef
std::vector<ILayerItem*>
VectorLayerItem
;
21
22
class
MYGUI_EXPORT
LayerNode
:
23
public
ILayerNode
24
{
25
MYGUI_RTTI_DERIVED
(
LayerNode
)
26
27
public:
28
explicit
LayerNode
(
ILayer
* _layer,
ILayerNode
* _parent =
nullptr
);
29
virtual ~
LayerNode
();
30
31
// леер, которому мы принадлежим
32
virtual
ILayer
* getLayer() const;
33
34
// возвращает отца или nullptr
35
virtual
ILayerNode
* getParent() const;
36
37
// создаем дочерний нод
38
virtual
ILayerNode
* createChildItemNode();
39
// удаляем дочерний нод
40
virtual
void
destroyChildItemNode(
ILayerNode
* _node);
41
42
// поднимаем дочерний нод
43
virtual
void
upChildItemNode(
ILayerNode
* _node);
44
45
// список детей
46
virtual
EnumeratorILayerNode
getEnumerator() const;
47
48
virtual
size_t
getLayerNodeCount() const;
49
50
virtual
ILayerNode
* getLayerNodeAt(
size_t
_index) const;
51
52
// добавляем айтем к ноду
53
virtual
void
attachLayerItem(
ILayerItem
* _item);
54
// удаляем айтем из нода
55
virtual
void
detachLayerItem(
ILayerItem
* _item);
56
57
// добавляет саб айтем и возвращает рендер айтем
58
virtual
RenderItem
* addToRenderItem(
ITexture
* _texture,
bool
_firstQueue,
bool
_manualRender);
59
// необходимо обновление нода
60
virtual
void
outOfDate(
RenderItem
* _item);
61
62
// возвращает виджет по позиции
63
virtual
ILayerItem
* getLayerItemByPoint(
int
_left,
int
_top) const;
64
65
// рисует леер
66
virtual
void
renderToTarget(
IRenderTarget
* _target,
bool
_update);
67
68
virtual
void
resizeView(const
IntSize
& _viewSize);
69
70
virtual
float
getNodeDepth();
71
72
bool
isOutOfDate() const;
73
74
protected:
75
void
updateCompression();
76
77
protected:
78
// список двух очередей отрисовки, для сабскинов и текста
79
VectorRenderItem
mFirstRenderItems;
80
VectorRenderItem
mSecondRenderItems;
81
82
// список всех рутовых виджетов
83
// у перекрывающегося слоя здесь только один
84
VectorLayerItem
mLayerItems;
85
86
// список такиж как мы, для построения дерева
87
VectorILayerNode
mChildItems;
88
89
ILayerNode
* mParent;
90
ILayer
* mLayer;
91
bool
mOutOfDate;
92
float
mDepth;
93
};
94
95
}
// namespace MyGUI
96
97
#endif // __MYGUI_LAYER_NODE_H__
Generated on Wed Aug 20 2014 00:03:32 for MyGUI by
1.8.3.1