@@ -10,7 +10,7 @@ TreeNode::TreeNode() :
10
10
m_pTreeView (nullptr ),
11
11
m_pParentTreeNode (nullptr ),
12
12
m_iDepth (ROOT_NODE_DEPTH),
13
- m_aTreeNodes ()
13
+ mTreeNodes ()
14
14
{
15
15
16
16
}
@@ -37,12 +37,9 @@ void TreeNode::SetInternVisible(bool bVisible)
37
37
38
38
void TreeNode::SetWindow (Window* pManager, Box* pParent, bool bInit)
39
39
{
40
- for (auto it = m_aTreeNodes .begin (); it != m_aTreeNodes .end (); it++)
40
+ for (auto it = mTreeNodes .begin (); it != mTreeNodes .end (); it++)
41
41
{
42
- // 将所有子控件的父节点(GetParent)都设置为 TreeView 中隐藏的 TreeNode
43
- // 在 TreeView 递归销毁子控件时不会因为获取不到父容器指针而崩溃
44
- // RootNode 是一个智能指针,在 TreeView 完全销毁以后会自动销毁
45
- (*it)->SetWindow (pManager, m_pTreeView->GetRootNode (), bInit);
42
+ (*it)->SetWindow (pManager, this , bInit);
46
43
}
47
44
48
45
ListContainerElement::SetWindow (pManager, pParent, bInit);
@@ -78,8 +75,8 @@ bool TreeNode::AddChildNode(TreeNode* pTreeNode)
78
75
79
76
bool TreeNode::AddChildNodeAt (TreeNode* pTreeNode, std::size_t iIndex)
80
77
{
81
- if ( iIndex < 0 || iIndex > m_aTreeNodes .size () ) return false ;
82
- m_aTreeNodes .insert (m_aTreeNodes .begin () + iIndex, pTreeNode);
78
+ if ( iIndex < 0 || iIndex > mTreeNodes .size () ) return false ;
79
+ mTreeNodes .insert (mTreeNodes .begin () + iIndex, pTreeNode);
83
80
84
81
pTreeNode->m_iDepth = m_iDepth + 1 ;
85
82
pTreeNode->SetParentNode (this );
@@ -98,50 +95,50 @@ bool TreeNode::AddChildNodeAt(TreeNode* pTreeNode, std::size_t iIndex)
98
95
std::size_t nGlobalIndex = iIndex;
99
96
for (std::size_t i = 0 ; i < iIndex; i++)
100
97
{
101
- nGlobalIndex += ((TreeNode*)m_aTreeNodes [i])->GetDescendantNodeCount ();
98
+ nGlobalIndex += ((TreeNode*)mTreeNodes [i])->GetDescendantNodeCount ();
102
99
}
103
100
104
101
return m_pTreeView->ListBox ::AddAt (pTreeNode, (int )(nodeIndex + nGlobalIndex + 1 ));
105
102
}
106
103
107
104
bool TreeNode::RemoveChildNodeAt (std::size_t iIndex)
108
105
{
109
- if (iIndex < 0 || iIndex >= m_aTreeNodes .size ()) {
106
+ if (iIndex < 0 || iIndex >= mTreeNodes .size ()) {
110
107
return false ;
111
108
}
112
109
113
- TreeNode* pTreeNode = ((TreeNode*)m_aTreeNodes [iIndex]);
114
- m_aTreeNodes .erase (m_aTreeNodes .begin () + iIndex);
110
+ TreeNode* pTreeNode = ((TreeNode*)mTreeNodes [iIndex]);
111
+ mTreeNodes .erase (mTreeNodes .begin () + iIndex);
115
112
116
113
return pTreeNode->RemoveSelf ();
117
114
}
118
115
119
116
bool TreeNode::RemoveChildNode (TreeNode* pTreeNode)
120
117
{
121
- auto it = std::find (m_aTreeNodes .begin (), m_aTreeNodes .end (), pTreeNode);
122
- if (it == m_aTreeNodes .end ()) {
118
+ auto it = std::find (mTreeNodes .begin (), mTreeNodes .end (), pTreeNode);
119
+ if (it == mTreeNodes .end ()) {
123
120
return false ;
124
121
}
125
122
126
- int iIndex = it - m_aTreeNodes .begin ();
123
+ int iIndex = it - mTreeNodes .begin ();
127
124
return RemoveChildNodeAt (iIndex);
128
125
}
129
126
130
127
void TreeNode::RemoveAllChildNode ()
131
128
{
132
- while (m_aTreeNodes .size () > 0 )
129
+ while (mTreeNodes .size () > 0 )
133
130
{
134
131
RemoveChildNodeAt (0 );
135
132
}
136
133
}
137
134
138
135
bool TreeNode::RemoveSelf ()
139
136
{
140
- for ( auto it = m_aTreeNodes .begin (); it != m_aTreeNodes .end (); it++ )
137
+ for ( auto it = mTreeNodes .begin (); it != mTreeNodes .end (); it++ )
141
138
{
142
139
(*it)->RemoveSelf ();
143
140
}
144
- m_aTreeNodes .clear ();
141
+ mTreeNodes .clear ();
145
142
146
143
if (m_iDepth != ROOT_NODE_DEPTH) {
147
144
return m_pTreeView->ListBox ::RemoveAt (GetIndex ());
@@ -153,7 +150,7 @@ bool TreeNode::RemoveSelf()
153
150
int TreeNode::GetDescendantNodeCount ()
154
151
{
155
152
int nodeCount = (int )GetChildNodeCount ();
156
- for ( auto it = m_aTreeNodes .begin (); it != m_aTreeNodes .end (); it++ )
153
+ for ( auto it = mTreeNodes .begin (); it != mTreeNodes .end (); it++ )
157
154
{
158
155
nodeCount += (*it)->GetDescendantNodeCount ();
159
156
}
@@ -163,22 +160,22 @@ int TreeNode::GetDescendantNodeCount()
163
160
164
161
std::size_t TreeNode::GetChildNodeCount ()
165
162
{
166
- return m_aTreeNodes .size ();
163
+ return mTreeNodes .size ();
167
164
}
168
165
169
166
TreeNode* TreeNode::GetChildNode (std::size_t iIndex)
170
167
{
171
- if ( iIndex < 0 || iIndex >= m_aTreeNodes .size () ) return NULL ;
172
- return static_cast <TreeNode*>(m_aTreeNodes [iIndex]);
168
+ if ( iIndex < 0 || iIndex >= mTreeNodes .size () ) return NULL ;
169
+ return static_cast <TreeNode*>(mTreeNodes [iIndex]);
173
170
}
174
171
175
172
int TreeNode::GetChildNodeIndex (TreeNode* pTreeNode)
176
173
{
177
- auto it = std::find (m_aTreeNodes .begin (), m_aTreeNodes .end (), pTreeNode);
178
- if (it == m_aTreeNodes .end ()) {
174
+ auto it = std::find (mTreeNodes .begin (), mTreeNodes .end (), pTreeNode);
175
+ if (it == mTreeNodes .end ()) {
179
176
return -1 ;
180
177
}
181
- return it - m_aTreeNodes .begin ();
178
+ return it - mTreeNodes .begin ();
182
179
}
183
180
184
181
bool TreeNode::IsExpand () const
0 commit comments