void MainWindow::SetBottomWidget(Widget *_widget) { if (bottom_widget == nullptr && _widget == nullptr) return; if (map == nullptr) { /* this doesn't work without a map */ delete _widget; return; } KillBottomWidget(); bottom_widget = _widget; const PixelRect main_rect = GetMainRect(); const PixelRect bottom_rect = GetBottomWidgetRect(main_rect, bottom_widget); if (bottom_widget != nullptr) { bottom_widget->Initialise(*this, bottom_rect); bottom_widget->Prepare(*this, bottom_rect); if (widget == nullptr) bottom_widget->Show(bottom_rect); } map->Move(GetMapRectAbove(main_rect, bottom_rect)); map->FullRedraw(); }
void MainWindow::BeginShutdown() { timer.Cancel(); KillBottomWidget(); }
void MainWindow::SetBottomWidget(Widget *_widget) { if (bottom_widget == nullptr && _widget == nullptr) return; if (map == nullptr) { /* this doesn't work without a map */ delete _widget; return; } KillBottomWidget(); bottom_widget = _widget; const PixelRect main_rect = GetMainRect(); const PixelRect bottom_rect = GetBottomWidgetRect(main_rect, bottom_widget); if (bottom_widget != nullptr) { bottom_widget->Initialise(*this, bottom_rect); bottom_widget->Prepare(*this, bottom_rect); if (widget == nullptr) /* the bottom widget is only visible below the map, but not below a custom main widget; see HaveBottomWidget() */ bottom_widget->Show(bottom_rect); } map->Move(GetMapRectAbove(main_rect, bottom_rect)); map->FullRedraw(); }
void MainWindow::OnDestroy() { timer.Cancel(); KillWidget(); KillBottomWidget(); SingleWindow::OnDestroy(); }