Sortir d'un while qui n'est pas dans la fonction
Bonjour, supposons un GUI avec une classe Menu.
Cette classe Menu serais comme ci-dessous :
Code:
1 2 3 4 5 6 7 8 9 10 11
| class Menu
{
private :
std::vector<Objet*> sous_objets;
std::vector<Evenement> evenements;
//Ceci est un exemple simplifier et donc on ne marquera pas tout.
public :
void GUI_Main();
void exit_Menu();
//Ceci est un exemple simplifier et donc on ne marquera pas tout.
}; |
Code:
1 2 3 4 5 6 7 8 9 10
| void Menu::GUI_Main()//équivalent de GTK_main() par exemple
{
unsigned int i;
while(1)
{
SDL_Delay(10);
for(i=0;i<evenements.size();i++)
evenements[i](this);
}
} |
Supposons, que l'on souhaite faire la fonction exit_Menu qui serait appelée depuis un des foncteurs Evenement.
Comment la programmer ?
L'objectif serait de faire l'équivalent de :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
void Menu::GUI_Main()
{
unsigned int i;
while(1)
{
SDL_Delay(10);
for(i=0;i<evenements.size();i++)
evenements[i](this);
}
end;
}
void Menu::exit_Menu()
{
goto end;
} |
Quelqu'un a t-il une solution ? (Autre chose que se débrouiller pour tester la valeur de retour de evenement (qui renverait un bool))
Ce code n'ayant pas été compilé, il se peut qu'il y ai des erreurs qui ne nous interessent pas : l'important étant la conception.