| 585 | } |
| 586 | |
| 587 | void AgentAssignment::addBuildingToRightList(sp<Building> building, sp<MultilistBox> list, |
| 588 | const int listOffset) |
| 589 | { |
| 590 | const int offset = 20; |
| 591 | |
| 592 | auto buildingControl = ControlGenerator::createBuildingAssignmentControl(*state, building); |
| 593 | buildingControl->Size.x -= listOffset; |
| 594 | buildingControl->SelectionSize.x -= listOffset; |
| 595 | list->addItem(buildingControl); |
| 596 | |
| 597 | auto vehicleRightList = buildingControl->createChild<MultilistBox>(); |
| 598 | vehicleRightList->Name = VEHICLE_LIST_NAME; |
| 599 | vehicleRightList->Location.x = offset; |
| 600 | vehicleRightList->Location.y = buildingControl->SelectionSize.y + list->ItemSpacing; |
| 601 | vehicleRightList->ItemSpacing = list->ItemSpacing; |
| 602 | // set visibility filter |
| 603 | vehicleRightList->setFuncIsVisibleItem( |
| 604 | [](sp<Control> c) |
| 605 | { |
| 606 | auto vehicle = c->getData<Vehicle>(); |
| 607 | bool visible = |
| 608 | vehicle->currentBuilding == c->getParent()->getParent()->getData<Building>(); |
| 609 | c->setVisible(visible); |
| 610 | return visible; |
| 611 | }); |
| 612 | // set selection behaviour |
| 613 | vehicleRightList->setFuncHandleSelection(funcHandleVehicleSelection); |
| 614 | // set selection render |
| 615 | vehicleRightList->setFuncSelectionItemRender(funcSelectionItemRender); |
| 616 | // set hover render |
| 617 | vehicleRightList->setFuncHoverItemRender(funcHoverItemRender); |
| 618 | |
| 619 | addVehiclesToList(vehicleRightList, offset + listOffset); |
| 620 | } |
| 621 | |
| 622 | /** |
| 623 | * Get selected agents with preservation of order. |
nothing calls this directly
no test coverage detected