Gère les warnings de pile pleine et vide la pile de vues suivantes
à chaque nouveaux zooms de zone
This commit is contained in:
parent
e18d5a157c
commit
501603261e
Controleur
@ -153,3 +153,9 @@ Carte* depilerPilesCartes(PileCartes *const pileCartes)
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
inline void afficherWarningPile(sfRenderWindow *const window, const sfSprite *const renderSprite)
|
||||
{
|
||||
warningBox(window, renderSprite, "La carte précédente ne sera pas sauvegardée car la pile est pleine.");
|
||||
}
|
||||
|
@ -73,3 +73,12 @@ bool empilerPileCartes(PileCartes *const pileCartes, Carte *const carte);
|
||||
* @return Procédure.
|
||||
*/
|
||||
Carte* depilerPilesCartes(PileCartes *const pileCartes);
|
||||
|
||||
/**
|
||||
* @brief Afficher un simple warning de pile pleine...
|
||||
*
|
||||
* @param window Paramètre obligatoire pour l'affichage...
|
||||
* @param renderSprite Paramètre obligatoire pour l'affichage...
|
||||
* @return Procédure.
|
||||
*/
|
||||
void afficherWarningPile(sfRenderWindow *const window, const sfSprite *const renderSprite);
|
||||
|
@ -186,7 +186,7 @@ ErrEnum controlePoints(sfRenderWindow *window, const char *cheminFichier, Mode m
|
||||
// On empile cette carte dans la pile des cartes précédentes
|
||||
if(!empilerPileCartes(&previous, carte))
|
||||
{
|
||||
/* AFFICHER UN MESSAGE CAR IMPOSSIBLE DE ZOOMER ??? */
|
||||
afficherWarningPile(window, renderSprite);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -198,11 +198,15 @@ ErrEnum controlePoints(sfRenderWindow *window, const char *cheminFichier, Mode m
|
||||
// On convertit les pixels retournés en coordonnées géographiques...
|
||||
conversionRec(&carre, &carte->pointHautGauche, &carte->pointBasDroite, &carte->pointCentral, carte->echelle);
|
||||
|
||||
// On calcule le zoom et l'échelles adaptés à la nouvelle zone
|
||||
// On calcule le zoom et l'échelle adaptés à la nouvelle zone
|
||||
getZoomEchelle(carte);
|
||||
|
||||
// ainsi qu'un nouveau point central !
|
||||
calculPointCentral(carte);
|
||||
|
||||
// Si c'est un zoom sur une nouvelle zone, on vide la pile des zooms suivants
|
||||
detruirePileCartes(&next);
|
||||
initialiserPileCartes(&next);
|
||||
}
|
||||
|
||||
else
|
||||
@ -234,7 +238,7 @@ ErrEnum controlePoints(sfRenderWindow *window, const char *cheminFichier, Mode m
|
||||
// L'utilisateur a demandé d'afficher la vue précédente / suivante. Donc on commence par empiler la vue actuelle dans la pile des suivantes / précédentes.
|
||||
if(!empilerPileCartes((action == ACTION_ZOOM_NEXT ? &previous : &next), carte))
|
||||
{
|
||||
/* AFFICHER UN MESSAGE CAR IMPOSSIBLE DE ZOOMER ??? */
|
||||
afficherWarningPile(window, renderSprite);
|
||||
break;
|
||||
}
|
||||
|
||||
@ -286,6 +290,7 @@ ErrEnum controlePoints(sfRenderWindow *window, const char *cheminFichier, Mode m
|
||||
|
||||
if(!empilerPileCartes(&previous, carte))
|
||||
{
|
||||
afficherWarningPile(window, renderSprite);
|
||||
break;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user