MCPcopy Create free account
hub / github.com/OpenApoc/OpenApoc / replaceItem

Method replaceItem

forms/listbox.cpp:287–317  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

285}
286
287void ListBox::replaceItem(sp<Control> Item)
288{
289 auto newData = Item->getData<void>();
290 this->setDirty();
291 bool found = false;
292 for (size_t i = 0; i < Controls.size(); i++)
293 {
294 auto oldItem = Controls[i];
295 if (oldItem->getData<void>() == newData)
296 {
297 Controls.erase(Controls.begin() + i);
298 Item->setParent(shared_from_this(), i);
299 Item->ToolTipFont = this->ToolTipFont;
300 resolveLocation();
301 if (oldItem == this->selected)
302 {
303 this->selected = Item;
304 }
305 if (oldItem == this->hovered)
306 {
307 this->hovered = Item;
308 }
309 found = true;
310 break;
311 }
312 }
313 if (!found)
314 {
315 addItem(Item);
316 }
317}
318
319sp<Control> ListBox::removeItem(sp<Control> Item)
320{

Callers 2

updateAgentControlMethod · 0.45
updateMethod · 0.45

Calls 4

setDirtyMethod · 0.80
setParentMethod · 0.80
sizeMethod · 0.45
beginMethod · 0.45

Tested by

no test coverage detected