Ajoute la sélection du mode zoom au menu.

This commit is contained in:
Yann Caumartin 2017-01-26 22:31:22 +01:00
parent 7ae6b49048
commit 389da5403c
4 changed files with 10 additions and 7 deletions

@ -39,6 +39,7 @@ ErrEnum controlePoints(sfRenderWindow *window, const char *cheminFichier, Mode m
sfEvent event;
Rectangle carre;
Action action = NO_ACTION;
Tool currentTool = NO_TOOL;
bool centerCursor = false;
// Un pointeur sur une carte qui stockera successivement les vues.
@ -167,7 +168,7 @@ ErrEnum controlePoints(sfRenderWindow *window, const char *cheminFichier, Mode m
afficherMenu(renderTexture, &menu);
carre = waitingOnMapEvent(window, &event, renderTexture, renderSprite, carte, nbPointsAffiches, ptsAffiches, tabPointeursCercles, &nbPointSuppr, pointsSuppr, nbAgglos, tabPointeursCerclesAgglos, agglos, agglosSuppr, &nbAgglosSuppr, nbElements, tabPoints, tabDatesConverties, font, &action, &menu);
carre = waitingOnMapEvent(window, &event, renderTexture, renderSprite, carte, nbPointsAffiches, ptsAffiches, tabPointeursCercles, &nbPointSuppr, pointsSuppr, nbAgglos, tabPointeursCerclesAgglos, agglos, agglosSuppr, &nbAgglosSuppr, nbElements, tabPoints, tabDatesConverties, font, &action, &menu, &currentTool);
free(ptsAffiches);
ptsAffiches = NULL;

@ -104,7 +104,7 @@ Rectangle waitingOnMap(sfRenderWindow *const window, sfEvent *const event, sfRen
}
Rectangle waitingOnMapEvent(sfRenderWindow *const window, sfEvent *const event, sfRenderTexture *renderTexture, sfSprite *renderSprite, const Carte *const carte, const uint32_t nbPointsAffiches, Point ** ptsAffiches, sfCircleShape *tabPointeursCercles[nbPointsAffiches], uint32_t *const nbPointSuppr, uint32_t pointsSuppr[*nbPointSuppr], const uint32_t nbAgglos, sfCircleShape *tabPointeursCerclesAgglos[nbAgglos], Agglomerat *agglos, uint32_t agglosSuppr[nbAgglos], uint32_t *nbAgglosSuppr, uint32_t nbPoints, Point *tabPoint, char **tabDatesConverties, const sfFont *const font, Action *const action, const Menu *const menu)
Rectangle waitingOnMapEvent(sfRenderWindow *const window, sfEvent *const event, sfRenderTexture *renderTexture, sfSprite *renderSprite, const Carte *const carte, const uint32_t nbPointsAffiches, Point ** ptsAffiches, sfCircleShape *tabPointeursCercles[nbPointsAffiches], uint32_t *const nbPointSuppr, uint32_t pointsSuppr[*nbPointSuppr], const uint32_t nbAgglos, sfCircleShape *tabPointeursCerclesAgglos[nbAgglos], Agglomerat *agglos, uint32_t agglosSuppr[nbAgglos], uint32_t *nbAgglosSuppr, uint32_t nbPoints, Point *tabPoint, char **tabDatesConverties, const sfFont *const font, Action *const action, const Menu *const menu, Tool * currentTool)
{
sfTexture *originalTexture = sfTexture_copy(sfRenderTexture_getTexture(renderTexture));
@ -195,7 +195,7 @@ Rectangle waitingOnMapEvent(sfRenderWindow *const window, sfEvent *const event,
break;
}
else if(event->type == sfEvtMouseButtonPressed)
else if(event->type == sfEvtMouseButtonPressed && event->mouseButton.x > MAPSIZE)
{
// Dans quasiment tous les cas, il faudra sortir de la boucle englobante...
bool needToBreakTheWhile = true;
@ -218,7 +218,8 @@ Rectangle waitingOnMapEvent(sfRenderWindow *const window, sfEvent *const event,
break;
case TOOL_ZOOMZONE:
// TO DO !
needToBreakTheWhile = false;
*currentTool = *currentTool == TOOL_ZOOMZONE?NO_TOOL:TOOL_ZOOMZONE;
break;
case TOOL_ZOOMPREV:
@ -253,7 +254,7 @@ Rectangle waitingOnMapEvent(sfRenderWindow *const window, sfEvent *const event,
}
}
else if(sfMouse_isButtonPressed(sfMouseLeft) && *action == ACTION_ZOOMABLE && inWindow)
else if(sfMouse_isButtonPressed(sfMouseLeft) && *action == ACTION_ZOOMABLE && inWindow && *currentTool == TOOL_ZOOMZONE)
{
Rectangle carre = selectionRectangle(window, event, renderSprite, true);

@ -57,6 +57,7 @@ Rectangle waitingOnMap(sfRenderWindow *const window, sfEvent *const event, sfRen
* @param font Pointeur sur la fonte à utiliser pour les dates à afficher.
* @param action Variable de type particulier qui indique l'action effectuée par l'utilisateur.
* @param menu Notre menu chéri !
* @param currentTool L'outil actuellement sélectionné par l'utilisateur.
* @return Le carré saisi par l'utilisateur.
*/
Rectangle waitingOnMapEvent(sfRenderWindow *const window, sfEvent *const event, sfRenderTexture *renderTexture, sfSprite *renderSprite, const Carte *const carte, const uint32_t nbPointsAffiches, Point ** ptsAffiches, sfCircleShape *tabPointeursCercles[nbPointsAffiches], uint32_t *const nbPointSuppr, uint32_t pointsSuppr[*nbPointSuppr], const uint32_t nbAgglos, sfCircleShape *tabPointeursCerclesAgglos[nbAgglos], Agglomerat *agglos, uint32_t agglosSuppr[nbAgglos], uint32_t * nbAgglosSuppr,uint32_t nbPoints ,Point * tabPoint, char **tabDatesConverties, const sfFont *const font, Action *const action, const Menu *const menu);
Rectangle waitingOnMapEvent(sfRenderWindow *const window, sfEvent *const event, sfRenderTexture *renderTexture, sfSprite *renderSprite, const Carte *const carte, const uint32_t nbPointsAffiches, Point ** ptsAffiches, sfCircleShape *tabPointeursCercles[nbPointsAffiches], uint32_t *const nbPointSuppr, uint32_t pointsSuppr[*nbPointSuppr], const uint32_t nbAgglos, sfCircleShape *tabPointeursCerclesAgglos[nbAgglos], Agglomerat *agglos, uint32_t agglosSuppr[nbAgglos], uint32_t * nbAgglosSuppr,uint32_t nbPoints ,Point * tabPoint, char **tabDatesConverties, const sfFont *const font, Action *const action, const Menu *const menu, Tool * const currentTool);

@ -16,7 +16,7 @@ Rectangle selectionRectangle(sfRenderWindow *const window, sfEvent *event, const
{
sfRenderWindow_clear(window, sfWhite);
positionCurseur.x = event->mouseMove.x;
positionCurseur.x = event->mouseMove.x < MAPSIZE ?event->mouseMove.x:MAPSIZE;
positionCurseur.y = event->mouseMove.y;
shape = creerRectangle(positionInitiale, positionCurseur, (sfColor){0, 0, 255, 32});