Пример #1
0
void MenuInterface::insererBlanc() {
    assert(this->valeurIndeterminee());
    _elements.insert(_elements.begin(), sous_menu(" "));
    _elements.front()._texte.definir(POLICE_NORMALE, 14);
    _elements.front()._texte.definir(Couleur::noir);

}
Пример #2
0
int main_menu(keystate *k)
{
	int continuer = 1;
	int choix = 1;
	int mx = 0, my = 0;
	menu *m;
	FILE *flux_menu = NULL;
	FSOUND_STREAM *zik;

	/* On cache le curseur, ni vu ni connu j'tembrouille */
	SDL_ShowCursor(0);

	k->precedent[ECHAP] = 1;
	k->precedent[QUITTER] = 1;

	flux_menu = fopen("main.menu", "r");
	m = charger_menu(flux_menu);
	fclose(flux_menu);

	zik = charger_musique("musics/space_mario.wav", 100, -1);
	//FSOUND_Stream_Play(FSOUND_FREE, zik);
	while(continuer)
	{
		glClear(GL_COLOR_BUFFER_BIT);
		/* Dessin du fond, du menu et recuperation de la position du pointeur souris
		et de l'etat des touches */
		//draw_sprite(0, 0, LARGEUR_FENETRE, HAUTEUR_FENETRE, 3, 0, 1, 0, 1);
		SDL_GetMouseState(&mx, &my);
		my = HAUTEUR_FENETRE - my;
		maj_keystate(k, &continuer);
		afficher_menu(m, choix);

		/* L'utilisateur clique sur la croix ou presse echap */
		if(continuer == 0)
		{
			//FSOUND_Stream_Stop(zik);
			//FSOUND_Stream_Close(zik);
			return QUITTER;
		}

		/* Feuille de l'arbre */
		else if(m->nb_choix == 0)
		{
			//FSOUND_Stream_Stop(zik);
			//FSOUND_Stream_Close(zik);
			return m->valeur;
		}

		else
		{
			if((k->actuel[ENTRER] && k->precedent[ENTRER] == 0) || 
				(k->actuel[DROITE] && k->precedent[DROITE] == 0))
			{
				m = sous_menu(m, choix);
				choix = 1;
			}

			else if(k->actuel[GAUCHE] && k->precedent[GAUCHE] == 0)
			{
				m = menu_parent(m);
				choix = 1;
			}

			else if(k->actuel[BAS] && k->precedent[BAS] == 0)
				choix++;

			else if(k->actuel[HAUT] && k->precedent[HAUT] == 0)
				choix--;

			else if(k->actuel[CLIC_G] && k->precedent[CLIC_G] == 0)
			{
				/*************** si la souris est dessu ******************/
				m = sous_menu(m, choix);
				choix = 1;
			}

			if(choix < 1)
				choix = m->nb_choix;
			else if(choix > m->nb_choix)
				choix = 1;
		}

		my_sleep(1);
		SDL_GL_SwapBuffers();
	}

	//FSOUND_Stream_Stop(zik);
	//FSOUND_Stream_Close(zik);

	return m->valeur;
}