MCPcopy Create free account
hub / github.com/cinience/RedisStudio / Invalidate

Method Invalidate

DuiLib/Control/UITreeView.cpp:150–193  ·  view source on GitHub ↗

��������: Invalidate ��������: void ����˵��:

Source from the content-addressed store, hash-verified

148 // ����˵��:
149 //************************************
150 void CTreeNodeUI::Invalidate()
151 {
152 if( !IsVisible() )
153 return;
154
155 if( GetParent() ) {
156 CContainerUI* pParentContainer = static_cast<CContainerUI*>(GetParent()->GetInterface(_T("Container")));
157 if( pParentContainer ) {
158 RECT rc = pParentContainer->GetPos();
159 RECT rcInset = pParentContainer->GetInset();
160 rc.left += rcInset.left;
161 rc.top += rcInset.top;
162 rc.right -= rcInset.right;
163 rc.bottom -= rcInset.bottom;
164 CScrollBarUI* pVerticalScrollBar = pParentContainer->GetVerticalScrollBar();
165 if( pVerticalScrollBar && pVerticalScrollBar->IsVisible() ) rc.right -= pVerticalScrollBar->GetFixedWidth();
166 CScrollBarUI* pHorizontalScrollBar = pParentContainer->GetHorizontalScrollBar();
167 if( pHorizontalScrollBar && pHorizontalScrollBar->IsVisible() ) rc.bottom -= pHorizontalScrollBar->GetFixedHeight();
168
169 RECT invalidateRc = m_rcItem;
170 if( !::IntersectRect(&invalidateRc, &m_rcItem, &rc) )
171 return;
172
173 CControlUI* pParent = GetParent();
174 RECT rcTemp;
175 RECT rcParent;
176 while( pParent = pParent->GetParent() )
177 {
178 rcTemp = invalidateRc;
179 rcParent = pParent->GetPos();
180 if( !::IntersectRect(&invalidateRc, &rcTemp, &rcParent) )
181 return;
182 }
183
184 if( m_pManager != NULL ) m_pManager->Invalidate(invalidateRc);
185 }
186 else {
187 CContainerUI::Invalidate();
188 }
189 }
190 else {
191 CContainerUI::Invalidate();
192 }
193 }
194
195 //************************************
196 // ��������: Select

Callers

nothing calls this directly

Calls 8

GetInsetMethod · 0.80
IsVisibleMethod · 0.80
GetFixedWidthMethod · 0.80
GetFixedHeightMethod · 0.80
GetInterfaceMethod · 0.45
GetVerticalScrollBarMethod · 0.45
GetParentMethod · 0.45

Tested by

no test coverage detected