Varying update notifications

This commit is contained in:
Simon Robertshaw 2012-07-17 16:57:12 +01:00
parent 52c9a9052a
commit 2329f98f0a
2 changed files with 18 additions and 5 deletions

View File

@ -681,7 +681,18 @@ void GameController::NotifyUpdateAvailable(Client * sender)
}
};
gameModel->AddNotification(new UpdateNotification(this, "A new version is available - click here to download"));
switch(sender->GetUpdateInfo().Type)
{
case UpdateInfo::Snapshot:
gameModel->AddNotification(new UpdateNotification(this, std::string("A new snapshot is available - click here to update")));
break;
case UpdateInfo::Stable:
gameModel->AddNotification(new UpdateNotification(this, std::string("A new version is available - click here to update")));
break;
case UpdateInfo::Beta:
gameModel->AddNotification(new UpdateNotification(this, std::string("A new beta is available - click here to update")));
break;
}
}
void GameController::RemoveNotification(Notification * notification)

View File

@ -975,16 +975,18 @@ void GameView::NotifyNotificationsChanged(GameModel * sender)
}
};
for(std::vector<ui::Component*>::iterator iter = notificationComponents.begin(); iter != notificationComponents.end(); ++iter) {
RemoveComponent(*iter);
delete *iter;
for(std::vector<ui::Component*>::const_iterator iter = notificationComponents.begin(), end = notificationComponents.end(); iter != end; ++iter) {
ui::Component * cNotification = *iter;
RemoveComponent(cNotification);
delete cNotification;
}
notificationComponents.clear();
std::vector<Notification*> notifications = sender->GetNotifications();
int currentY = YRES-17;
for(std::vector<Notification*>::iterator iter = notifications.begin(); iter != notifications.end(); ++iter)
for(std::vector<Notification*>::iterator iter = notifications.begin(), end = notifications.end(); iter != end; ++iter)
{
int width = (Graphics::textwidth((*iter)->Message.c_str()))+8;
ui::Button * tempButton = new ui::Button(ui::Point(XRES-width-22, currentY), ui::Point(width, 15), (*iter)->Message);