MCPcopy Create free account
hub / github.com/DescentDevelopers/Descent3 / RemoveGadget

Method RemoveGadget

ui/UIWindow.cpp:247–283  ·  view source on GitHub ↗

removes a UIObject from the draw list.

Source from the content-addressed store, hash-verified

245
246// removes a UIObject from the draw list.
247void UIWindow::RemoveGadget(UIGadget *gadget) {
248 if (!gadget)
249 return;
250
251 ASSERT(IsCreated());
252 ASSERT(gadget->IsCreated());
253 ASSERT(gadget->m_Wnd == this);
254
255 gadget->OnDetachFromWindow();
256
257 // remove object from list.
258 if (gadget->m_Prev)
259 gadget->m_Prev->m_Next = gadget->m_Next;
260 if (gadget->m_Next)
261 gadget->m_Next->m_Prev = gadget->m_Prev;
262
263 if (gadget == m_GadgetTail)
264 m_GadgetTail = gadget->m_Prev;
265
266 if (gadget == m_GadgetHead)
267 m_GadgetHead = gadget->m_Next;
268
269 if (gadget == m_GadgetCur) {
270 m_GadgetCur->LostFocus();
271 m_GadgetCur = NULL;
272 m_ResetCurGadget = true;
273 m_CurGadgetInGroup = false;
274 }
275
276 if (gadget == m_LockedGadget)
277 m_LockedGadget = NULL;
278
279 // break link.
280 gadget->m_Prev = NULL;
281 gadget->m_Next = NULL;
282 gadget->m_Wnd = NULL;
283}
284
285// forces a particular gadget into focus, always until unlocked.
286void UIWindow::LockFocusOnGadget(UIGadget *gadget) { m_LockedGadget = gadget; }

Callers 4

DestroyMethod · 0.80
UnrealizeMethod · 0.80
AddListBoxMethod · 0.80
AddComboBoxMethod · 0.80

Calls 3

IsCreatedMethod · 0.80
OnDetachFromWindowMethod · 0.80
LostFocusMethod · 0.80

Tested by

no test coverage detected