#define HAUTEUR_MENU 16 #define LARGEUR_MENU 240 #define MAX_OBJETS 10 void Clic(int leMenu, int no_objet); void LitTexte(char *fichier); int menuDoitResterOuvert, clic_gauche; ECRAN ecrCour; class CMenu { private: ECRAN *Ecran; OBJET *objEcran; char *Chaines[MAX_OBJETS]; int positions[MAX_OBJETS], tailles[MAX_OBJETS], lumiere[MAX_OBJETS], *sousMenus[MAX_OBJETS], transCadre[MAX_OBJETS]; int nObj, pos_base; int x_souris, y_souris, position_menu; public: CMenu() { Ecran=CreeEcran(LARGEUR_MENU,HAUTEUR_MENU); objEcran=EcranVersObjet(Ecran); nObj=0; pos_base=0; position_menu=HAUTEUR_MENU; x_souris=0xffffffff, y_souris=0xffffffff; } ~CMenu() { DetruitEcran(Ecran); } void Init() { nObj=0; pos_base=0; } void DessObjet(int no_objet) { //Objet pointé -> surbrillance if (*sousMenus[no_objet] || (x_souris>=positions[no_objet] && x_souris0) lumiere[no_objet]-=8; //Objet sélectionné -> cadre transparent au-dessus de lui if (*sousMenus[no_objet]) { if (transCadre[no_objet]<128) transCadre[no_objet]+=8; } else if (transCadre[no_objet]>0) transCadre[no_objet]-=8; if (!skip) { //Le cadre FxRect(positions[no_objet],2,tailles[no_objet],12,BLANC,FX_TRANS,transCadre[no_objet]); FxCadre(positions[no_objet]+1,3,tailles[no_objet]-2,10,RGB(0,255,0),FX_TRANS,transCadre[no_objet]); //Le texte CouleurTexte(RGB(255,128+lumiere[no_objet],128+lumiere[no_objet])); DessTexte(positions[no_objet],1,Chaines[no_objet]); } } void Gere() { int i,j; PositionSouris(&x_souris,&y_souris); if (menuDoitResterOuvert || (y_souris>=0 && y_souris0) position_menu--; } else { if (position_menu=HAUTEUR_MENU) { // Sleep(50); // ReinitTimer(); return; } if (!skip) { ChoisitEcran(Ecran); for (i=0;i=0 && x_souris=positions[no_objet]-1 && y_souris0) lumiere[no_objet]-=8; if (!skip) { if (Actif[no_objet]) FxCadre(1,positions[no_objet]+1,LARG_SOUSMENU-2,12,JAUNE,FX_TRANS,lumiere[no_objet]); // CouleurTexte(RGB(128+lumiere[no_objet],255,128+lumiere[no_objet])); if (Actif[no_objet]) CouleurTexte(BLANC); else CouleurTexte(RGB(128,128,128)); DessTexte(4,positions[no_objet],Chaines[no_objet]); } } void Gere() { int i,j; if (!actif) { if (transparence>0) transparence-=16; else { return; } } else { if (transparence<256) transparence+=16; } PositionSouris(&x_souris,&y_souris); x_souris-=offset_x, y_souris-=offset_y+2; if (!(x_souris>=0 && x_souris=0 && y_souris