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

Method refreshBaseView

game/ui/tileview/cityview.cpp:1655–1709  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1653}
1654
1655void CityView::refreshBaseView()
1656{
1657 if (miniViews.size() != state->player_bases.size())
1658 {
1659 this->uiTabs[0]
1660 ->findControlTyped<Label>("TEXT_BASE_NAME")
1661 ->setText(state->current_base->name);
1662 for (auto view : miniViews)
1663 {
1664 view->setData(nullptr);
1665 view->setImage(nullptr);
1666 view->setDepressedImage(nullptr);
1667 view->ToolTipText = "";
1668 view->setVisible(false);
1669 }
1670
1671 miniViews.clear();
1672 }
1673
1674 int b = 0;
1675 for (auto &pair : state->player_bases)
1676 {
1677 auto &viewBase = pair.second;
1678 auto viewName = format("BUTTON_BASE_%d", ++b);
1679 auto view = this->uiTabs[0]->findControlTyped<GraphicButton>(viewName);
1680 if (!view)
1681 {
1682 LogError("Failed to find UI control matching \"%s\"", viewName);
1683 }
1684 view->setVisible(true);
1685 view->setData(viewBase);
1686 auto viewImage = BaseGraphics::drawMiniBase(*viewBase);
1687 view->setImage(viewImage);
1688 view->setDepressedImage(viewImage);
1689 view->ToolTipText = viewBase->name;
1690 view->addCallback(FormEventType::ButtonClick,
1691 [this](FormsEvent *e)
1692 {
1693 auto clickedBase = StateRef<Base>(
1694 this->state.get(), e->forms().RaisedBy->getData<Base>());
1695 if (clickedBase == this->state->current_base)
1696 {
1697 this->setScreenCenterTile(clickedBase->building->crewQuarters);
1698 }
1699 else
1700 {
1701 this->state->current_base = clickedBase;
1702 this->uiTabs[0]
1703 ->findControlTyped<Label>("TEXT_BASE_NAME")
1704 ->setText(this->state->current_base->name);
1705 }
1706 });
1707 miniViews.push_back(view);
1708 }
1709}
1710
1711void CityView::render()
1712{

Callers

nothing calls this directly

Calls 11

formatFunction · 0.85
setDataMethod · 0.80
setDepressedImageMethod · 0.80
addCallbackMethod · 0.80
sizeMethod · 0.45
setTextMethod · 0.45
setImageMethod · 0.45
setVisibleMethod · 0.45
clearMethod · 0.45
getMethod · 0.45
setScreenCenterTileMethod · 0.45

Tested by

no test coverage detected