Keyboard: Converted hardware scancodes to SDL keysyms.
Version becomes 97.0%, Charger_CFG() auto-converts 96.5% format as needed. git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@169 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
		
							parent
							
								
									a7202fa2f6
								
							
						
					
					
						commit
						73ca66c084
					
				
							
								
								
									
										2
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								Makefile
									
									
									
									
									
								
							@ -15,7 +15,7 @@ endif
 | 
				
			|||||||
.PHONY : all debug release clean depend zip
 | 
					.PHONY : all debug release clean depend zip
 | 
				
			||||||
 | 
					
 | 
				
			||||||
CC = gcc
 | 
					CC = gcc
 | 
				
			||||||
OBJ = main.o init.o graph.o sdlscreen.o divers.o special.o boutons.o palette.o aide.o operatio.o pages.o loadsave.o readline.o moteur.o files.o op_c.o linux.o op_asm.o readini.o saveini.o shade.o
 | 
					OBJ = main.o init.o graph.o sdlscreen.o divers.o special.o boutons.o palette.o aide.o operatio.o pages.o loadsave.o readline.o moteur.o files.o op_c.o linux.o op_asm.o readini.o saveini.o shade.o clavier.o
 | 
				
			||||||
 | 
					
 | 
				
			||||||
SCREEN = -D WINDOWED
 | 
					SCREEN = -D WINDOWED
 | 
				
			||||||
OBJDIR = obj/
 | 
					OBJDIR = obj/
 | 
				
			||||||
 | 
				
			|||||||
@ -2,7 +2,7 @@ main.o: main.c const.h struct.h global.h loadsave.h graph.h divers.h \
 | 
				
			|||||||
  init.h boutons.h moteur.h pages.h files.h sdlscreen.h erreurs.h \
 | 
					  init.h boutons.h moteur.h pages.h files.h sdlscreen.h erreurs.h \
 | 
				
			||||||
  readini.h saveini.h linux.h
 | 
					  readini.h saveini.h linux.h
 | 
				
			||||||
init.o: init.c const.h struct.h global.h loadsave.h modesvdo.h graph.h \
 | 
					init.o: init.c const.h struct.h global.h loadsave.h modesvdo.h graph.h \
 | 
				
			||||||
  boutons.h palette.h aide.h operatio.h divers.h erreurs.h
 | 
					  boutons.h palette.h aide.h operatio.h divers.h erreurs.h clavier.h
 | 
				
			||||||
graph.o: graph.c sdlscreen.h struct.h const.h graph.h divers.h moteur.h \
 | 
					graph.o: graph.c sdlscreen.h struct.h const.h graph.h divers.h moteur.h \
 | 
				
			||||||
  boutons.h pages.h global.h loadsave.h erreurs.h
 | 
					  boutons.h pages.h global.h loadsave.h erreurs.h
 | 
				
			||||||
sdlscreen.o: sdlscreen.c global.h struct.h const.h loadsave.h sdlscreen.h \
 | 
					sdlscreen.o: sdlscreen.c global.h struct.h const.h loadsave.h sdlscreen.h \
 | 
				
			||||||
@ -26,8 +26,8 @@ loadsave.o: loadsave.c const.h struct.h global.h loadsave.h graph.h \
 | 
				
			|||||||
  divers.h pages.h op_c.h boutons.h erreurs.h linux.h
 | 
					  divers.h pages.h op_c.h boutons.h erreurs.h linux.h
 | 
				
			||||||
readline.o: readline.c const.h struct.h global.h loadsave.h graph.h \
 | 
					readline.o: readline.c const.h struct.h global.h loadsave.h graph.h \
 | 
				
			||||||
  divers.h erreurs.h linux.h
 | 
					  divers.h erreurs.h linux.h
 | 
				
			||||||
moteur.o: moteur.c boutons.h operatio.h shade.h erreurs.h const.h \
 | 
					moteur.o: moteur.c const.h struct.h global.h loadsave.h graph.h divers.h \
 | 
				
			||||||
  struct.h global.h loadsave.h graph.h divers.h special.h linux.h
 | 
					  special.h boutons.h operatio.h shade.h erreurs.h linux.h
 | 
				
			||||||
files.o: files.c const.h struct.h global.h loadsave.h graph.h divers.h \
 | 
					files.o: files.c const.h struct.h global.h loadsave.h graph.h divers.h \
 | 
				
			||||||
  erreurs.h linux.h
 | 
					  erreurs.h linux.h
 | 
				
			||||||
op_c.o: op_c.c op_c.h struct.h const.h op_asm.h erreurs.h
 | 
					op_c.o: op_c.c op_c.h struct.h const.h op_asm.h erreurs.h
 | 
				
			||||||
@ -37,3 +37,4 @@ readini.o: readini.c const.h global.h struct.h loadsave.h
 | 
				
			|||||||
saveini.o: saveini.c const.h global.h struct.h loadsave.h readini.h
 | 
					saveini.o: saveini.c const.h global.h struct.h loadsave.h readini.h
 | 
				
			||||||
shade.o: shade.c global.h struct.h const.h loadsave.h graph.h moteur.h \
 | 
					shade.o: shade.c global.h struct.h const.h loadsave.h graph.h moteur.h \
 | 
				
			||||||
  divers.h readline.h
 | 
					  divers.h readline.h
 | 
				
			||||||
 | 
					clavier.o: clavier.c global.h struct.h const.h loadsave.h
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										26
									
								
								aide.c
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								aide.c
									
									
									
									
									
								
							@ -129,13 +129,13 @@ void Bouton_Aide(void)
 | 
				
			|||||||
        Fenetre_Pos_Y+(Menu_Facteur_Y*18),
 | 
					        Fenetre_Pos_Y+(Menu_Facteur_Y*18),
 | 
				
			||||||
        Menu_Facteur_X*272,Menu_Facteur_Y*130,CM_Noir);
 | 
					        Menu_Facteur_X*272,Menu_Facteur_Y*130,CM_Noir);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(266,153,35,14,"Exit",0,1,0x0001); // 1
 | 
					  Fenetre_Definir_bouton_normal(266,153,35,14,"Exit",0,1,SDLK_ESCAPE); // 1
 | 
				
			||||||
  Fenetre_Definir_bouton_scroller(290,18,130,Nb_lignes,
 | 
					  Fenetre_Definir_bouton_scroller(290,18,130,Nb_lignes,
 | 
				
			||||||
                                  16,Position_d_aide_en_cours);   // 2
 | 
					                                  16,Position_d_aide_en_cours);   // 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(  9,154, 59,14,"Credits"  ,1,1,0x002E); // 3
 | 
					  Fenetre_Definir_bouton_normal(  9,154, 59,14,"Credits"  ,1,1,SDLK_c); // 3
 | 
				
			||||||
  Fenetre_Definir_bouton_normal( 71,154, 75,14,"Register?",1,1,0x0013); // 4
 | 
					  Fenetre_Definir_bouton_normal( 71,154, 75,14,"Register?",1,1,SDLK_r); // 4
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(149,154, 75,14,"Greetings",1,1,0x0022); // 5
 | 
					  Fenetre_Definir_bouton_normal(149,154, 75,14,"Greetings",1,1,SDLK_g); // 5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Afficher_aide();
 | 
					  Afficher_aide();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -174,42 +174,42 @@ void Bouton_Aide(void)
 | 
				
			|||||||
    // Gestion des touches de déplacement dans la liste
 | 
					    // Gestion des touches de déplacement dans la liste
 | 
				
			||||||
    switch (Touche)
 | 
					    switch (Touche)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      case 0x0048 : // Haut
 | 
					      case SDLK_UP : // Haut
 | 
				
			||||||
        if (Position_d_aide_en_cours>0)
 | 
					        if (Position_d_aide_en_cours>0)
 | 
				
			||||||
          Position_d_aide_en_cours--;
 | 
					          Position_d_aide_en_cours--;
 | 
				
			||||||
        Scroller_aide();
 | 
					        Scroller_aide();
 | 
				
			||||||
        break;
 | 
					        break;
 | 
				
			||||||
      case 0x0050 : // Bas
 | 
					      case SDLK_DOWN : // Bas
 | 
				
			||||||
        if (Position_d_aide_en_cours<Nb_lignes-16)
 | 
					        if (Position_d_aide_en_cours<Nb_lignes-16)
 | 
				
			||||||
          Position_d_aide_en_cours++;
 | 
					          Position_d_aide_en_cours++;
 | 
				
			||||||
        Scroller_aide();
 | 
					        Scroller_aide();
 | 
				
			||||||
        break;
 | 
					        break;
 | 
				
			||||||
      case 0x0049 : // PageUp
 | 
					      case SDLK_PAGEUP : // PageUp
 | 
				
			||||||
        if (Position_d_aide_en_cours>15)
 | 
					        if (Position_d_aide_en_cours>15)
 | 
				
			||||||
          Position_d_aide_en_cours-=15;
 | 
					          Position_d_aide_en_cours-=15;
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
          Position_d_aide_en_cours=0;
 | 
					          Position_d_aide_en_cours=0;
 | 
				
			||||||
        Scroller_aide();
 | 
					        Scroller_aide();
 | 
				
			||||||
        break;
 | 
					        break;
 | 
				
			||||||
      case 0x0051 : // PageDown
 | 
					      case SDLK_PAGEDOWN : // PageDown
 | 
				
			||||||
        if (Position_d_aide_en_cours<Nb_lignes-31)
 | 
					        if (Position_d_aide_en_cours<Nb_lignes-31)
 | 
				
			||||||
          Position_d_aide_en_cours+=15;
 | 
					          Position_d_aide_en_cours+=15;
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
          Position_d_aide_en_cours=Nb_lignes-16;
 | 
					          Position_d_aide_en_cours=Nb_lignes-16;
 | 
				
			||||||
        Scroller_aide();
 | 
					        Scroller_aide();
 | 
				
			||||||
        break;
 | 
					        break;
 | 
				
			||||||
      case 0x0047 : // Home
 | 
					      case SDLK_HOME : // Home
 | 
				
			||||||
        Position_d_aide_en_cours=0;
 | 
					        Position_d_aide_en_cours=0;
 | 
				
			||||||
        Scroller_aide();
 | 
					        Scroller_aide();
 | 
				
			||||||
        break;
 | 
					        break;
 | 
				
			||||||
      case 0x004F : // End
 | 
					      case SDLK_END : // End
 | 
				
			||||||
        Position_d_aide_en_cours=Nb_lignes-16;
 | 
					        Position_d_aide_en_cours=Nb_lignes-16;
 | 
				
			||||||
        Scroller_aide();
 | 
					        Scroller_aide();
 | 
				
			||||||
        break;
 | 
					        break;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  while ((Bouton_clicke!=1) && (Touche!=0x001C));
 | 
					  while ((Bouton_clicke!=1) && (Touche!=SDLK_RETURN));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fermer_fenetre();
 | 
					  Fermer_fenetre();
 | 
				
			||||||
  Desenclencher_bouton(BOUTON_AIDE);
 | 
					  Desenclencher_bouton(BOUTON_AIDE);
 | 
				
			||||||
@ -243,7 +243,7 @@ void Bouton_Stats(void)
 | 
				
			|||||||
        Fenetre_Pos_Y+(Menu_Facteur_Y*18),
 | 
					        Fenetre_Pos_Y+(Menu_Facteur_Y*18),
 | 
				
			||||||
        Menu_Facteur_X*292,Menu_Facteur_Y*130,CM_Noir);
 | 
					        Menu_Facteur_X*292,Menu_Facteur_Y*130,CM_Noir);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(120,153,70,14,"OK",0,1,0x0001); // 1
 | 
					  Fenetre_Definir_bouton_normal(120,153,70,14,"OK",0,1,SDLK_ESCAPE); // 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Affichage du numéro de version
 | 
					  // Affichage du numéro de version
 | 
				
			||||||
  Print_dans_fenetre(10,19,"Version:",STATS_COULEUR_TITRES,CM_Noir);
 | 
					  Print_dans_fenetre(10,19,"Version:",STATS_COULEUR_TITRES,CM_Noir);
 | 
				
			||||||
@ -338,7 +338,7 @@ void Bouton_Stats(void)
 | 
				
			|||||||
  {
 | 
					  {
 | 
				
			||||||
    Bouton_clicke=Fenetre_Bouton_clicke();
 | 
					    Bouton_clicke=Fenetre_Bouton_clicke();
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  while ( (Bouton_clicke!=1) && (Touche!=0x001C) );
 | 
					  while ( (Bouton_clicke!=1) && (Touche!=SDLK_RETURN) );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fermer_fenetre();
 | 
					  Fermer_fenetre();
 | 
				
			||||||
  Desenclencher_bouton(BOUTON_AIDE);
 | 
					  Desenclencher_bouton(BOUTON_AIDE);
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										327
									
								
								boutons.c
									
									
									
									
									
								
							
							
						
						
									
										327
									
								
								boutons.c
									
									
									
									
									
								
							@ -40,7 +40,7 @@ void Bouton_***(void)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  Ouvrir_fenetre(310,190,"***");
 | 
					  Ouvrir_fenetre(310,190,"***");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(103,137,80,14,"OK",0,1,0x001C); // 1
 | 
					  Fenetre_Definir_bouton_normal(103,137,80,14,"OK",0,1,SDLK_RETURN); // 1
 | 
				
			||||||
  Fenetre_Definir_bouton_scroller(18,44,88,16,4,0);             // 2
 | 
					  Fenetre_Definir_bouton_scroller(18,44,88,16,4,0);             // 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Afficher_curseur();
 | 
					  Afficher_curseur();
 | 
				
			||||||
@ -67,12 +67,12 @@ void Message_Non_disponible(void)
 | 
				
			|||||||
  Print_dans_fenetre(8,20,"This function will",CM_Noir,CM_Clair);
 | 
					  Print_dans_fenetre(8,20,"This function will",CM_Noir,CM_Clair);
 | 
				
			||||||
  Print_dans_fenetre(12,28,"be implemented in",CM_Noir,CM_Clair);
 | 
					  Print_dans_fenetre(12,28,"be implemented in",CM_Noir,CM_Clair);
 | 
				
			||||||
  Print_dans_fenetre(16,36,"a later version.",CM_Noir,CM_Clair);
 | 
					  Print_dans_fenetre(16,36,"a later version.",CM_Noir,CM_Clair);
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(60,53,40,14,"OK",1,1,0x001C); // 1
 | 
					  Fenetre_Definir_bouton_normal(60,53,40,14,"OK",1,1,SDLK_RETURN); // 1
 | 
				
			||||||
  Afficher_curseur();
 | 
					  Afficher_curseur();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  do
 | 
					  do
 | 
				
			||||||
    Bouton_clicke=Fenetre_Bouton_clicke();
 | 
					    Bouton_clicke=Fenetre_Bouton_clicke();
 | 
				
			||||||
  while ((Bouton_clicke<=0) && (Touche!=0x0001) && (Touche!=0x0018));
 | 
					  while ((Bouton_clicke<=0) && (Touche!=SDLK_ESCAPE) && (Touche!=SDLK_o));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fermer_fenetre();
 | 
					  Fermer_fenetre();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -96,12 +96,12 @@ void Message_Memoire_insuffisante(void)
 | 
				
			|||||||
  Print_dans_fenetre(8,20,"Please consult the manual",CM_Noir,CM_Clair);
 | 
					  Print_dans_fenetre(8,20,"Please consult the manual",CM_Noir,CM_Clair);
 | 
				
			||||||
  Print_dans_fenetre(24,28,"to know how to obtain",CM_Noir,CM_Clair);
 | 
					  Print_dans_fenetre(24,28,"to know how to obtain",CM_Noir,CM_Clair);
 | 
				
			||||||
  Print_dans_fenetre(36,36,"more memory space.",CM_Noir,CM_Clair);
 | 
					  Print_dans_fenetre(36,36,"more memory space.",CM_Noir,CM_Clair);
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(60,53,40,14,"OK",1,1,0x001C); // 1
 | 
					  Fenetre_Definir_bouton_normal(60,53,40,14,"OK",1,1,SDLK_RETURN); // 1
 | 
				
			||||||
  Afficher_curseur();
 | 
					  Afficher_curseur();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  do
 | 
					  do
 | 
				
			||||||
    Bouton_clicke=Fenetre_Bouton_clicke();
 | 
					    Bouton_clicke=Fenetre_Bouton_clicke();
 | 
				
			||||||
  while ((Bouton_clicke<=0) && (Touche!=0x0001) && (Touche!=0x0018));
 | 
					  while ((Bouton_clicke<=0) && (Touche!=SDLK_ESCAPE) && (Touche!=SDLK_o));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fermer_fenetre();
 | 
					  Fermer_fenetre();
 | 
				
			||||||
  Afficher_curseur();
 | 
					  Afficher_curseur();
 | 
				
			||||||
@ -114,7 +114,7 @@ void Bouton_Message_initial(void)
 | 
				
			|||||||
  char  Chaine[21];
 | 
					  char  Chaine[21];
 | 
				
			||||||
  int   Pos_X,Offs_Y,X,Y;
 | 
					  int   Pos_X,Offs_Y,X,Y;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  sprintf(Chaine,"GrafX 2.00 %s%s",ALPHA_BETA,POURCENTAGE_VERSION);
 | 
					  sprintf(Chaine,"GrafX %d.%.2d%s%s",VERSION1, VERSION2, ALPHA_BETA,POURCENTAGE_VERSION);
 | 
				
			||||||
  Ouvrir_fenetre(260,172,Chaine);
 | 
					  Ouvrir_fenetre(260,172,Chaine);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Afficher_cadre_creux(10,20,239,62);
 | 
					  Fenetre_Afficher_cadre_creux(10,20,239,62);
 | 
				
			||||||
@ -133,15 +133,8 @@ void Bouton_Message_initial(void)
 | 
				
			|||||||
  Print_dans_fenetre( 7,128,"file before using this program",CM_Fonce,CM_Clair);
 | 
					  Print_dans_fenetre( 7,128,"file before using this program",CM_Fonce,CM_Clair);
 | 
				
			||||||
  Print_dans_fenetre( 7,136,"for the first time.",CM_Fonce,CM_Clair);
 | 
					  Print_dans_fenetre( 7,136,"for the first time.",CM_Fonce,CM_Clair);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if ((*ALPHA_BETA)=='ß')
 | 
					 | 
				
			||||||
  {
 | 
					 | 
				
			||||||
    Print_char_transparent_dans_fenetre(43,119,'M',CM_Noir);
 | 
					 | 
				
			||||||
    Print_char_transparent_dans_fenetre(53,121,'U',CM_Noir);
 | 
					 | 
				
			||||||
    Print_char_transparent_dans_fenetre(63,119,'S',CM_Noir);
 | 
					 | 
				
			||||||
    Print_char_transparent_dans_fenetre(74,120,'T',CM_Noir);
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
    SDL_UpdateRect(Ecran_SDL,(Largeur_ecran-(260*Menu_Facteur_X))>>1,(Hauteur_ecran-(172*Menu_Facteur_Y))>>1,260*Menu_Facteur_X,172*Menu_Facteur_Y);
 | 
					    SDL_UpdateRect(Ecran_SDL,(Largeur_ecran-(260*Menu_Facteur_X))>>1,(Hauteur_ecran-(172*Menu_Facteur_Y))>>1,260*Menu_Facteur_X,172*Menu_Facteur_Y);
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(90,151,80,14,"OK",0,1,0x001C); // 1
 | 
					  Fenetre_Definir_bouton_normal(90,151,80,14,"OK",0,1,SDLK_RETURN); // 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Afficher_curseur();
 | 
					  Afficher_curseur();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -149,7 +142,7 @@ void Bouton_Message_initial(void)
 | 
				
			|||||||
  {
 | 
					  {
 | 
				
			||||||
    Bouton_clicke=Fenetre_Bouton_clicke();
 | 
					    Bouton_clicke=Fenetre_Bouton_clicke();
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  while ((Bouton_clicke!=1) && (Touche!=0x0001) && (Touche!=0x0018));
 | 
					  while ((Bouton_clicke!=1) && (Touche!=SDLK_ESCAPE) && (Touche!=SDLK_o));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fermer_fenetre();
 | 
					  Fermer_fenetre();
 | 
				
			||||||
  Afficher_curseur();
 | 
					  Afficher_curseur();
 | 
				
			||||||
@ -388,9 +381,9 @@ byte Bouton_Quitter_Routine_locale(void)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  // On commence par afficher la fenêtre de QUIT
 | 
					  // On commence par afficher la fenêtre de QUIT
 | 
				
			||||||
  Ouvrir_fenetre(160,84,"Quit ?");
 | 
					  Ouvrir_fenetre(160,84,"Quit ?");
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(20,20,120,14,"Stay",0,1,0x0001);          // 1
 | 
					  Fenetre_Definir_bouton_normal(20,20,120,14,"Stay",0,1,SDLK_ESCAPE);          // 1
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(20,40,120,14,"Save & quit",1,1,0x001F);   // 2
 | 
					  Fenetre_Definir_bouton_normal(20,40,120,14,"Save & quit",1,1,SDLK_s);   // 2
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(20,60,120,14,"Discard (Quit)",1,1,0x0020);// 3
 | 
					  Fenetre_Definir_bouton_normal(20,60,120,14,"Discard (Quit)",1,1,SDLK_d);// 3
 | 
				
			||||||
  Afficher_curseur();
 | 
					  Afficher_curseur();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  do
 | 
					  do
 | 
				
			||||||
@ -509,17 +502,17 @@ void Menu_Tag_couleurs(char * En_tete, byte * Table, byte * Mode, byte Cancel)
 | 
				
			|||||||
  Ouvrir_fenetre(176,150,En_tete);
 | 
					  Ouvrir_fenetre(176,150,En_tete);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_palette(6,38);                            // 1
 | 
					  Fenetre_Definir_bouton_palette(6,38);                            // 1
 | 
				
			||||||
  Fenetre_Definir_bouton_normal( 7, 19,78,14,"Clear" ,1,1,0x002E); // 2
 | 
					  Fenetre_Definir_bouton_normal( 7, 19,78,14,"Clear" ,1,1,SDLK_c); // 2
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(91, 19,78,14,"Invert",1,1,0x0017); // 3
 | 
					  Fenetre_Definir_bouton_normal(91, 19,78,14,"Invert",1,1,SDLK_i); // 3
 | 
				
			||||||
  if (Cancel)
 | 
					  if (Cancel)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    Fenetre_Definir_bouton_normal(91,129,78,14,"OK"    ,0,1,0x001C); // 4
 | 
					    Fenetre_Definir_bouton_normal(91,129,78,14,"OK"    ,0,1,SDLK_RETURN); // 4
 | 
				
			||||||
    Fenetre_Definir_bouton_normal( 7,129,78,14,"Cancel",0,1,0x0001); // 5
 | 
					    Fenetre_Definir_bouton_normal( 7,129,78,14,"Cancel",0,1,SDLK_ESCAPE); // 5
 | 
				
			||||||
    // On enregistre la table dans un backup au cas où on ferait Cancel
 | 
					    // On enregistre la table dans un backup au cas où on ferait Cancel
 | 
				
			||||||
    memcpy(Backup_table,Table,256);
 | 
					    memcpy(Backup_table,Table,256);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  else
 | 
					  else
 | 
				
			||||||
    Fenetre_Definir_bouton_normal(49,129,78,14,"OK"    ,0,1,0x001C); // 4
 | 
					    Fenetre_Definir_bouton_normal(49,129,78,14,"OK"    ,0,1,SDLK_RETURN); // 4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // On affiche l'état actuel de la table
 | 
					  // On affiche l'état actuel de la table
 | 
				
			||||||
  for (Indice=0; Indice<=255; Indice++)
 | 
					  for (Indice=0; Indice<=255; Indice++)
 | 
				
			||||||
@ -567,8 +560,8 @@ void Menu_Tag_couleurs(char * En_tete, byte * Table, byte * Mode, byte Cancel)
 | 
				
			|||||||
    if (!Mouse_K)
 | 
					    if (!Mouse_K)
 | 
				
			||||||
    switch (Touche)
 | 
					    switch (Touche)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      case 0x0029 : // Récupération d'une couleur derrière le menu
 | 
					      case SDLK_BACKQUOTE : // Récupération d'une couleur derrière le menu
 | 
				
			||||||
      case 0x0033 :
 | 
					      case SDLK_COMMA :
 | 
				
			||||||
        Recuperer_couleur_derriere_fenetre(&Couleur,&Click);
 | 
					        Recuperer_couleur_derriere_fenetre(&Couleur,&Click);
 | 
				
			||||||
        if (Click)
 | 
					        if (Click)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
@ -748,44 +741,44 @@ void Bouton_Settings(void)
 | 
				
			|||||||
  Print_dans_fenetre(292,123,"Y"               ,CM_Fonce,CM_Clair);
 | 
					  Print_dans_fenetre(292,123,"Y"               ,CM_Fonce,CM_Clair);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Boutons de fontes
 | 
					  // Boutons de fontes
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(17,28,59,14,"Classic",0,1,0xFFFF); // 1
 | 
					  Fenetre_Definir_bouton_normal(17,28,59,14,"Classic",0,1,SDLK_LAST); // 1
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(91,28,59,14,"Fun"    ,0,1,0xFFFF); // 2
 | 
					  Fenetre_Definir_bouton_normal(91,28,59,14,"Fun"    ,0,1,SDLK_LAST); // 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Bouton Show/Hide dans le fileselect
 | 
					  // Bouton Show/Hide dans le fileselect
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(167, 28,131,14,"Hidden files:   ",0,1,0xFFFF); // 3
 | 
					  Fenetre_Definir_bouton_normal(167, 28,131,14,"Hidden files:   ",0,1,SDLK_LAST); // 3
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(167, 43,131,14,"Hidden dir. :   ",0,1,0xFFFF); // 4
 | 
					  Fenetre_Definir_bouton_normal(167, 43,131,14,"Hidden dir. :   ",0,1,SDLK_LAST); // 4
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(167, 58,131,14,"System dir. :   ",0,1,0xFFFF); // 5
 | 
					  Fenetre_Definir_bouton_normal(167, 58,131,14,"System dir. :   ",0,1,SDLK_LAST); // 5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Bouton Show/Hide Picture limits
 | 
					  // Bouton Show/Hide Picture limits
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(  9, 81,107,14,"Limits   :   ",0,1,0xFFFF); // 6
 | 
					  Fenetre_Definir_bouton_normal(  9, 81,107,14,"Limits   :   ",0,1,SDLK_LAST); // 6
 | 
				
			||||||
  // Bouton Show/Hide Picture limits
 | 
					  // Bouton Show/Hide Picture limits
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(  9, 96,107,14,"Clear pal:   ",0,1,0xFFFF); // 7
 | 
					  Fenetre_Definir_bouton_normal(  9, 96,107,14,"Clear pal:   ",0,1,SDLK_LAST); // 7
 | 
				
			||||||
  // Bouton Show/Hide Picture limits
 | 
					  // Bouton Show/Hide Picture limits
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(  9,111,107,14,"Max prev.:   ",0,1,0xFFFF); // 8
 | 
					  Fenetre_Definir_bouton_normal(  9,111,107,14,"Max prev.:   ",0,1,SDLK_LAST); // 8
 | 
				
			||||||
  // Bouton Effectuer des backups à chaque sauvegarde
 | 
					  // Bouton Effectuer des backups à chaque sauvegarde
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(  9,126,107,14,"Backup   :   ",0,1,0xFFFF); // 9
 | 
					  Fenetre_Definir_bouton_normal(  9,126,107,14,"Backup   :   ",0,1,SDLK_LAST); // 9
 | 
				
			||||||
  // Bouton Choix du curseur
 | 
					  // Bouton Choix du curseur
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(  9,141,107,14,"Cursor:      ",0,1,0xFFFF); // 10
 | 
					  Fenetre_Definir_bouton_normal(  9,141,107,14,"Cursor:      ",0,1,SDLK_LAST); // 10
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Bouton Safety colors
 | 
					  // Bouton Safety colors
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(117, 81,131,14,"Safe. colors:   ",0,1,0xFFFF); // 11
 | 
					  Fenetre_Definir_bouton_normal(117, 81,131,14,"Safe. colors:   ",0,1,SDLK_LAST); // 11
 | 
				
			||||||
  // Bouton Adjust Brush Pick
 | 
					  // Bouton Adjust Brush Pick
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(117, 96,131,14,"AdjBrushPick:   ",0,1,0xFFFF); // 12
 | 
					  Fenetre_Definir_bouton_normal(117, 96,131,14,"AdjBrushPick:   ",0,1,SDLK_LAST); // 12
 | 
				
			||||||
  // Bouton Separate colors
 | 
					  // Bouton Separate colors
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(117,111,131,14,"Separate col:   ",0,1,0xFFFF); // 13
 | 
					  Fenetre_Definir_bouton_normal(117,111,131,14,"Separate col:   ",0,1,SDLK_LAST); // 13
 | 
				
			||||||
  // Bouton Passer dans la résolution appropriée après un chargement
 | 
					  // Bouton Passer dans la résolution appropriée après un chargement
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(117,126,131,14,"Auto-set res:   ",0,1,0xFFFF); // 14
 | 
					  Fenetre_Definir_bouton_normal(117,126,131,14,"Auto-set res:   ",0,1,SDLK_LAST); // 14
 | 
				
			||||||
  // Bouton Adapter la palette après un chargement (<=> Shift+BkSpc)
 | 
					  // Bouton Adapter la palette après un chargement (<=> Shift+BkSpc)
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(117,141,131,14,"Coords:         ",0,1,0xFFFF); // 15
 | 
					  Fenetre_Definir_bouton_normal(117,141,131,14,"Coords:         ",0,1,SDLK_LAST); // 15
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Bouton Reload
 | 
					    // Bouton Reload
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(  6,163, 51,14,"Reload"       ,0,1,0xFFFF); // 16
 | 
					  Fenetre_Definir_bouton_normal(  6,163, 51,14,"Reload"       ,0,1,SDLK_LAST); // 16
 | 
				
			||||||
    // Bouton Auto-save
 | 
					    // Bouton Auto-save
 | 
				
			||||||
  Fenetre_Definir_bouton_normal( 73,163,107,14,"Auto-save:   ",0,1,0xFFFF); // 17
 | 
					  Fenetre_Definir_bouton_normal( 73,163,107,14,"Auto-save:   ",0,1,SDLK_LAST); // 17
 | 
				
			||||||
    // Bouton Save
 | 
					    // Bouton Save
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(183,163, 51,14,"Save"         ,0,1,0xFFFF); // 18
 | 
					  Fenetre_Definir_bouton_normal(183,163, 51,14,"Save"         ,0,1,SDLK_LAST); // 18
 | 
				
			||||||
    // Bouton Close
 | 
					    // Bouton Close
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(250,163, 51,14,"Close"        ,0,1,0x0001); // 19
 | 
					  Fenetre_Definir_bouton_normal(250,163, 51,14,"Close"        ,0,1,SDLK_ESCAPE); // 19
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Jauges de sensibilité de la souris (X puis Y)
 | 
					  // Jauges de sensibilité de la souris (X puis Y)
 | 
				
			||||||
  Fenetre_Definir_bouton_scroller(265,99,56,255,1,0); // 20
 | 
					  Fenetre_Definir_bouton_scroller(265,99,56,255,1,0); // 20
 | 
				
			||||||
@ -900,7 +893,7 @@ void Bouton_Settings(void)
 | 
				
			|||||||
    if ((Bouton_clicke>=1) && (Bouton_clicke<=17))
 | 
					    if ((Bouton_clicke>=1) && (Bouton_clicke<=17))
 | 
				
			||||||
      Settings_Afficher_config(&Config_choisie);
 | 
					      Settings_Afficher_config(&Config_choisie);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  while ( (Bouton_clicke!=19) && (Touche!=0x001C) );
 | 
					  while ( (Bouton_clicke!=19) && (Touche!=SDLK_RETURN) );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Config=Config_choisie;
 | 
					  Config=Config_choisie;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1108,12 +1101,12 @@ void Bouton_Copy_page(void)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  Ouvrir_fenetre(168,137,"Copy to spare page");
 | 
					  Ouvrir_fenetre(168,137,"Copy to spare page");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(10, 20,148,14,"Pixels + palette" , 0,1,0x001C); // 1
 | 
					  Fenetre_Definir_bouton_normal(10, 20,148,14,"Pixels + palette" , 0,1,SDLK_RETURN); // 1
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(10, 37,148,14,"Pixels only"      , 3,1,0x002D); // 2
 | 
					  Fenetre_Definir_bouton_normal(10, 37,148,14,"Pixels only"      , 3,1,SDLK_x); // 2
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(10, 54,148,14,"Palette only"     , 1,1,0x0019); // 3
 | 
					  Fenetre_Definir_bouton_normal(10, 54,148,14,"Palette only"     , 1,1,SDLK_p); // 3
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(10, 71,148,14,"Some colors only" , 6,1,0x002E); // 4
 | 
					  Fenetre_Definir_bouton_normal(10, 71,148,14,"Some colors only" , 6,1,SDLK_c); // 4
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(10, 88,148,14,"Palette and remap",13,1,0x0013); // 5
 | 
					  Fenetre_Definir_bouton_normal(10, 88,148,14,"Palette and remap",13,1,SDLK_r); // 5
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(44,114, 80,14,"Cancel"           , 0,1,0x0001); // 6
 | 
					  Fenetre_Definir_bouton_normal(44,114, 80,14,"Cancel"           , 0,1,SDLK_ESCAPE); // 6
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Afficher_curseur();
 | 
					  Afficher_curseur();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1317,8 +1310,8 @@ void Bouton_Resol(void)
 | 
				
			|||||||
  Print_dans_fenetre(102,170,"Imperfect"       ,CM_Fonce,CM_Clair);
 | 
					  Print_dans_fenetre(102,170,"Imperfect"       ,CM_Fonce,CM_Clair);
 | 
				
			||||||
  Print_dans_fenetre(196,170,"Unsupported"     ,CM_Fonce,CM_Clair);
 | 
					  Print_dans_fenetre(196,170,"Unsupported"     ,CM_Fonce,CM_Clair);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(223, 18,67,14,"OK"      ,0,1,0x001C); // 1
 | 
					  Fenetre_Definir_bouton_normal(223, 18,67,14,"OK"      ,0,1,SDLK_RETURN); // 1
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(223, 35,67,14,"Cancel"  ,0,1,0x0001); // 2
 | 
					  Fenetre_Definir_bouton_normal(223, 35,67,14,"Cancel"  ,0,1,SDLK_ESCAPE); // 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_saisie( 60, 35,4);                           // 3
 | 
					  Fenetre_Definir_bouton_saisie( 60, 35,4);                           // 3
 | 
				
			||||||
  Bouton_saisie_Width=Fenetre_Liste_boutons_special;
 | 
					  Bouton_saisie_Width=Fenetre_Liste_boutons_special;
 | 
				
			||||||
@ -1352,7 +1345,7 @@ void Bouton_Resol(void)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  // Les 12 petits boutons indiquant l'état des modes
 | 
					  // Les 12 petits boutons indiquant l'état des modes
 | 
				
			||||||
  for (Temp=0; Temp<12; Temp++)
 | 
					  for (Temp=0; Temp<12; Temp++)
 | 
				
			||||||
    Fenetre_Definir_bouton_normal(17,70+(Temp<<3),13,7,"",0,1,0xFFFF);// 7..18
 | 
					    Fenetre_Definir_bouton_normal(17,70+(Temp<<3),13,7,"",0,1,SDLK_LAST);// 7..18
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Dessiner_bouton_normal( 16,170,13,7,"",0,0);
 | 
					  Fenetre_Dessiner_bouton_normal( 16,170,13,7,"",0,0);
 | 
				
			||||||
  Cocher_bouton_mode( 18,172,0);
 | 
					  Cocher_bouton_mode( 18,172,0);
 | 
				
			||||||
@ -1469,7 +1462,7 @@ void Bouton_Resol(void)
 | 
				
			|||||||
    // Gestion des touches de déplacement dans la liste
 | 
					    // Gestion des touches de déplacement dans la liste
 | 
				
			||||||
    switch (Touche)
 | 
					    switch (Touche)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      case 0x0048 : // Haut
 | 
					      case SDLK_UP : // Haut
 | 
				
			||||||
        if (Position_curseur>0)
 | 
					        if (Position_curseur>0)
 | 
				
			||||||
          Position_curseur--;
 | 
					          Position_curseur--;
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
@ -1477,7 +1470,7 @@ void Bouton_Resol(void)
 | 
				
			|||||||
            Debut_liste--;
 | 
					            Debut_liste--;
 | 
				
			||||||
        Scroller_la_liste_des_modes(Debut_liste,Position_curseur,&Mode_choisi);
 | 
					        Scroller_la_liste_des_modes(Debut_liste,Position_curseur,&Mode_choisi);
 | 
				
			||||||
        break;
 | 
					        break;
 | 
				
			||||||
      case 0x0050 : // Bas
 | 
					      case SDLK_DOWN : // Bas
 | 
				
			||||||
        if (Position_curseur<11)
 | 
					        if (Position_curseur<11)
 | 
				
			||||||
          Position_curseur++;
 | 
					          Position_curseur++;
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
@ -1485,7 +1478,7 @@ void Bouton_Resol(void)
 | 
				
			|||||||
            Debut_liste++;
 | 
					            Debut_liste++;
 | 
				
			||||||
        Scroller_la_liste_des_modes(Debut_liste,Position_curseur,&Mode_choisi);
 | 
					        Scroller_la_liste_des_modes(Debut_liste,Position_curseur,&Mode_choisi);
 | 
				
			||||||
        break;
 | 
					        break;
 | 
				
			||||||
      case 0x0049 : // PageUp
 | 
					      case SDLK_PAGEUP : // PageUp
 | 
				
			||||||
        if (Position_curseur>0)
 | 
					        if (Position_curseur>0)
 | 
				
			||||||
          Position_curseur=0;
 | 
					          Position_curseur=0;
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
@ -1497,7 +1490,7 @@ void Bouton_Resol(void)
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
        Scroller_la_liste_des_modes(Debut_liste,Position_curseur,&Mode_choisi);
 | 
					        Scroller_la_liste_des_modes(Debut_liste,Position_curseur,&Mode_choisi);
 | 
				
			||||||
        break;
 | 
					        break;
 | 
				
			||||||
      case 0x0051 : // PageDown
 | 
					      case SDLK_PAGEDOWN : // PageDown
 | 
				
			||||||
        if (Position_curseur<11)
 | 
					        if (Position_curseur<11)
 | 
				
			||||||
          Position_curseur=11;
 | 
					          Position_curseur=11;
 | 
				
			||||||
        else
 | 
					        else
 | 
				
			||||||
@ -1509,12 +1502,12 @@ void Bouton_Resol(void)
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
        Scroller_la_liste_des_modes(Debut_liste,Position_curseur,&Mode_choisi);
 | 
					        Scroller_la_liste_des_modes(Debut_liste,Position_curseur,&Mode_choisi);
 | 
				
			||||||
        break;
 | 
					        break;
 | 
				
			||||||
      case 0x0047 : // Home
 | 
					      case SDLK_HOME : // Home
 | 
				
			||||||
        Debut_liste=0;
 | 
					        Debut_liste=0;
 | 
				
			||||||
        Position_curseur=0;
 | 
					        Position_curseur=0;
 | 
				
			||||||
        Scroller_la_liste_des_modes(Debut_liste,Position_curseur,&Mode_choisi);
 | 
					        Scroller_la_liste_des_modes(Debut_liste,Position_curseur,&Mode_choisi);
 | 
				
			||||||
        break;
 | 
					        break;
 | 
				
			||||||
      case 0x004F : // End
 | 
					      case SDLK_END : // End
 | 
				
			||||||
        Debut_liste=NB_MODES_VIDEO-12;
 | 
					        Debut_liste=NB_MODES_VIDEO-12;
 | 
				
			||||||
        Position_curseur=11;
 | 
					        Position_curseur=11;
 | 
				
			||||||
        Scroller_la_liste_des_modes(Debut_liste,Position_curseur,&Mode_choisi);
 | 
					        Scroller_la_liste_des_modes(Debut_liste,Position_curseur,&Mode_choisi);
 | 
				
			||||||
@ -1778,13 +1771,13 @@ void Bouton_Degrades(void)
 | 
				
			|||||||
  Scroller_de_melange=Fenetre_Liste_boutons_scroller;
 | 
					  Scroller_de_melange=Fenetre_Liste_boutons_scroller;
 | 
				
			||||||
    // Définition du bouton de sens
 | 
					    // Définition du bouton de sens
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(8,22,15,14,
 | 
					  Fenetre_Definir_bouton_normal(8,22,15,14,
 | 
				
			||||||
    (Degrade_Tableau[Degrade_Courant].Inverse)?"\033":"\032",0,1,0x000F); // 4
 | 
					    (Degrade_Tableau[Degrade_Courant].Inverse)?"\033":"\032",0,1,SDLK_TAB); // 4
 | 
				
			||||||
    // Définition du bouton de technique
 | 
					    // Définition du bouton de technique
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(8,92,15,14,"",0,1,0x010F); // 5
 | 
					  Fenetre_Definir_bouton_normal(8,92,15,14,"",0,1,SDLK_TAB|0x1000); // 5
 | 
				
			||||||
  Degrade_Dessiner_bouton_de_technique(8,92,Degrade_Tableau[Degrade_Courant].Technique);
 | 
					  Degrade_Dessiner_bouton_de_technique(8,92,Degrade_Tableau[Degrade_Courant].Technique);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(178,112,51,14,"OK",0,1,0x001C);     // 6
 | 
					  Fenetre_Definir_bouton_normal(178,112,51,14,"OK",0,1,SDLK_RETURN);     // 6
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(123,112,51,14,"Cancel",0,1,0x0001); // 7
 | 
					  Fenetre_Definir_bouton_normal(123,112,51,14,"Cancel",0,1,SDLK_ESCAPE); // 7
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Print_dans_fenetre(5,60,"MIX",CM_Fonce,CM_Clair);
 | 
					  Print_dans_fenetre(5,60,"MIX",CM_Fonce,CM_Clair);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1916,8 +1909,8 @@ void Bouton_Degrades(void)
 | 
				
			|||||||
    if (!Mouse_K)
 | 
					    if (!Mouse_K)
 | 
				
			||||||
    switch (Touche)
 | 
					    switch (Touche)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      case 0x0029 : // Récupération d'une couleur derrière le menu
 | 
					      case SDLK_BACKQUOTE : // Récupération d'une couleur derrière le menu
 | 
				
			||||||
      case 0x0033 :
 | 
					      case SDLK_COMMA :
 | 
				
			||||||
        Recuperer_couleur_derriere_fenetre(&Couleur,&Click);
 | 
					        Recuperer_couleur_derriere_fenetre(&Couleur,&Click);
 | 
				
			||||||
        if (Click)
 | 
					        if (Click)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
@ -2033,13 +2026,13 @@ void Bouton_Menu_pinceaux(void)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  Fenetre_Afficher_cadre(8,21,294,107);
 | 
					  Fenetre_Afficher_cadre(8,21,294,107);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(122,133,67,14,"Cancel",0,1,0x0001); // 1
 | 
					  Fenetre_Definir_bouton_normal(122,133,67,14,"Cancel",0,1,SDLK_ESCAPE); // 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  for (Indice=0; Indice<NB_SPRITES_PINCEAU; Indice++)
 | 
					  for (Indice=0; Indice<NB_SPRITES_PINCEAU; Indice++)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    Pos_X=13+((Indice%12)*24);
 | 
					    Pos_X=13+((Indice%12)*24);
 | 
				
			||||||
    Pos_Y=27+((Indice/12)*25);
 | 
					    Pos_Y=27+((Indice/12)*25);
 | 
				
			||||||
    Fenetre_Definir_bouton_normal(Pos_X  ,Pos_Y  ,20,20,"",0,1,0xFFFF);
 | 
					    Fenetre_Definir_bouton_normal(Pos_X  ,Pos_Y  ,20,20,"",0,1,SDLK_LAST);
 | 
				
			||||||
    Afficher_pinceau_dans_fenetre(Pos_X+2,Pos_Y+2,Indice);
 | 
					    Afficher_pinceau_dans_fenetre(Pos_X+2,Pos_Y+2,Indice);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -2322,7 +2315,7 @@ byte Bouton_Load_ou_Save(byte Load, byte Image)
 | 
				
			|||||||
      Ouvrir_fenetre(310,190+FILENAMESPACE,"Load picture");
 | 
					      Ouvrir_fenetre(310,190+FILENAMESPACE,"Load picture");
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
      Ouvrir_fenetre(310,190+FILENAMESPACE,"Load brush");
 | 
					      Ouvrir_fenetre(310,190+FILENAMESPACE,"Load brush");
 | 
				
			||||||
    Fenetre_Definir_bouton_normal(125,157+FILENAMESPACE,51,14,"Load",0,1,0x001C); // 1
 | 
					    Fenetre_Definir_bouton_normal(125,157+FILENAMESPACE,51,14,"Load",0,1,SDLK_RETURN); // 1
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  else
 | 
					  else
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
@ -2330,7 +2323,7 @@ byte Bouton_Load_ou_Save(byte Load, byte Image)
 | 
				
			|||||||
      Ouvrir_fenetre(310,190+FILENAMESPACE,"Save picture");
 | 
					      Ouvrir_fenetre(310,190+FILENAMESPACE,"Save picture");
 | 
				
			||||||
    else
 | 
					    else
 | 
				
			||||||
      Ouvrir_fenetre(310,190+FILENAMESPACE,"Save brush");
 | 
					      Ouvrir_fenetre(310,190+FILENAMESPACE,"Save brush");
 | 
				
			||||||
    Fenetre_Definir_bouton_normal(125,157+FILENAMESPACE,51,14,"Save",0,1,0x001C); // 1
 | 
					    Fenetre_Definir_bouton_normal(125,157+FILENAMESPACE,51,14,"Save",0,1,SDLK_RETURN); // 1
 | 
				
			||||||
    if (Principal_Format==0) // Correction du *.*
 | 
					    if (Principal_Format==0) // Correction du *.*
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      Principal_Format=Principal_Format_fichier;
 | 
					      Principal_Format=Principal_Format_fichier;
 | 
				
			||||||
@ -2349,8 +2342,8 @@ byte Bouton_Load_ou_Save(byte Load, byte Image)
 | 
				
			|||||||
      Print_dans_fenetre(46,176+FILENAMESPACE,Principal_Commentaire,CM_Noir,CM_Clair);
 | 
					      Print_dans_fenetre(46,176+FILENAMESPACE,Principal_Commentaire,CM_Noir,CM_Clair);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(125,139+FILENAMESPACE,51,14,"Cancel",0,1,0x0001); // 2
 | 
					  Fenetre_Definir_bouton_normal(125,139+FILENAMESPACE,51,14,"Cancel",0,1,SDLK_ESCAPE); // 2
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(125, 89+FILENAMESPACE,51,14,"Delete",0,1,0x0053); // 3
 | 
					  Fenetre_Definir_bouton_normal(125, 89+FILENAMESPACE,51,14,"Delete",0,1,SDLK_DELETE); // 3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Cadre autour des formats
 | 
					  // Cadre autour des formats
 | 
				
			||||||
  Fenetre_Afficher_cadre(  7, 51,103, 35);
 | 
					  Fenetre_Afficher_cadre(  7, 51,103, 35);
 | 
				
			||||||
@ -2392,7 +2385,7 @@ byte Bouton_Load_ou_Save(byte Load, byte Image)
 | 
				
			|||||||
  for (Temp=0; Temp<Nb_drives; Temp++)
 | 
					  for (Temp=0; Temp<Nb_drives; Temp++)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    Nom_drive[0]=Drive[Temp].Lettre;
 | 
					    Nom_drive[0]=Drive[Temp].Lettre;
 | 
				
			||||||
    Fenetre_Definir_bouton_normal(8+((Temp%13)*20),Drives_Debut_Y+((Temp/13)*12),19,11,Nom_drive,0,1,Drive[Temp].Touche); // 9 et +
 | 
					    Fenetre_Definir_bouton_normal(8+((Temp%13)*20),Drives_Debut_Y+((Temp/13)*12),19,11,Nom_drive,0,1,(Temp < 10) ? SDLK_F1 + Temp : SDLK_LAST); // 9 et +
 | 
				
			||||||
    Fenetre_Afficher_sprite_drive(18+((Temp%13)*20),Drives_Debut_Y+2+((Temp/13)*12),Drive[Temp].Type);
 | 
					    Fenetre_Afficher_sprite_drive(18+((Temp%13)*20),Drives_Debut_Y+2+((Temp/13)*12),Drive[Temp].Type);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -2635,44 +2628,44 @@ byte Bouton_Load_ou_Save(byte Load, byte Image)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    switch (Touche)
 | 
					    switch (Touche)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      case 0x0000 : break;
 | 
					      case SDLK_UNKNOWN : break;
 | 
				
			||||||
      case 0x0050 : // Bas
 | 
					      case SDLK_DOWN : // Bas
 | 
				
			||||||
        *Fichier_recherche=0;
 | 
					        *Fichier_recherche=0;
 | 
				
			||||||
        Effacer_curseur();
 | 
					        Effacer_curseur();
 | 
				
			||||||
        Select_Scroll_Down(&Principal_File_list_Position,&Principal_File_list_Decalage);
 | 
					        Select_Scroll_Down(&Principal_File_list_Position,&Principal_File_list_Decalage);
 | 
				
			||||||
        On_vient_de_scroller_dans_le_fileselect(Scroller_de_fichiers);
 | 
					        On_vient_de_scroller_dans_le_fileselect(Scroller_de_fichiers);
 | 
				
			||||||
        break;
 | 
					        break;
 | 
				
			||||||
      case 0x0048 : // Haut
 | 
					      case SDLK_UP : // Haut
 | 
				
			||||||
        *Fichier_recherche=0;
 | 
					        *Fichier_recherche=0;
 | 
				
			||||||
        Effacer_curseur();
 | 
					        Effacer_curseur();
 | 
				
			||||||
        Select_Scroll_Up(&Principal_File_list_Position,&Principal_File_list_Decalage);
 | 
					        Select_Scroll_Up(&Principal_File_list_Position,&Principal_File_list_Decalage);
 | 
				
			||||||
        On_vient_de_scroller_dans_le_fileselect(Scroller_de_fichiers);
 | 
					        On_vient_de_scroller_dans_le_fileselect(Scroller_de_fichiers);
 | 
				
			||||||
        break;
 | 
					        break;
 | 
				
			||||||
      case 0x0051 : // Page Down
 | 
					      case SDLK_PAGEDOWN : // Page Down
 | 
				
			||||||
        *Fichier_recherche=0;
 | 
					        *Fichier_recherche=0;
 | 
				
			||||||
        Effacer_curseur();
 | 
					        Effacer_curseur();
 | 
				
			||||||
        Select_Page_Down(&Principal_File_list_Position,&Principal_File_list_Decalage);
 | 
					        Select_Page_Down(&Principal_File_list_Position,&Principal_File_list_Decalage);
 | 
				
			||||||
        On_vient_de_scroller_dans_le_fileselect(Scroller_de_fichiers);
 | 
					        On_vient_de_scroller_dans_le_fileselect(Scroller_de_fichiers);
 | 
				
			||||||
        break;
 | 
					        break;
 | 
				
			||||||
      case 0x0049 : // Page Up
 | 
					      case SDLK_PAGEUP : // Page Up
 | 
				
			||||||
        *Fichier_recherche=0;
 | 
					        *Fichier_recherche=0;
 | 
				
			||||||
        Effacer_curseur();
 | 
					        Effacer_curseur();
 | 
				
			||||||
        Select_Page_Up(&Principal_File_list_Position,&Principal_File_list_Decalage);
 | 
					        Select_Page_Up(&Principal_File_list_Position,&Principal_File_list_Decalage);
 | 
				
			||||||
        On_vient_de_scroller_dans_le_fileselect(Scroller_de_fichiers);
 | 
					        On_vient_de_scroller_dans_le_fileselect(Scroller_de_fichiers);
 | 
				
			||||||
        break;
 | 
					        break;
 | 
				
			||||||
      case 0x004F : // End
 | 
					      case SDLK_END : // End
 | 
				
			||||||
        *Fichier_recherche=0;
 | 
					        *Fichier_recherche=0;
 | 
				
			||||||
        Effacer_curseur();
 | 
					        Effacer_curseur();
 | 
				
			||||||
        Select_End(&Principal_File_list_Position,&Principal_File_list_Decalage);
 | 
					        Select_End(&Principal_File_list_Position,&Principal_File_list_Decalage);
 | 
				
			||||||
        On_vient_de_scroller_dans_le_fileselect(Scroller_de_fichiers);
 | 
					        On_vient_de_scroller_dans_le_fileselect(Scroller_de_fichiers);
 | 
				
			||||||
        break;
 | 
					        break;
 | 
				
			||||||
      case 0x0047 : // Home
 | 
					      case SDLK_HOME : // Home
 | 
				
			||||||
        *Fichier_recherche=0;
 | 
					        *Fichier_recherche=0;
 | 
				
			||||||
        Effacer_curseur();
 | 
					        Effacer_curseur();
 | 
				
			||||||
        Select_Home(&Principal_File_list_Position,&Principal_File_list_Decalage);
 | 
					        Select_Home(&Principal_File_list_Position,&Principal_File_list_Decalage);
 | 
				
			||||||
        On_vient_de_scroller_dans_le_fileselect(Scroller_de_fichiers);
 | 
					        On_vient_de_scroller_dans_le_fileselect(Scroller_de_fichiers);
 | 
				
			||||||
        break;
 | 
					        break;
 | 
				
			||||||
      case 0x000E : // Backspace
 | 
					      case SDLK_BACKSPACE : // Backspace
 | 
				
			||||||
        *Fichier_recherche=0;
 | 
					        *Fichier_recherche=0;
 | 
				
			||||||
        if (Principal_Repertoire_courant[3]) // Si on n'est pas à la racine...
 | 
					        if (Principal_Repertoire_courant[3]) // Si on n'est pas à la racine...
 | 
				
			||||||
        {                              // ... on va dans le répertoire parent.
 | 
					        {                              // ... on va dans le répertoire parent.
 | 
				
			||||||
@ -3599,20 +3592,20 @@ void Bouton_Menu_Loupe(void)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  Ouvrir_fenetre(141,114,"Zoom factors");
 | 
					  Ouvrir_fenetre(141,114,"Zoom factors");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(45,88,51,14,"Cancel",0,1,0x0001); // 1
 | 
					  Fenetre_Definir_bouton_normal(45,88,51,14,"Cancel",0,1,SDLK_ESCAPE); // 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(  9,25,27,14, "x2",0,Loupe_Facteur!= 2,0x003B);    // 2
 | 
					  Fenetre_Definir_bouton_normal(  9,25,27,14, "x2",0,Loupe_Facteur!= 2,SDLK_F1);    // 2
 | 
				
			||||||
  Fenetre_Definir_bouton_normal( 41,25,27,14, "x3",0,Loupe_Facteur!= 3,0x003C);    // 3
 | 
					  Fenetre_Definir_bouton_normal( 41,25,27,14, "x3",0,Loupe_Facteur!= 3,SDLK_F2);    // 3
 | 
				
			||||||
  Fenetre_Definir_bouton_normal( 73,25,27,14, "x4",0,Loupe_Facteur!= 4,0x003D);    // 4
 | 
					  Fenetre_Definir_bouton_normal( 73,25,27,14, "x4",0,Loupe_Facteur!= 4,SDLK_F3);    // 4
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(105,25,27,14, "x5",0,Loupe_Facteur!= 5,0x003E);    // 5
 | 
					  Fenetre_Definir_bouton_normal(105,25,27,14, "x5",0,Loupe_Facteur!= 5,SDLK_F4);    // 5
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(  9,45,27,14, "x6",0,Loupe_Facteur!= 6,0x003F);    // 6
 | 
					  Fenetre_Definir_bouton_normal(  9,45,27,14, "x6",0,Loupe_Facteur!= 6,SDLK_F5);    // 6
 | 
				
			||||||
  Fenetre_Definir_bouton_normal( 41,45,27,14, "x8",0,Loupe_Facteur!= 8,0x0040);    // 7
 | 
					  Fenetre_Definir_bouton_normal( 41,45,27,14, "x8",0,Loupe_Facteur!= 8,SDLK_F6);    // 7
 | 
				
			||||||
  Fenetre_Definir_bouton_normal( 73,45,27,14,"x10",0,Loupe_Facteur!=10,0x0041);    // 8
 | 
					  Fenetre_Definir_bouton_normal( 73,45,27,14,"x10",0,Loupe_Facteur!=10,SDLK_F7);    // 8
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(105,45,27,14,"x12",0,Loupe_Facteur!=12,0x0042);    // 9
 | 
					  Fenetre_Definir_bouton_normal(105,45,27,14,"x12",0,Loupe_Facteur!=12,SDLK_F8);    // 9
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(  9,65,27,14,"x14",0,Loupe_Facteur!=14,0x0043);    // 10
 | 
					  Fenetre_Definir_bouton_normal(  9,65,27,14,"x14",0,Loupe_Facteur!=14,SDLK_F9);    // 10
 | 
				
			||||||
  Fenetre_Definir_bouton_normal( 41,65,27,14,"x16",0,Loupe_Facteur!=16,0x0044);    // 11
 | 
					  Fenetre_Definir_bouton_normal( 41,65,27,14,"x16",0,Loupe_Facteur!=16,SDLK_F10);    // 11
 | 
				
			||||||
  Fenetre_Definir_bouton_normal( 73,65,27,14,"x18",0,Loupe_Facteur!=18,0x0085);    // 12
 | 
					  Fenetre_Definir_bouton_normal( 73,65,27,14,"x18",0,Loupe_Facteur!=18,SDLK_F11);    // 12
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(105,65,27,14,"x20",0,Loupe_Facteur!=20,0x0086);    // 13
 | 
					  Fenetre_Definir_bouton_normal(105,65,27,14,"x20",0,Loupe_Facteur!=20,SDLK_F12);    // 13
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Afficher_curseur();
 | 
					  Afficher_curseur();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -3714,8 +3707,8 @@ void Bouton_Menu_Grille(void)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  Ouvrir_fenetre(133,98,"Grid");
 | 
					  Ouvrir_fenetre(133,98,"Grid");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(12,72,51,14,"Cancel",0,1,0x0001); // 1
 | 
					  Fenetre_Definir_bouton_normal(12,72,51,14,"Cancel",0,1,SDLK_ESCAPE); // 1
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(70,72,51,14,"OK"    ,0,1,0x001C); // 2
 | 
					  Fenetre_Definir_bouton_normal(70,72,51,14,"OK"    ,0,1,SDLK_RETURN); // 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Print_dans_fenetre(19,26, "X:",CM_Fonce,CM_Clair);
 | 
					  Print_dans_fenetre(19,26, "X:",CM_Fonce,CM_Clair);
 | 
				
			||||||
  Fenetre_Definir_bouton_saisie(37,24,2); // 3
 | 
					  Fenetre_Definir_bouton_saisie(37,24,2); // 3
 | 
				
			||||||
@ -3861,29 +3854,29 @@ void Bouton_Brush_FX(void)
 | 
				
			|||||||
  Fenetre_Afficher_cadre(  6,83,122,53);
 | 
					  Fenetre_Afficher_cadre(  6,83,122,53);
 | 
				
			||||||
  Fenetre_Afficher_cadre(137,83,167,53);
 | 
					  Fenetre_Afficher_cadre(137,83,167,53);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(236,141, 67,14,"Cancel"          ,0,1,0x0001); // 1
 | 
					  Fenetre_Definir_bouton_normal(236,141, 67,14,"Cancel"          ,0,1,SDLK_ESCAPE); // 1
 | 
				
			||||||
  Fenetre_Definir_bouton_normal( 19, 46, 27,14,"X\035"           ,1,1,0x002D); // 2
 | 
					  Fenetre_Definir_bouton_normal( 19, 46, 27,14,"X\035"           ,1,1,SDLK_x); // 2
 | 
				
			||||||
  Fenetre_Definir_bouton_normal( 19, 61, 27,14,"Y\022"           ,1,1,0x0015); // 3
 | 
					  Fenetre_Definir_bouton_normal( 19, 61, 27,14,"Y\022"           ,1,1,SDLK_y); // 3
 | 
				
			||||||
  Fenetre_Definir_bouton_normal( 58, 46, 37,14,"90°"             ,0,1,0xFFFF); // 4
 | 
					  Fenetre_Definir_bouton_normal( 58, 46, 37,14,"90°"             ,0,1,SDLK_LAST); // 4
 | 
				
			||||||
  Fenetre_Definir_bouton_normal( 96, 46, 37,14,"180°"            ,0,1,0xFFFF); // 5
 | 
					  Fenetre_Definir_bouton_normal( 96, 46, 37,14,"180°"            ,0,1,SDLK_LAST); // 5
 | 
				
			||||||
  Fenetre_Definir_bouton_normal( 58, 61, 75,14,"any angle"       ,0,1,0xFFFF); // 6
 | 
					  Fenetre_Definir_bouton_normal( 58, 61, 75,14,"any angle"       ,0,1,SDLK_LAST); // 6
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(145, 46, 67,14,"Stretch"         ,2,1,0x0014); // 7
 | 
					  Fenetre_Definir_bouton_normal(145, 46, 67,14,"Stretch"         ,2,1,SDLK_t); // 7
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(145, 61, 67,14,"Distort"         ,1,1,0x0020); // 8
 | 
					  Fenetre_Definir_bouton_normal(145, 61, 67,14,"Distort"         ,1,1,SDLK_d); // 8
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(155, 99,131,14,"Recolorize"      ,1,1,0x0013); // 9
 | 
					  Fenetre_Definir_bouton_normal(155, 99,131,14,"Recolorize"      ,1,1,SDLK_r); // 9
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(155,117,131,14,"Get brush colors",1,1,0x0022); // 10
 | 
					  Fenetre_Definir_bouton_normal(155,117,131,14,"Get brush colors",1,1,SDLK_g); // 10
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Boutons représentant les coins du brush handle: (HG,HD,C,BG,BD)
 | 
					  // Boutons représentant les coins du brush handle: (HG,HD,C,BG,BD)
 | 
				
			||||||
  Fenetre_Definir_bouton_normal( 75, 90,11,11,"",0,1,0x0047); // 11
 | 
					  Fenetre_Definir_bouton_normal( 75, 90,11,11,"",0,1,SDLK_HOME); // 11
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(103, 90,11,11,"",0,1,0x0049); // 12
 | 
					  Fenetre_Definir_bouton_normal(103, 90,11,11,"",0,1,SDLK_PAGEUP); // 12
 | 
				
			||||||
  Fenetre_Definir_bouton_normal( 89,104,11,11,"",0,1,0x004C); // 13
 | 
					  Fenetre_Definir_bouton_normal( 89,104,11,11,"",0,1,SDLK_KP5); // 13
 | 
				
			||||||
  Fenetre_Definir_bouton_normal( 75,118,11,11,"",0,1,0x004F); // 14
 | 
					  Fenetre_Definir_bouton_normal( 75,118,11,11,"",0,1,SDLK_END); // 14
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(103,118,11,11,"",0,1,0x0051); // 15
 | 
					  Fenetre_Definir_bouton_normal(103,118,11,11,"",0,1,SDLK_PAGEDOWN); // 15
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(224,46,67,14,"Outline",1,1,0x0018); // 16
 | 
					  Fenetre_Definir_bouton_normal(224,46,67,14,"Outline",1,1,SDLK_o); // 16
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(224,61,67,14,"Nibble" ,1,1,0x0031); // 17
 | 
					  Fenetre_Definir_bouton_normal(224,61,67,14,"Nibble" ,1,1,SDLK_n); // 17
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(  7,141, 60,14,"Load",1,1,0x0026); // 18
 | 
					  Fenetre_Definir_bouton_normal(  7,141, 60,14,"Load",1,1,SDLK_l); // 18
 | 
				
			||||||
  Fenetre_Definir_bouton_normal( 70,141, 60,14,"Save",1,1,0x001F); // 19
 | 
					  Fenetre_Definir_bouton_normal( 70,141, 60,14,"Save",1,1,SDLK_s); // 19
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Print_dans_fenetre( 80, 24,"Shape modifications",CM_Fonce,CM_Clair);
 | 
					  Print_dans_fenetre( 80, 24,"Shape modifications",CM_Fonce,CM_Clair);
 | 
				
			||||||
  Print_dans_fenetre( 10, 36,"Mirror",CM_Fonce,CM_Clair);
 | 
					  Print_dans_fenetre( 10, 36,"Mirror",CM_Fonce,CM_Clair);
 | 
				
			||||||
@ -4052,13 +4045,13 @@ void Bouton_Smooth_Menu(void)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  Ouvrir_fenetre(142,109,"Smooth");
 | 
					  Ouvrir_fenetre(142,109,"Smooth");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(82,59,53,14,"Cancel",0,1,0x0001); // 1
 | 
					  Fenetre_Definir_bouton_normal(82,59,53,14,"Cancel",0,1,SDLK_ESCAPE); // 1
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(82,88,53,14,"OK"    ,0,1,0x001C); // 2
 | 
					  Fenetre_Definir_bouton_normal(82,88,53,14,"OK"    ,0,1,SDLK_RETURN); // 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Afficher_cadre(6,17,130,37);
 | 
					  Fenetre_Afficher_cadre(6,17,130,37);
 | 
				
			||||||
  for (X=11,Y=0; Y<4; X+=31,Y++)
 | 
					  for (X=11,Y=0; Y<4; X+=31,Y++)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    Fenetre_Definir_bouton_normal(X,22,27,27,"",0,1,0xFFFF);      // 3,4,5,6
 | 
					    Fenetre_Definir_bouton_normal(X,22,27,27,"",0,1,SDLK_LAST);      // 3,4,5,6
 | 
				
			||||||
    for (J=0; J<3; J++)
 | 
					    for (J=0; J<3; J++)
 | 
				
			||||||
      for (I=0; I<3; I++)
 | 
					      for (I=0; I<3; I++)
 | 
				
			||||||
        Print_char_dans_fenetre(X+2+(I<<3),24+(J<<3),'0'+Smooth_Matrice_defaut[Y][I][J],CM_Noir,CM_Clair);
 | 
					        Print_char_dans_fenetre(X+2+(I<<3),24+(J<<3),'0'+Smooth_Matrice_defaut[Y][I][J],CM_Noir,CM_Clair);
 | 
				
			||||||
@ -4224,14 +4217,14 @@ void Bouton_Colorize_Menu(void)
 | 
				
			|||||||
  Print_dans_fenetre(16,23,"Opacity:",CM_Fonce,CM_Clair);
 | 
					  Print_dans_fenetre(16,23,"Opacity:",CM_Fonce,CM_Clair);
 | 
				
			||||||
  Fenetre_Definir_bouton_saisie(87,21,3);                               // 1
 | 
					  Fenetre_Definir_bouton_saisie(87,21,3);                               // 1
 | 
				
			||||||
  Print_dans_fenetre(117,23,"%",CM_Fonce,CM_Clair);
 | 
					  Print_dans_fenetre(117,23,"%",CM_Fonce,CM_Clair);
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(16,34,108,14,"Interpolate",1,1,0x0017); // 2
 | 
					  Fenetre_Definir_bouton_normal(16,34,108,14,"Interpolate",1,1,SDLK_i); // 2
 | 
				
			||||||
  Fenetre_Afficher_cadre(12,18,116,34);
 | 
					  Fenetre_Afficher_cadre(12,18,116,34);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(16,54,108,14,"Additive"   ,2,1,0x0020); // 3
 | 
					  Fenetre_Definir_bouton_normal(16,54,108,14,"Additive"   ,2,1,SDLK_d); // 3
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(16,71,108,14,"Subtractive",1,1,0x001F); // 4
 | 
					  Fenetre_Definir_bouton_normal(16,71,108,14,"Subtractive",1,1,SDLK_s); // 4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(16,94, 51,14,"Cancel"     ,0,1,0x0001); // 5
 | 
					  Fenetre_Definir_bouton_normal(16,94, 51,14,"Cancel"     ,0,1,SDLK_ESCAPE); // 5
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(73,94, 51,14,"OK"         ,0,1,0x001C); // 6
 | 
					  Fenetre_Definir_bouton_normal(73,94, 51,14,"OK"         ,0,1,SDLK_RETURN); // 6
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Num2str(Colorize_Opacite,Chaine,3);
 | 
					  Num2str(Colorize_Opacite,Chaine,3);
 | 
				
			||||||
  Fenetre_Contenu_bouton_saisie(Fenetre_Liste_boutons_special,Chaine);
 | 
					  Fenetre_Contenu_bouton_saisie(Fenetre_Liste_boutons_special,Chaine);
 | 
				
			||||||
@ -4317,8 +4310,8 @@ void Bouton_Tiling_Menu(void)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  Ouvrir_fenetre(138,79,"Tiling");
 | 
					  Ouvrir_fenetre(138,79,"Tiling");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(13,55,51,14,"Cancel",0,1,0x0001); // 1
 | 
					  Fenetre_Definir_bouton_normal(13,55,51,14,"Cancel",0,1,SDLK_ESCAPE); // 1
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(74,55,51,14,"OK"    ,0,1,0x001C); // 2
 | 
					  Fenetre_Definir_bouton_normal(74,55,51,14,"OK"    ,0,1,SDLK_RETURN); // 2
 | 
				
			||||||
  Fenetre_Definir_bouton_saisie(91,21,4);                         // 3
 | 
					  Fenetre_Definir_bouton_saisie(91,21,4);                         // 3
 | 
				
			||||||
  Bouton_saisie_Decalage_X=Fenetre_Liste_boutons_special;
 | 
					  Bouton_saisie_Decalage_X=Fenetre_Liste_boutons_special;
 | 
				
			||||||
  Fenetre_Definir_bouton_saisie(91,35,4);                         // 4
 | 
					  Fenetre_Definir_bouton_saisie(91,35,4);                         // 4
 | 
				
			||||||
@ -4461,25 +4454,25 @@ void Bouton_Spray_Menu(void)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  Ouvrir_fenetre(226,170,"Spray");
 | 
					  Ouvrir_fenetre(226,170,"Spray");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(110,148,51,14,"Cancel"    ,0,1,0x0001); // 1
 | 
					  Fenetre_Definir_bouton_normal(110,148,51,14,"Cancel"    ,0,1,SDLK_ESCAPE); // 1
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(166,148,51,14,"OK"        ,0,1,0x001C); // 2
 | 
					  Fenetre_Definir_bouton_normal(166,148,51,14,"OK"        ,0,1,SDLK_RETURN); // 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_scroller(178,62,74,50,1,49-Spray_Multi_flow[Couleur_selectionnee]); // 3
 | 
					  Fenetre_Definir_bouton_scroller(178,62,74,50,1,49-Spray_Multi_flow[Couleur_selectionnee]); // 3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_palette(7,56);                                 // 4
 | 
					  Fenetre_Definir_bouton_palette(7,56);                                 // 4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(  8,148,83,14,"Mode:     ",0,1,0x000F); // 5
 | 
					  Fenetre_Definir_bouton_normal(  8,148,83,14,"Mode:     ",0,1,SDLK_TAB); // 5
 | 
				
			||||||
  if (Spray_Mode)
 | 
					  if (Spray_Mode)
 | 
				
			||||||
    Print_dans_fenetre(50,151," Mono",CM_Noir,CM_Clair);
 | 
					    Print_dans_fenetre(50,151," Mono",CM_Noir,CM_Clair);
 | 
				
			||||||
  else
 | 
					  else
 | 
				
			||||||
    Print_dans_fenetre(50,151,"Multi",CM_Noir,CM_Clair);
 | 
					    Print_dans_fenetre(50,151,"Multi",CM_Noir,CM_Clair);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(194, 62,19,14,"+1"        ,0,1,0x004E); // 6
 | 
					  Fenetre_Definir_bouton_normal(194, 62,19,14,"+1"        ,0,1,SDLK_KP_PLUS); // 6
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(194, 79,19,14,"-1"        ,0,1,0x004A); // 7
 | 
					  Fenetre_Definir_bouton_normal(194, 79,19,14,"-1"        ,0,1,SDLK_KP_MINUS); // 7
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(194, 96,19,14,"x2"        ,0,1,0x0037); // 8
 | 
					  Fenetre_Definir_bouton_normal(194, 96,19,14,"x2"        ,0,1,SDLK_KP_MULTIPLY); // 8
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(194,113,19,14,"÷2"        ,0,1,0x00E0); // 9
 | 
					  Fenetre_Definir_bouton_normal(194,113,19,14,"÷2"        ,0,1,SDLK_KP_ENTER); // 9
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(  8, 37,43,14,"Clear"     ,1,1,0x002E); // 10
 | 
					  Fenetre_Definir_bouton_normal(  8, 37,43,14,"Clear"     ,1,1,SDLK_c); // 10
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Print_dans_fenetre(142,25,"Size:"     ,CM_Fonce,CM_Clair);
 | 
					  Print_dans_fenetre(142,25,"Size:"     ,CM_Fonce,CM_Clair);
 | 
				
			||||||
  Fenetre_Definir_bouton_saisie(186,23,3);                              // 11
 | 
					  Fenetre_Definir_bouton_saisie(186,23,3);                              // 11
 | 
				
			||||||
@ -4708,8 +4701,8 @@ void Bouton_Spray_Menu(void)
 | 
				
			|||||||
    if (!Mouse_K)
 | 
					    if (!Mouse_K)
 | 
				
			||||||
    switch (Touche)
 | 
					    switch (Touche)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      case 0x0029 : // Récupération d'une couleur derrière le menu
 | 
					      case SDLK_BACKQUOTE : // Récupération d'une couleur derrière le menu
 | 
				
			||||||
      case 0x0033 :
 | 
					      case SDLK_COMMA :
 | 
				
			||||||
        Recuperer_couleur_derriere_fenetre(&Couleur,&Click);
 | 
					        Recuperer_couleur_derriere_fenetre(&Couleur,&Click);
 | 
				
			||||||
        if (Click)
 | 
					        if (Click)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
@ -4888,34 +4881,32 @@ void Bouton_Trame_Menu(void)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_special(143,69,80,80);                     // 1
 | 
					  Fenetre_Definir_bouton_special(143,69,80,80);                     // 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(175,157,51,14,"Cancel",0,1,0x0001); // 2
 | 
					  Fenetre_Definir_bouton_normal(175,157,51,14,"Cancel",0,1,SDLK_ESCAPE); // 2
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(230,157,51,14,"OK"    ,0,1,0x001C); // 3
 | 
					  Fenetre_Definir_bouton_normal(230,157,51,14,"OK"    ,0,1,SDLK_RETURN); // 3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(  8,157,51,14,"Clear" ,1,1,0x002E); // 4
 | 
					  Fenetre_Definir_bouton_normal(  8,157,51,14,"Clear" ,1,1,SDLK_c); // 4
 | 
				
			||||||
  Fenetre_Definir_bouton_normal( 63,157,51,14,"Invert",1,1,0x0017); // 5
 | 
					  Fenetre_Definir_bouton_normal( 63,157,51,14,"Invert",1,1,SDLK_i); // 5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(  8,46,131,14,"Get from brush"   ,1,1,0x0022); // 6
 | 
					  Fenetre_Definir_bouton_normal(  8,46,131,14,"Get from brush"   ,1,1,SDLK_g); // 6
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(142,46,139,14,"Transfer to brush",1,1,0x0014); // 7
 | 
					  Fenetre_Definir_bouton_normal(142,46,139,14,"Transfer to brush",1,1,SDLK_t); // 7
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(109,114,11,11,"\030",0,1,0x0148); // 8
 | 
					  Fenetre_Definir_bouton_normal(109,114,11,11,"\030",0,1,SDLK_UP|0x1000); // 8
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(109,138,11,11,"\031",0,1,0x0150); // 9
 | 
					  Fenetre_Definir_bouton_normal(109,138,11,11,"\031",0,1,SDLK_DOWN|0x1000); // 9
 | 
				
			||||||
  Fenetre_Definir_bouton_normal( 97,126,11,11,"\033",0,1,0x014B); // 10
 | 
					  Fenetre_Definir_bouton_normal( 97,126,11,11,"\033",0,1,SDLK_LEFT|0x1000); // 10
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(121,126,11,11,"\032",0,1,0x014D); // 11
 | 
					  Fenetre_Definir_bouton_normal(121,126,11,11,"\032",0,1,SDLK_RIGHT|0x1000); // 11
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(109,126,11,11,""    ,0,1,0x0052); // 12
 | 
					  Fenetre_Definir_bouton_normal(109,126,11,11,""    ,0,1,SDLK_INSERT); // 12
 | 
				
			||||||
  Bouton_Octet_insere=Fenetre_Liste_boutons_normal;
 | 
					  Bouton_Octet_insere=Fenetre_Liste_boutons_normal;
 | 
				
			||||||
  Block(Fenetre_Pos_X+(Menu_Facteur_X*(Bouton_Octet_insere->Pos_X+2)),
 | 
					  Block(Fenetre_Pos_X+(Menu_Facteur_X*(Bouton_Octet_insere->Pos_X+2)),
 | 
				
			||||||
        Fenetre_Pos_Y+(Menu_Facteur_Y*(Bouton_Octet_insere->Pos_Y+2)),
 | 
					        Fenetre_Pos_Y+(Menu_Facteur_Y*(Bouton_Octet_insere->Pos_Y+2)),
 | 
				
			||||||
        Menu_Facteur_X*7, Menu_Facteur_Y*7, (Octet_insere)?CM_Blanc:CM_Noir);
 | 
					        Menu_Facteur_X*7, Menu_Facteur_Y*7, (Octet_insere)?CM_Blanc:CM_Noir);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(109, 69,11,11,"\030",0,1,0x0048); // 13
 | 
					  Fenetre_Definir_bouton_normal(109, 69,11,11,"\030",0,1,SDLK_UP); // 13
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(109, 93,11,11,"\031",0,1,0x0050); // 14
 | 
					  Fenetre_Definir_bouton_normal(109, 93,11,11,"\031",0,1,SDLK_DOWN); // 14
 | 
				
			||||||
  Fenetre_Definir_bouton_normal( 97, 81,11,11,"\033",0,1,0x004B); // 15
 | 
					  Fenetre_Definir_bouton_normal( 97, 81,11,11,"\033",0,1,SDLK_LEFT); // 15
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(121, 81,11,11,"\032",0,1,0x004D); // 16
 | 
					  Fenetre_Definir_bouton_normal(121, 81,11,11,"\032",0,1,SDLK_RIGHT); // 16
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  for (Indice=0; Indice<10; Indice++)
 | 
					  for (Indice=0; Indice<12; Indice++)
 | 
				
			||||||
    Fenetre_Definir_bouton_normal((Indice*23)+8,20,20,20,"",0,1,0x003B+Indice); // 17 -> 26
 | 
					    Fenetre_Definir_bouton_normal((Indice*23)+8,20,20,20,"",0,1,SDLK_F1+Indice); // 17 -> 28
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(238,20,20,20,"",0,1,0x0085); // 27
 | 
					 | 
				
			||||||
  Fenetre_Definir_bouton_normal(261,20,20,20,"",0,1,0x0086); // 28
 | 
					 | 
				
			||||||
  Dessiner_trames_predefinies();
 | 
					  Dessiner_trames_predefinies();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Orig_X=Fenetre_Pos_X+(Menu_Facteur_X*Fenetre_Liste_boutons_special->Pos_X);
 | 
					  Orig_X=Fenetre_Pos_X+(Menu_Facteur_X*Fenetre_Liste_boutons_special->Pos_X);
 | 
				
			||||||
@ -5264,19 +5255,19 @@ void Bouton_Effets(void)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  Ouvrir_fenetre(270,152,"Drawing modes (effects)");
 | 
					  Ouvrir_fenetre(270,152,"Drawing modes (effects)");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(  7, 19, 16,16,"",0,1,0x003B); // 1
 | 
					  Fenetre_Definir_bouton_normal(  7, 19, 16,16,"",0,1,SDLK_F1); // 1
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(  7, 38, 16,16,"",0,1,0x003C); // 2
 | 
					  Fenetre_Definir_bouton_normal(  7, 38, 16,16,"",0,1,SDLK_F2); // 2
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(  7, 57, 16,16,"",0,1,0x003D); // 3
 | 
					  Fenetre_Definir_bouton_normal(  7, 57, 16,16,"",0,1,SDLK_F3); // 3
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(  7, 76, 16,16,"",0,1,0x003E); // 4
 | 
					  Fenetre_Definir_bouton_normal(  7, 76, 16,16,"",0,1,SDLK_F4); // 4
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(  7, 95, 16,16,"",0,1,0x003F); // 5
 | 
					  Fenetre_Definir_bouton_normal(  7, 95, 16,16,"",0,1,SDLK_F5); // 5
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(153, 19, 16,16,"",0,1,0x0040); // 6
 | 
					  Fenetre_Definir_bouton_normal(153, 19, 16,16,"",0,1,SDLK_F6); // 6
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(153, 38, 16,16,"",0,1,0x0041); // 7
 | 
					  Fenetre_Definir_bouton_normal(153, 38, 16,16,"",0,1,SDLK_F7); // 7
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(153, 57, 16,16,"",0,1,0x0042); // 8
 | 
					  Fenetre_Definir_bouton_normal(153, 57, 16,16,"",0,1,SDLK_F8); // 8
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(153, 76, 16,16,"",0,1,0x0043); // 9
 | 
					  Fenetre_Definir_bouton_normal(153, 76, 16,16,"",0,1,SDLK_F9); // 9
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(153, 95, 16,16,"",0,1,0x0044); // 10
 | 
					  Fenetre_Definir_bouton_normal(153, 95, 16,16,"",0,1,SDLK_F10); // 10
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(195,131, 68,14,"Close",0,1,0x001C); // 11
 | 
					  Fenetre_Definir_bouton_normal(195,131, 68,14,"Close",0,1,SDLK_RETURN); // 11
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(  7,131, 68,14,"All off",0,1,0x0053); // 12
 | 
					  Fenetre_Definir_bouton_normal(  7,131, 68,14,"All off",0,1,SDLK_DELETE); // 12
 | 
				
			||||||
  Fenetre_Definir_bouton_normal( 83,131,104,14,"Feedback:   ",1,1,0x0021); // 13
 | 
					  Fenetre_Definir_bouton_normal( 83,131,104,14,"Feedback:   ",1,1,SDLK_f); // 13
 | 
				
			||||||
  Afficher_etat_feedback();
 | 
					  Afficher_etat_feedback();
 | 
				
			||||||
  Afficher_sprite_effet(0,  8,20);
 | 
					  Afficher_sprite_effet(0,  8,20);
 | 
				
			||||||
  Afficher_sprite_effet(0,  8,39);
 | 
					  Afficher_sprite_effet(0,  8,39);
 | 
				
			||||||
@ -5298,7 +5289,7 @@ void Bouton_Effets(void)
 | 
				
			|||||||
  {
 | 
					  {
 | 
				
			||||||
    Bouton_clicke=Fenetre_Bouton_clicke();
 | 
					    Bouton_clicke=Fenetre_Bouton_clicke();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (Touche==0x0001)
 | 
					    if (Touche==SDLK_ESCAPE)
 | 
				
			||||||
      Bouton_clicke=11;
 | 
					      Bouton_clicke=11;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    switch (Bouton_clicke)
 | 
					    switch (Bouton_clicke)
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										286
									
								
								clavier.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										286
									
								
								clavier.c
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,286 @@
 | 
				
			|||||||
 | 
					#include "global.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Table de correspondance des scancode de clavier IBM PC AT vers
 | 
				
			||||||
 | 
					// les symboles de touches SDL (sym).
 | 
				
			||||||
 | 
					// La correspondance est bonne si le clavier est QWERTY US, ou si
 | 
				
			||||||
 | 
					// l'utilisateur est sous Windows.
 | 
				
			||||||
 | 
					// Dans l'ordre des colonnes: Normal, +Shift, +Control, +Alt
 | 
				
			||||||
 | 
					const word Scancode_to_Sym[256][4] =
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					/* 00  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 01  Esc   */ { SDLK_ESCAPE      ,SDLK_ESCAPE      ,SDLK_ESCAPE      ,SDLK_ESCAPE      },  
 | 
				
			||||||
 | 
					/* 02  1 !   */ { SDLK_1           ,SDLK_1           ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 03  2 @   */ { SDLK_2           ,SDLK_2           ,SDLK_2           ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 04  3 #   */ { SDLK_3           ,SDLK_3           ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 05  4 $   */ { SDLK_4           ,SDLK_4           ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 06  5 %   */ { SDLK_5           ,SDLK_5           ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 07  6 ^   */ { SDLK_6           ,SDLK_6           ,SDLK_6           ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 08  7 &   */ { SDLK_7           ,SDLK_7           ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 09  8 *   */ { SDLK_8           ,SDLK_8           ,SDLK_8           ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 0A  9 (   */ { SDLK_9           ,SDLK_9           ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 0B  0 )   */ { SDLK_0           ,SDLK_0           ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 0C  - _   */ { SDLK_MINUS       ,SDLK_MINUS       ,SDLK_MINUS       ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 0D  = +   */ { SDLK_EQUALS      ,SDLK_EQUALS      ,SDLK_EQUALS      ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 0E  BkSpc */ { SDLK_BACKSPACE   ,SDLK_BACKSPACE   ,SDLK_BACKSPACE   ,SDLK_BACKSPACE   },  
 | 
				
			||||||
 | 
					/* 0F  Tab   */ { SDLK_TAB         ,SDLK_TAB         ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 10  Q     */ { SDLK_q           ,SDLK_q           ,SDLK_q           ,SDLK_q           },  
 | 
				
			||||||
 | 
					/* 11  W     */ { SDLK_w           ,SDLK_w           ,SDLK_w           ,SDLK_w           },  
 | 
				
			||||||
 | 
					/* 12  E     */ { SDLK_e           ,SDLK_e           ,SDLK_e           ,SDLK_e           },  
 | 
				
			||||||
 | 
					/* 13  R     */ { SDLK_r           ,SDLK_r           ,SDLK_r           ,SDLK_r           },  
 | 
				
			||||||
 | 
					/* 14  T     */ { SDLK_t           ,SDLK_t           ,SDLK_t           ,SDLK_t           },  
 | 
				
			||||||
 | 
					/* 15  Y     */ { SDLK_y           ,SDLK_y           ,SDLK_y           ,SDLK_y           },  
 | 
				
			||||||
 | 
					/* 16  U     */ { SDLK_u           ,SDLK_u           ,SDLK_u           ,SDLK_u           },  
 | 
				
			||||||
 | 
					/* 17  I     */ { SDLK_i           ,SDLK_i           ,SDLK_i           ,SDLK_i           },  
 | 
				
			||||||
 | 
					/* 18  O     */ { SDLK_o           ,SDLK_o           ,SDLK_o           ,SDLK_o           },  
 | 
				
			||||||
 | 
					/* 19  P     */ { SDLK_p           ,SDLK_p           ,SDLK_p           ,SDLK_p           },  
 | 
				
			||||||
 | 
					/* 1A  [     */ { SDLK_LEFTBRACKET ,SDLK_LEFTBRACKET ,SDLK_LEFTBRACKET ,SDLK_LEFTBRACKET },  
 | 
				
			||||||
 | 
					/* 1B  ]     */ { SDLK_RIGHTBRACKET,SDLK_RIGHTBRACKET,SDLK_RIGHTBRACKET,SDLK_RIGHTBRACKET},  
 | 
				
			||||||
 | 
					/* 1C  Retrn */ { SDLK_RETURN      ,SDLK_RETURN      ,SDLK_RETURN      ,SDLK_RETURN      },  
 | 
				
			||||||
 | 
					/* 1D  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 1E  A     */ { SDLK_a           ,SDLK_a           ,SDLK_a           ,SDLK_a           },  
 | 
				
			||||||
 | 
					/* 1F  S     */ { SDLK_s           ,SDLK_s           ,SDLK_s           ,SDLK_s           },  
 | 
				
			||||||
 | 
					/* 20  D     */ { SDLK_d           ,SDLK_d           ,SDLK_d           ,SDLK_d           },  
 | 
				
			||||||
 | 
					/* 21  F     */ { SDLK_f           ,SDLK_f           ,SDLK_f           ,SDLK_f           },  
 | 
				
			||||||
 | 
					/* 22  G     */ { SDLK_g           ,SDLK_g           ,SDLK_g           ,SDLK_g           },  
 | 
				
			||||||
 | 
					/* 23  H     */ { SDLK_h           ,SDLK_h           ,SDLK_h           ,SDLK_h           },  
 | 
				
			||||||
 | 
					/* 24  J     */ { SDLK_j           ,SDLK_j           ,SDLK_j           ,SDLK_j           },  
 | 
				
			||||||
 | 
					/* 25  K     */ { SDLK_k           ,SDLK_k           ,SDLK_k           ,SDLK_k           },  
 | 
				
			||||||
 | 
					/* 26  L     */ { SDLK_l           ,SDLK_l           ,SDLK_l           ,SDLK_l           },  
 | 
				
			||||||
 | 
					/* 27  ; :   */ { SDLK_SEMICOLON   ,SDLK_SEMICOLON   ,SDLK_SEMICOLON   ,SDLK_SEMICOLON   },  
 | 
				
			||||||
 | 
					/* 28  '     */ { SDLK_QUOTE       ,SDLK_QUOTE       ,SDLK_UNKNOWN     ,SDLK_QUOTE       },  
 | 
				
			||||||
 | 
					/* 29  ` ~   */ { SDLK_BACKQUOTE   ,SDLK_BACKQUOTE   ,SDLK_UNKNOWN     ,SDLK_BACKQUOTE   },  
 | 
				
			||||||
 | 
					/* 2A  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 2B  \\    */ { SDLK_BACKSLASH   ,SDLK_BACKSLASH   ,SDLK_BACKSLASH   ,SDLK_BACKSLASH   },  
 | 
				
			||||||
 | 
					/* 2C  Z     */ { SDLK_z           ,SDLK_z           ,SDLK_z           ,SDLK_z           },  
 | 
				
			||||||
 | 
					/* 2D  X     */ { SDLK_x           ,SDLK_x           ,SDLK_x           ,SDLK_x           },  
 | 
				
			||||||
 | 
					/* 2E  C     */ { SDLK_c           ,SDLK_c           ,SDLK_c           ,SDLK_c           },  
 | 
				
			||||||
 | 
					/* 2F  V     */ { SDLK_v           ,SDLK_v           ,SDLK_v           ,SDLK_v           },  
 | 
				
			||||||
 | 
					/* 30  B     */ { SDLK_b           ,SDLK_b           ,SDLK_b           ,SDLK_b           },  
 | 
				
			||||||
 | 
					/* 31  N     */ { SDLK_n           ,SDLK_n           ,SDLK_n           ,SDLK_n           },  
 | 
				
			||||||
 | 
					/* 32  M     */ { SDLK_m           ,SDLK_m           ,SDLK_m           ,SDLK_m           },  
 | 
				
			||||||
 | 
					/* 33  , <   */ { SDLK_COMMA       ,SDLK_COMMA       ,SDLK_UNKNOWN     ,SDLK_COMMA       },  
 | 
				
			||||||
 | 
					/* 34  . >   */ { SDLK_PERIOD      ,SDLK_PERIOD      ,SDLK_UNKNOWN     ,SDLK_PERIOD      },  
 | 
				
			||||||
 | 
					/* 35  / ?   */ { SDLK_SLASH       ,SDLK_SLASH       ,SDLK_UNKNOWN     ,SDLK_SLASH       },  
 | 
				
			||||||
 | 
					/* 36  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 37  Grey* */ { SDLK_KP_MULTIPLY ,SDLK_KP_MULTIPLY ,SDLK_UNKNOWN     ,SDLK_KP_MULTIPLY },  
 | 
				
			||||||
 | 
					/* 38  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 39  Space */ { SDLK_SPACE       ,SDLK_SPACE       ,SDLK_SPACE       ,SDLK_SPACE       },  
 | 
				
			||||||
 | 
					/* 3A  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 3B  F1    */ { SDLK_F1          ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 3C  F2    */ { SDLK_F2          ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 3D  F3    */ { SDLK_F3          ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 3E  F4    */ { SDLK_F4          ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 3F  F5    */ { SDLK_F5          ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 40  F6    */ { SDLK_F6          ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 41  F7    */ { SDLK_F7          ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 42  F8    */ { SDLK_F8          ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 43  F9    */ { SDLK_F9          ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 44  F10   */ { SDLK_F10         ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 45  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 46  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 47  Home  */ { SDLK_HOME        ,SDLK_HOME        ,SDLK_UNKNOWN     ,SDLK_HOME        },  
 | 
				
			||||||
 | 
					/* 48  Up    */ { SDLK_UP          ,SDLK_UP          ,SDLK_UNKNOWN     ,SDLK_UP          },  
 | 
				
			||||||
 | 
					/* 49  PgUp  */ { SDLK_PAGEUP      ,SDLK_PAGEUP      ,SDLK_UNKNOWN     ,SDLK_PAGEUP      },  
 | 
				
			||||||
 | 
					/* 4A  Grey- */ { SDLK_KP_MINUS    ,SDLK_KP_MINUS    ,SDLK_UNKNOWN     ,SDLK_KP_MINUS    },  
 | 
				
			||||||
 | 
					/* 4B  Left  */ { SDLK_LEFT        ,SDLK_LEFT        ,SDLK_UNKNOWN     ,SDLK_LEFT        },  
 | 
				
			||||||
 | 
					/* 4C  Kpad5 */ { SDLK_KP5         ,SDLK_KP5         ,SDLK_UNKNOWN     ,SDLK_KP5         },  
 | 
				
			||||||
 | 
					/* 4D  Right */ { SDLK_RIGHT       ,SDLK_RIGHT       ,SDLK_UNKNOWN     ,SDLK_RIGHT       },  
 | 
				
			||||||
 | 
					/* 4E  Grey+ */ { SDLK_KP_PLUS     ,SDLK_KP_PLUS     ,SDLK_UNKNOWN     ,SDLK_KP_PLUS     },  
 | 
				
			||||||
 | 
					/* 4F  End   */ { SDLK_END         ,SDLK_END         ,SDLK_UNKNOWN     ,SDLK_END         },  
 | 
				
			||||||
 | 
					/* 50  Down  */ { SDLK_DOWN        ,SDLK_DOWN        ,SDLK_UNKNOWN     ,SDLK_DOWN        },  
 | 
				
			||||||
 | 
					/* 51  PgDn  */ { SDLK_PAGEDOWN    ,SDLK_PAGEDOWN    ,SDLK_UNKNOWN     ,SDLK_PAGEDOWN    },  
 | 
				
			||||||
 | 
					/* 52  Ins   */ { SDLK_INSERT      ,SDLK_INSERT      ,SDLK_UNKNOWN     ,SDLK_INSERT      },  
 | 
				
			||||||
 | 
					/* 53  Del   */ { SDLK_DELETE      ,SDLK_DELETE      ,SDLK_UNKNOWN     ,SDLK_DELETE      },  
 | 
				
			||||||
 | 
					/* 54  ???   */ { SDLK_UNKNOWN     ,SDLK_F1          ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 55  ???   */ { SDLK_UNKNOWN     ,SDLK_F2          ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 56  Lft|  */ { SDLK_UNKNOWN     ,SDLK_F3          ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 57  ???   */ { SDLK_UNKNOWN     ,SDLK_F4          ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 58  ???   */ { SDLK_UNKNOWN     ,SDLK_F5          ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 59  ???   */ { SDLK_UNKNOWN     ,SDLK_F6          ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 5A  ???   */ { SDLK_UNKNOWN     ,SDLK_F7          ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 5B  ???   */ { SDLK_UNKNOWN     ,SDLK_F8          ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 5C  ???   */ { SDLK_UNKNOWN     ,SDLK_F9          ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 5D  ???   */ { SDLK_UNKNOWN     ,SDLK_F10         ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 5E  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_F1          ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 5F  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_F2          ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 60  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_F3          ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 61  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_F4          ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 62  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_F5          ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 63  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_F6          ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 64  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_F7          ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 65  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_F8          ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 66  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_F9          ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 67  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_F10         ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 68  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_F1          },  
 | 
				
			||||||
 | 
					/* 69  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_F2          },  
 | 
				
			||||||
 | 
					/* 6A  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_F3          },  
 | 
				
			||||||
 | 
					/* 6B  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_F4          },  
 | 
				
			||||||
 | 
					/* 6C  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_F5          },  
 | 
				
			||||||
 | 
					/* 6D  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_F6          },  
 | 
				
			||||||
 | 
					/* 6E  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_F7          },  
 | 
				
			||||||
 | 
					/* 6F  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_F8          },  
 | 
				
			||||||
 | 
					/* 70  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_F9          },  
 | 
				
			||||||
 | 
					/* 71  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_F10         },  
 | 
				
			||||||
 | 
					/* 72  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 73  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_LEFT        ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 74  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_RIGHT       ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 75  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_END         ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 76  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_PAGEDOWN    ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 77  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_HOME        ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 78  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_1           },  
 | 
				
			||||||
 | 
					/* 79  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_2           },  
 | 
				
			||||||
 | 
					/* 7A  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_3           },  
 | 
				
			||||||
 | 
					/* 7B  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_4           },  
 | 
				
			||||||
 | 
					/* 7C  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_5           },  
 | 
				
			||||||
 | 
					/* 7D  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_6           },  
 | 
				
			||||||
 | 
					/* 7E  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_7           },  
 | 
				
			||||||
 | 
					/* 7F  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_8           },  
 | 
				
			||||||
 | 
					/* 80  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_9           },  
 | 
				
			||||||
 | 
					/* 81  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_0           },  
 | 
				
			||||||
 | 
					/* 82  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_MINUS       },  
 | 
				
			||||||
 | 
					/* 83  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_EQUALS      },  
 | 
				
			||||||
 | 
					/* 84  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_PAGEUP      ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 85  F11   */ { SDLK_F11         ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 86  F12   */ { SDLK_F12         ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 87  ???   */ { SDLK_UNKNOWN     ,SDLK_F11         ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 88  ???   */ { SDLK_UNKNOWN     ,SDLK_F12         ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 89  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_F11         ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 8A  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_F12         ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 8B  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_F11         },  
 | 
				
			||||||
 | 
					/* 8C  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_F12         },  
 | 
				
			||||||
 | 
					/* 8D  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UP          ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 8E  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_KP_MINUS    ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 8F  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_KP5         ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 90  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_KP_PLUS     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 91  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_DOWN        ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 92  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_INSERT      ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 93  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_DELETE      ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 94  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_TAB         ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 95  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_KP_DIVIDE   ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 96  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_KP_MULTIPLY ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 97  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_HOME        },  
 | 
				
			||||||
 | 
					/* 98  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UP          },  
 | 
				
			||||||
 | 
					/* 99  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_PAGEUP      },  
 | 
				
			||||||
 | 
					/* 9A  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 9B  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_LEFT        },  
 | 
				
			||||||
 | 
					/* 9C  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 9D  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_RIGHT       },  
 | 
				
			||||||
 | 
					/* 9E  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* 9F  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_END         },  
 | 
				
			||||||
 | 
					/* A0  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_DOWN        },  
 | 
				
			||||||
 | 
					/* A1  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_PAGEUP      },  
 | 
				
			||||||
 | 
					/* A2  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_INSERT      },  
 | 
				
			||||||
 | 
					/* A3  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_DELETE      },  
 | 
				
			||||||
 | 
					/* A4  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_KP_DIVIDE   },  
 | 
				
			||||||
 | 
					/* A5  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_TAB         },  
 | 
				
			||||||
 | 
					/* A6  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_KP_ENTER    },  
 | 
				
			||||||
 | 
					/* A7  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* A8  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* A9  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* AA  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* AB  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* AC  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* AD  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* AE  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* AF  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* B0  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* B1  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* B2  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* B3  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* B4  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* B5  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* B6  Win L */ { SDLK_LSUPER      ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* B7  Win R */ { SDLK_RSUPER      ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* B8  Win M */ { SDLK_MENU        ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* B9  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* BA  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* BB  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* BC  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* BD  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* BE  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* BF  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* C0  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* C1  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* C2  ???   */ { SDLK_UNKNOWN     ,SDLK_LSUPER      ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* C3  ???   */ { SDLK_UNKNOWN     ,SDLK_RSUPER      ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* C4  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* C5  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* C6  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* C7  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* C8  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* C9  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* CA  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* CB  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* CC  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* CD  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* CE  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_LSUPER      ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* CF  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_RSUPER      ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* D0  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_MENU        ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* D1  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* D2  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* D3  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* D4  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* D5  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* D6  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* D7  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* D8  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* D9  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* DA  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_LSUPER      },  
 | 
				
			||||||
 | 
					/* DB  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_RSUPER      },  
 | 
				
			||||||
 | 
					/* DC  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_MENU        },  
 | 
				
			||||||
 | 
					/* DD  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* DE  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* DF  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* E0  Enter */ { SDLK_KP_ENTER    ,SDLK_KP_ENTER    ,SDLK_KP_ENTER    ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* E1  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* E2  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* E3  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* E4  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* E5  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* E6  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* E7  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* E8  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* E9  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* EA  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* EB  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* EC  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* ED  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* EE  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* EF  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* F0  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* F1  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* F2  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* F3  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* F4  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* F5  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* F6  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* F7  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* F8  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* F9  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* FA  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* FB  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* FC  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* FD  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* FE  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					/* FF  ???   */ { SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     ,SDLK_UNKNOWN     },  
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Conversion de l'ancien codage des touches:
 | 
				
			||||||
 | 
					// 0x00FF le scancode    (maintenant code sym sur 0x0FFF)
 | 
				
			||||||
 | 
					// 0x0100 shift          (maintenant 0x1000)
 | 
				
			||||||
 | 
					// 0x0200 control        (maintenant 0x2000)
 | 
				
			||||||
 | 
					// 0x0400 alt            (maintenant 0x4000)
 | 
				
			||||||
 | 
					word Touche_pour_scancode(word scancode)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  if (scancode & 0x0400)
 | 
				
			||||||
 | 
					    return Scancode_to_Sym[scancode & 0xFF][3] |
 | 
				
			||||||
 | 
					     (scancode & 0x0700) << 4;
 | 
				
			||||||
 | 
					  else if (scancode & 0x0200)
 | 
				
			||||||
 | 
					    return Scancode_to_Sym[scancode & 0xFF][2] |
 | 
				
			||||||
 | 
					     (scancode & 0x0700) << 4;
 | 
				
			||||||
 | 
					  else if (scancode & 0x0100)
 | 
				
			||||||
 | 
					    return Scancode_to_Sym[scancode & 0xFF][1] |
 | 
				
			||||||
 | 
					     (scancode & 0x0700) << 4;
 | 
				
			||||||
 | 
					  else
 | 
				
			||||||
 | 
					    return Scancode_to_Sym[scancode & 0xFF][0];
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										6
									
								
								const.h
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								const.h
									
									
									
									
									
								
							@ -8,11 +8,11 @@
 | 
				
			|||||||
#define M_2PI 6.28318530717958647692528676656
 | 
					#define M_2PI 6.28318530717958647692528676656
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Note: La taille du fichier GFX2.DAT est définie au début de INIT.C !
 | 
					// Note: La taille du fichier GFX2.DAT est définie au début de INIT.C !
 | 
				
			||||||
#define POURCENTAGE_VERSION     "96.5%" // Libellé du pourcentage de la version ß
 | 
					#define POURCENTAGE_VERSION     "97.0%" // Libellé du pourcentage de la version ß
 | 
				
			||||||
#define VERSION1                  2     // |
 | 
					#define VERSION1                  2     // |
 | 
				
			||||||
#define VERSION2                  0     // |_ Numéro de version découpé en
 | 
					#define VERSION2                  0     // |_ Numéro de version découpé en
 | 
				
			||||||
#define BETA1                     96    // |  plusieurs parties => 2.0 ß95.5%
 | 
					#define BETA1                     97    // |  plusieurs parties => 2.0 ß95.5%
 | 
				
			||||||
#define BETA2                     5     // |
 | 
					#define BETA2                     0     // |
 | 
				
			||||||
#define ALPHA_BETA                "ß"   // Type de la version "Þ" ou "ß"
 | 
					#define ALPHA_BETA                "ß"   // Type de la version "Þ" ou "ß"
 | 
				
			||||||
#define TAILLE_FICHIER_CONFIG     10351 // Taille du fichier GFX2.CFG
 | 
					#define TAILLE_FICHIER_CONFIG     10351 // Taille du fichier GFX2.CFG
 | 
				
			||||||
#define NB_MODES_VIDEO            60    // Nombre de modes vidéo
 | 
					#define NB_MODES_VIDEO            60    // Nombre de modes vidéo
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										178
									
								
								divers.c
									
									
									
									
									
								
							
							
						
						
									
										178
									
								
								divers.c
									
									
									
									
									
								
							@ -108,6 +108,158 @@ void Sensibilite_souris(word X,word Y)
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
        puts("Sensibilite_souris non implémenté!");
 | 
					        puts("Sensibilite_souris non implémenté!");
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					word Touche_SDL(SDL_keysym Sym)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  word Retour = 0;
 | 
				
			||||||
 | 
					  // On ignore shift, alt et control isolés.
 | 
				
			||||||
 | 
					  if (Sym.sym == SDLK_RSHIFT || Sym.sym == SDLK_LSHIFT ||
 | 
				
			||||||
 | 
					      Sym.sym == SDLK_RCTRL  || Sym.sym == SDLK_LCTRL ||
 | 
				
			||||||
 | 
					      Sym.sym == SDLK_RALT   || Sym.sym == SDLK_LALT ||
 | 
				
			||||||
 | 
					      Sym.sym == SDLK_MODE) // AltGr
 | 
				
			||||||
 | 
					  return 0;
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  // Les touches qui n'ont qu'une valeur unicode (très rares)
 | 
				
			||||||
 | 
					  // seront codées sur 11 bits, le 12e bit est mis à 1 (0x0800)
 | 
				
			||||||
 | 
					  if (Sym.sym > 0)
 | 
				
			||||||
 | 
					    Retour = Sym.sym;
 | 
				
			||||||
 | 
					  else if (Sym.unicode > 0)
 | 
				
			||||||
 | 
					    Retour = (Sym.unicode & 0x07FF) | 0x0800;
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  if (Sym.mod & (KMOD_LSHIFT | KMOD_RSHIFT))
 | 
				
			||||||
 | 
					    Retour |= 0x1000;
 | 
				
			||||||
 | 
					  if (Sym.mod & (KMOD_LCTRL | KMOD_RCTRL))
 | 
				
			||||||
 | 
					    Retour |= 0x2000;
 | 
				
			||||||
 | 
					  if (Sym.mod & (KMOD_LALT | KMOD_RALT | KMOD_MODE))
 | 
				
			||||||
 | 
					    Retour |= 0x4000;
 | 
				
			||||||
 | 
					  return Retour;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const char * Nom_touche(word Touche)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  typedef struct
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					  word Sym;
 | 
				
			||||||
 | 
					  char *Nom_touche;
 | 
				
			||||||
 | 
					  } S_Libelle_touche;
 | 
				
			||||||
 | 
					  S_Libelle_touche Table_touches[] =
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    { SDLK_BACKSPACE   , "Backspace" },
 | 
				
			||||||
 | 
					    { SDLK_TAB         , "Tab" },
 | 
				
			||||||
 | 
					    { SDLK_CLEAR       , "Clear" },
 | 
				
			||||||
 | 
					    { SDLK_RETURN      , "Return" },
 | 
				
			||||||
 | 
					    { SDLK_PAUSE       , "Pause" },
 | 
				
			||||||
 | 
					    { SDLK_ESCAPE      , "Esc" },
 | 
				
			||||||
 | 
					    { SDLK_DELETE      , "Del" },
 | 
				
			||||||
 | 
					    { SDLK_KP0         , "KP 0" },
 | 
				
			||||||
 | 
					    { SDLK_KP1         , "KP 1" },
 | 
				
			||||||
 | 
					    { SDLK_KP2         , "KP 2" },
 | 
				
			||||||
 | 
					    { SDLK_KP3         , "KP 3" },
 | 
				
			||||||
 | 
					    { SDLK_KP4         , "KP 4" },
 | 
				
			||||||
 | 
					    { SDLK_KP5         , "KP 5" },
 | 
				
			||||||
 | 
					    { SDLK_KP6         , "KP 6" },
 | 
				
			||||||
 | 
					    { SDLK_KP7         , "KP 7" },
 | 
				
			||||||
 | 
					    { SDLK_KP8         , "KP 8" },
 | 
				
			||||||
 | 
					    { SDLK_KP9         , "KP 9" },
 | 
				
			||||||
 | 
					    { SDLK_KP_PERIOD   , "KP ." },
 | 
				
			||||||
 | 
					    { SDLK_KP_DIVIDE   , "KP /" },
 | 
				
			||||||
 | 
					    { SDLK_KP_MULTIPLY,  "KP *" },
 | 
				
			||||||
 | 
					    { SDLK_KP_MINUS    , "KP -" },
 | 
				
			||||||
 | 
					    { SDLK_KP_PLUS     , "KP Plus" },
 | 
				
			||||||
 | 
					    { SDLK_KP_ENTER    , "KP Enter" },
 | 
				
			||||||
 | 
					    { SDLK_KP_EQUALS   , "KP =" },
 | 
				
			||||||
 | 
					    { SDLK_UP          , "Up" },
 | 
				
			||||||
 | 
					    { SDLK_DOWN        , "Down" },
 | 
				
			||||||
 | 
					    { SDLK_RIGHT       , "Right" },
 | 
				
			||||||
 | 
					    { SDLK_LEFT        , "Left" },
 | 
				
			||||||
 | 
					    { SDLK_INSERT      , "Ins" },
 | 
				
			||||||
 | 
					    { SDLK_HOME        , "Home" },
 | 
				
			||||||
 | 
					    { SDLK_END         , "End" },
 | 
				
			||||||
 | 
					    { SDLK_PAGEUP      , "PgUp" },
 | 
				
			||||||
 | 
					    { SDLK_PAGEDOWN    , "PgDn" },
 | 
				
			||||||
 | 
					    { SDLK_F1          , "F1" },
 | 
				
			||||||
 | 
					    { SDLK_F2          , "F2" },
 | 
				
			||||||
 | 
					    { SDLK_F3          , "F3" },
 | 
				
			||||||
 | 
					    { SDLK_F4          , "F4" },
 | 
				
			||||||
 | 
					    { SDLK_F5          , "F5" },
 | 
				
			||||||
 | 
					    { SDLK_F6          , "F6" },
 | 
				
			||||||
 | 
					    { SDLK_F7          , "F7" },
 | 
				
			||||||
 | 
					    { SDLK_F8          , "F8" },
 | 
				
			||||||
 | 
					    { SDLK_F9          , "F9" },
 | 
				
			||||||
 | 
					    { SDLK_F10         , "F10" },
 | 
				
			||||||
 | 
					    { SDLK_F11         , "F11" },
 | 
				
			||||||
 | 
					    { SDLK_F12         , "F12" },
 | 
				
			||||||
 | 
					    { SDLK_F13         , "F13" },
 | 
				
			||||||
 | 
					    { SDLK_F14         , "F14" },
 | 
				
			||||||
 | 
					    { SDLK_F15         , "F15" },
 | 
				
			||||||
 | 
					    { SDLK_NUMLOCK     , "NumLock" },
 | 
				
			||||||
 | 
					    { SDLK_CAPSLOCK    , "CapsLck" },
 | 
				
			||||||
 | 
					    { SDLK_SCROLLOCK   , "ScrlLock" },
 | 
				
			||||||
 | 
					    { SDLK_RSHIFT      , "RShift" },
 | 
				
			||||||
 | 
					    { SDLK_LSHIFT      , "LShift" },
 | 
				
			||||||
 | 
					    { SDLK_RCTRL       , "RCtrol" },
 | 
				
			||||||
 | 
					    { SDLK_LCTRL       , "LCtrl" },
 | 
				
			||||||
 | 
					    { SDLK_RALT        , "RAlt" },
 | 
				
			||||||
 | 
					    { SDLK_LALT        , "LAlt" },
 | 
				
			||||||
 | 
					    { SDLK_RMETA       , "RMeta" },
 | 
				
			||||||
 | 
					    { SDLK_LMETA       , "LMeta" },
 | 
				
			||||||
 | 
					    { SDLK_LSUPER      , "LWin" },
 | 
				
			||||||
 | 
					    { SDLK_RSUPER      , "RWin" },
 | 
				
			||||||
 | 
					    { SDLK_MODE        , "AltGr" },
 | 
				
			||||||
 | 
					    { SDLK_COMPOSE     , "Comp" },
 | 
				
			||||||
 | 
					    { SDLK_HELP        , "Help" },
 | 
				
			||||||
 | 
					    { SDLK_PRINT       , "Print" },
 | 
				
			||||||
 | 
					    { SDLK_SYSREQ      , "SysReq" },
 | 
				
			||||||
 | 
					    { SDLK_BREAK       , "Break" },
 | 
				
			||||||
 | 
					    { SDLK_MENU        , "Menu" },
 | 
				
			||||||
 | 
					    { SDLK_POWER       , "Power" },
 | 
				
			||||||
 | 
					    { SDLK_EURO        , "Euro" },
 | 
				
			||||||
 | 
					    { SDLK_UNDO        , "Undo" }
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  int Indice;
 | 
				
			||||||
 | 
					  static char Buffer[25];
 | 
				
			||||||
 | 
					  Buffer[0] = '\0';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (Touche & 0x2000)
 | 
				
			||||||
 | 
					    strcat(Buffer, "Ctrl+");
 | 
				
			||||||
 | 
					  if (Touche & 0x4000)
 | 
				
			||||||
 | 
					    strcat(Buffer, "Alt+");
 | 
				
			||||||
 | 
					  if (Touche & 0x1000)
 | 
				
			||||||
 | 
					    strcat(Buffer, "Shift+");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  if (Touche & 0x8000)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    sprintf(Buffer+strlen(Buffer), "[%d]", Touche & 0xFFF);
 | 
				
			||||||
 | 
					    return Buffer;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  Touche = Touche & 0xFFF;
 | 
				
			||||||
 | 
					  // Touches ASCII
 | 
				
			||||||
 | 
					  if (Touche>=' ' && Touche < 127)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    sprintf(Buffer+strlen(Buffer), "'%c'", Touche);
 | 
				
			||||||
 | 
					    return Buffer;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  // Touches 'World'
 | 
				
			||||||
 | 
					  if (Touche>=SDLK_WORLD_0 && Touche <= SDLK_WORLD_95)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    sprintf(Buffer+strlen(Buffer), "w%d", Touche - SDLK_WORLD_0);
 | 
				
			||||||
 | 
					    return Buffer;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					                             
 | 
				
			||||||
 | 
					  // Touches au libellé connu
 | 
				
			||||||
 | 
					  for (Indice=0; Indice < sizeof(Table_touches)/sizeof(S_Libelle_touche);Indice++)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    if (Touche == Table_touches[Indice].Sym)
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      sprintf(Buffer+strlen(Buffer), "%s", Table_touches[Indice].Nom_touche);
 | 
				
			||||||
 | 
					      return Buffer;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  // Autres touches inconnues
 | 
				
			||||||
 | 
					  sprintf(Buffer+strlen(Buffer), "(%d)", Touche);
 | 
				
			||||||
 | 
					  return Buffer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void Get_input(void)
 | 
					void Get_input(void)
 | 
				
			||||||
//Gestion des évènements: mouvement de la souris, clic sur les boutons, et utilisation du clavier.
 | 
					//Gestion des évènements: mouvement de la souris, clic sur les boutons, et utilisation du clavier.
 | 
				
			||||||
@ -144,31 +296,7 @@ void Get_input(void)
 | 
				
			|||||||
            {
 | 
					            {
 | 
				
			||||||
                byte ok = 0;
 | 
					                byte ok = 0;
 | 
				
			||||||
                //Appui sur une touche du clavier
 | 
					                //Appui sur une touche du clavier
 | 
				
			||||||
 | 
					            		Touche = Touche_SDL(event.key.keysym);
 | 
				
			||||||
                //On met le scancode dans Touche"
 | 
					 | 
				
			||||||
                Touche = event.key.keysym.scancode;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                //...et le code ASCII dans Touche_ASCII
 | 
					 | 
				
			||||||
                Touche_ASCII=event.key.keysym.sym;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                //On ajoute aussi l'état des modifiers
 | 
					 | 
				
			||||||
                #define ekkm event.key.keysym.mod
 | 
					 | 
				
			||||||
                if (ekkm & (KMOD_LSHIFT | KMOD_RSHIFT))
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    Touche |= 0x0100;
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
                if (ekkm & (KMOD_LCTRL | KMOD_RCTRL))
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    Touche |= 0x0200;
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
                if (ekkm & (KMOD_LALT | KMOD_RALT))
 | 
					 | 
				
			||||||
                {
 | 
					 | 
				
			||||||
                    Touche |= 0x0400;
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
                #undef ekkm
 | 
					 | 
				
			||||||
                
 | 
					 | 
				
			||||||
                //TODO revoir les scancodes qui sont dans le tableau
 | 
					 | 
				
			||||||
                //Config_Touche, ça correspond à rien !
 | 
					 | 
				
			||||||
                
 | 
					                
 | 
				
			||||||
                //Cas particulier: déplacement du curseur avec haut bas gauche droite
 | 
					                //Cas particulier: déplacement du curseur avec haut bas gauche droite
 | 
				
			||||||
                //On doit interpréter ça comme un mvt de la souris
 | 
					                //On doit interpréter ça comme un mvt de la souris
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										2
									
								
								global.h
									
									
									
									
									
								
							
							
						
						
									
										2
									
								
								global.h
									
									
									
									
									
								
							@ -108,7 +108,7 @@ GLOBAL struct Composantes Coul_menu_pref[4];
 | 
				
			|||||||
GLOBAL word Mouse_X; // Abscisse de la souris
 | 
					GLOBAL word Mouse_X; // Abscisse de la souris
 | 
				
			||||||
GLOBAL word Mouse_Y; // Ordonnée de la souris
 | 
					GLOBAL word Mouse_Y; // Ordonnée de la souris
 | 
				
			||||||
GLOBAL byte Mouse_K; // Etat des boutons de la souris
 | 
					GLOBAL byte Mouse_K; // Etat des boutons de la souris
 | 
				
			||||||
GLOBAL word Touche;
 | 
					GLOBAL dword Touche;
 | 
				
			||||||
GLOBAL Uint8* Etat_Du_Clavier;  // Scancode de la touche en cours et etat des touches de ctrl
 | 
					GLOBAL Uint8* Etat_Du_Clavier;  // Scancode de la touche en cours et etat des touches de ctrl
 | 
				
			||||||
GLOBAL byte Touche_ASCII; // Code ASCII de la touche en cours
 | 
					GLOBAL byte Touche_ASCII; // Code ASCII de la touche en cours
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										12
									
								
								graph.c
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								graph.c
									
									
									
									
									
								
							@ -2909,16 +2909,16 @@ byte Demande_de_confirmation(char * Message)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  Print_dans_fenetre((Largeur_de_la_fenetre>>1)-(strlen(Message)<<2),20,Message,CM_Noir,CM_Clair);
 | 
					  Print_dans_fenetre((Largeur_de_la_fenetre>>1)-(strlen(Message)<<2),20,Message,CM_Noir,CM_Clair);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_normal((Largeur_de_la_fenetre/3)-20     ,37,40,14,"Yes",1,1,0x0015); // 1
 | 
					  Fenetre_Definir_bouton_normal((Largeur_de_la_fenetre/3)-20     ,37,40,14,"Yes",1,1,SDLK_y); // 1
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(((Largeur_de_la_fenetre<<1)/3)-20,37,40,14,"No" ,1,1,0x0031); // 2
 | 
					  Fenetre_Definir_bouton_normal(((Largeur_de_la_fenetre<<1)/3)-20,37,40,14,"No" ,1,1,SDLK_n); // 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Afficher_curseur();
 | 
					  Afficher_curseur();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  do
 | 
					  do
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    Bouton_clicke=Fenetre_Bouton_clicke();
 | 
					    Bouton_clicke=Fenetre_Bouton_clicke();
 | 
				
			||||||
    if (Touche==0x001C) Bouton_clicke=1;
 | 
					    if (Touche==SDLK_RETURN) Bouton_clicke=1;
 | 
				
			||||||
    if (Touche==0x0001) Bouton_clicke=2;
 | 
					    if (Touche==SDLK_ESCAPE) Bouton_clicke=2;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  while (Bouton_clicke<=0);
 | 
					  while (Bouton_clicke<=0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -2943,12 +2943,12 @@ void Warning_message(char * Message)
 | 
				
			|||||||
  Ouvrir_fenetre(Largeur_de_la_fenetre,60,"Warning!");
 | 
					  Ouvrir_fenetre(Largeur_de_la_fenetre,60,"Warning!");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Print_dans_fenetre((Largeur_de_la_fenetre>>1)-(strlen(Message)<<2),20,Message,CM_Noir,CM_Clair);
 | 
					  Print_dans_fenetre((Largeur_de_la_fenetre>>1)-(strlen(Message)<<2),20,Message,CM_Noir,CM_Clair);
 | 
				
			||||||
  Fenetre_Definir_bouton_normal((Largeur_de_la_fenetre>>1)-20     ,37,40,14,"OK",1,1,0x001C); // 1
 | 
					  Fenetre_Definir_bouton_normal((Largeur_de_la_fenetre>>1)-20     ,37,40,14,"OK",1,1,SDLK_RETURN); // 1
 | 
				
			||||||
  Afficher_curseur();
 | 
					  Afficher_curseur();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  do
 | 
					  do
 | 
				
			||||||
    Bouton_clicke=Fenetre_Bouton_clicke();
 | 
					    Bouton_clicke=Fenetre_Bouton_clicke();
 | 
				
			||||||
  while ((Bouton_clicke<=0) && (Touche!=0x0001) && (Touche!=0x0018));
 | 
					  while ((Bouton_clicke<=0) && (Touche!=SDLK_ESCAPE) && (Touche!=SDLK_o));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fermer_fenetre();
 | 
					  Fermer_fenetre();
 | 
				
			||||||
  Afficher_curseur();
 | 
					  Afficher_curseur();
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										18
									
								
								init.c
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								init.c
									
									
									
									
									
								
							@ -21,6 +21,7 @@
 | 
				
			|||||||
#include "operatio.h"
 | 
					#include "operatio.h"
 | 
				
			||||||
#include "divers.h"
 | 
					#include "divers.h"
 | 
				
			||||||
#include "erreurs.h"
 | 
					#include "erreurs.h"
 | 
				
			||||||
 | 
					#include "clavier.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "errno.h"
 | 
					#include "errno.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1698,6 +1699,7 @@ int Charger_CFG(int Tout_charger)
 | 
				
			|||||||
  struct Config_Infos_touche CFG_Infos_touche;
 | 
					  struct Config_Infos_touche CFG_Infos_touche;
 | 
				
			||||||
  struct Config_Mode_video   CFG_Mode_video;
 | 
					  struct Config_Mode_video   CFG_Mode_video;
 | 
				
			||||||
  struct stat Informations_Fichier;
 | 
					  struct stat Informations_Fichier;
 | 
				
			||||||
 | 
					  int Conversion_touches = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  strcpy(Nom_du_fichier,Repertoire_du_programme);
 | 
					  strcpy(Nom_du_fichier,Repertoire_du_programme);
 | 
				
			||||||
  strcat(Nom_du_fichier,"gfx2.cfg");
 | 
					  strcat(Nom_du_fichier,"gfx2.cfg");
 | 
				
			||||||
@ -1713,7 +1715,17 @@ int Charger_CFG(int Tout_charger)
 | 
				
			|||||||
    || memcmp(CFG_Header.Signature,"CFG",3) )
 | 
					    || memcmp(CFG_Header.Signature,"CFG",3) )
 | 
				
			||||||
      goto Erreur_lecture_config;
 | 
					      goto Erreur_lecture_config;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if ( (CFG_Header.Version1!=VERSION1)
 | 
					  // Version DOS de Robinson et X-Man
 | 
				
			||||||
 | 
					  if ( (CFG_Header.Version1== 2)
 | 
				
			||||||
 | 
					    && (CFG_Header.Version2== 0)
 | 
				
			||||||
 | 
					    && (CFG_Header.Beta1== 96)
 | 
				
			||||||
 | 
					    && (CFG_Header.Beta2== 5) )
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    // Les touches (scancodes) sont à convertir)
 | 
				
			||||||
 | 
					    Conversion_touches = 1;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					  // Version SDL
 | 
				
			||||||
 | 
					  else if ( (CFG_Header.Version1!=VERSION1)
 | 
				
			||||||
    || (CFG_Header.Version2!=VERSION2)
 | 
					    || (CFG_Header.Version2!=VERSION2)
 | 
				
			||||||
    || (CFG_Header.Beta1!=BETA1)
 | 
					    || (CFG_Header.Beta1!=BETA1)
 | 
				
			||||||
    || (CFG_Header.Beta2!=BETA2) )
 | 
					    || (CFG_Header.Beta2!=BETA2) )
 | 
				
			||||||
@ -1747,6 +1759,10 @@ int Charger_CFG(int Tout_charger)
 | 
				
			|||||||
                    CFG_Infos_touche.Touche2=bswap_16(CFG_Infos_touche.Touche2);
 | 
					                    CFG_Infos_touche.Touche2=bswap_16(CFG_Infos_touche.Touche2);
 | 
				
			||||||
                    CFG_Infos_touche.Numero=bswap_16(CFG_Infos_touche.Numero);
 | 
					                    CFG_Infos_touche.Numero=bswap_16(CFG_Infos_touche.Numero);
 | 
				
			||||||
                #endif
 | 
					                #endif
 | 
				
			||||||
 | 
					                if (Conversion_touches)
 | 
				
			||||||
 | 
					                {
 | 
				
			||||||
 | 
					                  CFG_Infos_touche.Touche = Touche_pour_scancode(CFG_Infos_touche.Touche);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
                for (Indice2=0;
 | 
					                for (Indice2=0;
 | 
				
			||||||
                   ((Indice2<NB_TOUCHES) && (Numero_option[Indice2]!=CFG_Infos_touche.Numero));
 | 
					                   ((Indice2<NB_TOUCHES) && (Numero_option[Indice2]!=CFG_Infos_touche.Numero));
 | 
				
			||||||
                   Indice2++);
 | 
					                   Indice2++);
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										8
									
								
								moteur.c
									
									
									
									
									
								
							
							
						
						
									
										8
									
								
								moteur.c
									
									
									
									
									
								
							@ -1410,7 +1410,7 @@ short Attendre_click_dans_palette(struct Fenetre_Bouton_palette * Enreg)
 | 
				
			|||||||
      return Couleur_choisie;
 | 
					      return Couleur_choisie;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if ((Mouse_K==A_DROITE) || (Touche==0x0001))
 | 
					    if ((Mouse_K==A_DROITE) || (Touche==SDLK_ESCAPE))
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      Attendre_fin_de_click();
 | 
					      Attendre_fin_de_click();
 | 
				
			||||||
      Effacer_curseur();
 | 
					      Effacer_curseur();
 | 
				
			||||||
@ -1503,7 +1503,7 @@ void Recuperer_couleur_derriere_fenetre(byte * Couleur, byte * Click)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
      Ancien_X=Mouse_X;
 | 
					      Ancien_X=Mouse_X;
 | 
				
			||||||
      Ancien_Y=Mouse_Y;
 | 
					      Ancien_Y=Mouse_Y;
 | 
				
			||||||
    } while (!(Mouse_K || (Touche==0x0001)));
 | 
					    } while (!(Mouse_K || (Touche==SDLK_ESCAPE)));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (Mouse_K)
 | 
					    if (Mouse_K)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
@ -1796,7 +1796,7 @@ short Fenetre_Numero_bouton_touche(void)
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
  struct Fenetre_Bouton_normal * Temp;
 | 
					  struct Fenetre_Bouton_normal * Temp;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if ((Touche&0xFF00)==0x0100)
 | 
					  if (Touche & 0x1000)
 | 
				
			||||||
    Fenetre_Attribut1=A_DROITE;
 | 
					    Fenetre_Attribut1=A_DROITE;
 | 
				
			||||||
  else
 | 
					  else
 | 
				
			||||||
    Fenetre_Attribut1=A_GAUCHE;
 | 
					    Fenetre_Attribut1=A_GAUCHE;
 | 
				
			||||||
@ -1818,7 +1818,7 @@ short Fenetre_Numero_bouton_touche(void)
 | 
				
			|||||||
    Temp=Fenetre_Liste_boutons_normal;
 | 
					    Temp=Fenetre_Liste_boutons_normal;
 | 
				
			||||||
    while (Temp!=NULL)
 | 
					    while (Temp!=NULL)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      if (Temp->Raccourci==(Touche&0x00FF))
 | 
					      if (Temp->Raccourci==(Touche&0x0FFF))
 | 
				
			||||||
        return Temp->Numero;
 | 
					        return Temp->Numero;
 | 
				
			||||||
      Temp=Temp->Next;
 | 
					      Temp=Temp->Next;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										113
									
								
								palette.c
									
									
									
									
									
								
							
							
						
						
									
										113
									
								
								palette.c
									
									
									
									
									
								
							@ -134,7 +134,7 @@ void Remap_image_HIGH(byte * Table_de_conversion)
 | 
				
			|||||||
  Remap_general_LOWLEVEL(Table_de_conversion,Principal_Ecran,
 | 
					  Remap_general_LOWLEVEL(Table_de_conversion,Principal_Ecran,
 | 
				
			||||||
                         Principal_Largeur_image,Principal_Hauteur_image,Principal_Largeur_image);
 | 
					                         Principal_Largeur_image,Principal_Hauteur_image,Principal_Largeur_image);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // On calcule les limites … l'écran de l'image
 | 
					  // On calcule les limites à l'écran de l'image
 | 
				
			||||||
  if (Principal_Hauteur_image>=Menu_Ordonnee_avant_fenetre)
 | 
					  if (Principal_Hauteur_image>=Menu_Ordonnee_avant_fenetre)
 | 
				
			||||||
    Fin_Y=Menu_Ordonnee_avant_fenetre;
 | 
					    Fin_Y=Menu_Ordonnee_avant_fenetre;
 | 
				
			||||||
  else
 | 
					  else
 | 
				
			||||||
@ -166,13 +166,13 @@ void Remap_image_HIGH(byte * Table_de_conversion)
 | 
				
			|||||||
      Fin_Y_Loupe=Principal_Hauteur_image*Loupe_Facteur;
 | 
					      Fin_Y_Loupe=Principal_Hauteur_image*Loupe_Facteur;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // On doit maintenant faire la traduction … l'écran
 | 
					  // On doit maintenant faire la traduction à l'écran
 | 
				
			||||||
  Remap_zone_HIGH(0,0,Fin_X,Fin_Y,Table_de_conversion);
 | 
					  Remap_zone_HIGH(0,0,Fin_X,Fin_Y,Table_de_conversion);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (Loupe_Mode)
 | 
					  if (Loupe_Mode)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    Remap_zone_HIGH(Principal_Split,0,Fin_X_Loupe,Fin_Y_Loupe,Table_de_conversion);
 | 
					    Remap_zone_HIGH(Principal_Split,0,Fin_X_Loupe,Fin_Y_Loupe,Table_de_conversion);
 | 
				
			||||||
    // Il peut encore rester le bas de la barre de split … remapper si la
 | 
					    // Il peut encore rester le bas de la barre de split à remapper si la
 | 
				
			||||||
    // partie zoomée ne descend pas jusqu'en bas...
 | 
					    // partie zoomée ne descend pas jusqu'en bas...
 | 
				
			||||||
    Remap_zone_HIGH(Principal_Split,Fin_Y_Loupe,
 | 
					    Remap_zone_HIGH(Principal_Split,Fin_Y_Loupe,
 | 
				
			||||||
                    (Principal_Split+(LARGEUR_BARRE_SPLIT*Menu_Facteur_X)),
 | 
					                    (Principal_Split+(LARGEUR_BARRE_SPLIT*Menu_Facteur_X)),
 | 
				
			||||||
@ -202,7 +202,7 @@ void Swap(int X_Swap,short Debut_Bloc_1,short Debut_Bloc_2,short Taille_du_bloc,
 | 
				
			|||||||
  Utilisation_temporaire=(dword *)malloc(sizeof(dword)*256);
 | 
					  Utilisation_temporaire=(dword *)malloc(sizeof(dword)*256);
 | 
				
			||||||
  memcpy(Utilisation_temporaire,Utilisation_couleur,sizeof(dword)*256);
 | 
					  memcpy(Utilisation_temporaire,Utilisation_couleur,sizeof(dword)*256);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // On commence … initialiser la table de conversion … un état o— elle ne
 | 
					  // On commence à initialiser la table de conversion à un état o— elle ne
 | 
				
			||||||
  // fera aucune conversion.
 | 
					  // fera aucune conversion.
 | 
				
			||||||
  for (Pos_1=0;Pos_1<=255;Pos_1++)
 | 
					  for (Pos_1=0;Pos_1<=255;Pos_1++)
 | 
				
			||||||
    Table_de_conversion[Pos_1]=Pos_1;
 | 
					    Table_de_conversion[Pos_1]=Pos_1;
 | 
				
			||||||
@ -225,7 +225,7 @@ void Swap(int X_Swap,short Debut_Bloc_1,short Debut_Bloc_2,short Taille_du_bloc,
 | 
				
			|||||||
      Palette[Pos_1].V=Palette_temporaire[Pos_2].V;
 | 
					      Palette[Pos_1].V=Palette_temporaire[Pos_2].V;
 | 
				
			||||||
      Palette[Pos_1].B=Palette_temporaire[Pos_2].B;
 | 
					      Palette[Pos_1].B=Palette_temporaire[Pos_2].B;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      // On gŠre la mise … jour de Pos_2
 | 
					      // On gŠre la mise à jour de Pos_2
 | 
				
			||||||
      if (Pos_2==Fin_2)
 | 
					      if (Pos_2==Fin_2)
 | 
				
			||||||
        Pos_2=Debut_Bloc_1;
 | 
					        Pos_2=Debut_Bloc_1;
 | 
				
			||||||
      else
 | 
					      else
 | 
				
			||||||
@ -247,7 +247,7 @@ void Swap(int X_Swap,short Debut_Bloc_1,short Debut_Bloc_2,short Taille_du_bloc,
 | 
				
			|||||||
      Palette[Pos_1].V=Palette_temporaire[Pos_2].V;
 | 
					      Palette[Pos_1].V=Palette_temporaire[Pos_2].V;
 | 
				
			||||||
      Palette[Pos_1].B=Palette_temporaire[Pos_2].B;
 | 
					      Palette[Pos_1].B=Palette_temporaire[Pos_2].B;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      // On gŠre la mise … jour de Pos_2
 | 
					      // On gŠre la mise à jour de Pos_2
 | 
				
			||||||
      if (Pos_2==Fin_1)
 | 
					      if (Pos_2==Fin_1)
 | 
				
			||||||
        Pos_2=Debut_Bloc_2;
 | 
					        Pos_2=Debut_Bloc_2;
 | 
				
			||||||
      else
 | 
					      else
 | 
				
			||||||
@ -289,7 +289,7 @@ void Swap(int X_Swap,short Debut_Bloc_1,short Debut_Bloc_2,short Taille_du_bloc,
 | 
				
			|||||||
  free(Palette_temporaire);
 | 
					  free(Palette_temporaire);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Maintenant, tous ces calculs doivent êtres pris en compte dans la
 | 
					  // Maintenant, tous ces calculs doivent êtres pris en compte dans la
 | 
				
			||||||
  // palette, l'image et … l'écran.
 | 
					  // palette, l'image et à l'écran.
 | 
				
			||||||
  Set_palette(Palette);
 | 
					  Set_palette(Palette);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (X_Swap)
 | 
					  if (X_Swap)
 | 
				
			||||||
@ -358,7 +358,7 @@ void Remettre_proprement_les_couleurs_du_menu(dword * Utilisation_couleur)
 | 
				
			|||||||
    Table_de_remplacement[Nouvelles[Indice]]=Meilleure_couleur_sans_exclusion
 | 
					    Table_de_remplacement[Nouvelles[Indice]]=Meilleure_couleur_sans_exclusion
 | 
				
			||||||
                                  (RVB[Indice].R,RVB[Indice].V,RVB[Indice].B);
 | 
					                                  (RVB[Indice].R,RVB[Indice].V,RVB[Indice].B);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // On fait un changement des couleurs visibles … l'écran et dans l'image
 | 
					  // On fait un changement des couleurs visibles à l'écran et dans l'image
 | 
				
			||||||
  Remap_image_HIGH(Table_de_remplacement);
 | 
					  Remap_image_HIGH(Table_de_remplacement);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Afficher_curseur();
 | 
					  Afficher_curseur();
 | 
				
			||||||
@ -391,7 +391,7 @@ void Reduce_palette(short * Nb_couleurs_utilisees,int Nb_couleurs_demandees,T_Pa
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  Effacer_curseur();
 | 
					  Effacer_curseur();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //   On tasse la palette vers le début parce qu'elle doit ressembler …
 | 
					  //   On tasse la palette vers le début parce qu'elle doit ressembler à
 | 
				
			||||||
  // du GruyŠre (et comme Papouille il aime pas le fromage...)
 | 
					  // du GruyŠre (et comme Papouille il aime pas le fromage...)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Pour cela, on va scruter la couleur Couleur_1 et se servir de l'indice
 | 
					  // Pour cela, on va scruter la couleur Couleur_1 et se servir de l'indice
 | 
				
			||||||
@ -405,14 +405,14 @@ void Reduce_palette(short * Nb_couleurs_utilisees,int Nb_couleurs_demandees,T_Pa
 | 
				
			|||||||
      Palette[Couleur_2].V=Palette[Couleur_1].V;
 | 
					      Palette[Couleur_2].V=Palette[Couleur_1].V;
 | 
				
			||||||
      Palette[Couleur_2].B=Palette[Couleur_1].B;
 | 
					      Palette[Couleur_2].B=Palette[Couleur_1].B;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      // Ensuite, on met … jour le tableau d'occupation des couleurs.
 | 
					      // Ensuite, on met à jour le tableau d'occupation des couleurs.
 | 
				
			||||||
      Utilisation_couleur[Couleur_2]=Utilisation_couleur[Couleur_1];
 | 
					      Utilisation_couleur[Couleur_2]=Utilisation_couleur[Couleur_1];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      // On va maintenant s'occuper de la table de conversion:
 | 
					      // On va maintenant s'occuper de la table de conversion:
 | 
				
			||||||
      Table_de_conversion[Couleur_1]=Couleur_2;
 | 
					      Table_de_conversion[Couleur_1]=Couleur_2;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      // Maintenant, la place désignée par Couleur_2 est occupée, alors on
 | 
					      // Maintenant, la place désignée par Couleur_2 est occupée, alors on
 | 
				
			||||||
      // doit passer … un indice de destination suivant.
 | 
					      // doit passer à un indice de destination suivant.
 | 
				
			||||||
      Couleur_2++;
 | 
					      Couleur_2++;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
@ -427,7 +427,7 @@ void Reduce_palette(short * Nb_couleurs_utilisees,int Nb_couleurs_demandees,T_Pa
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //   Maintenant qu'on a une palette clean, on va boucler en réduisant
 | 
					  //   Maintenant qu'on a une palette clean, on va boucler en réduisant
 | 
				
			||||||
  // le nombre de couleurs jusqu'… ce qu'on atteigne le nombre désiré.
 | 
					  // le nombre de couleurs jusqu'à ce qu'on atteigne le nombre désiré.
 | 
				
			||||||
  while ((*Nb_couleurs_utilisees)>Nb_couleurs_demandees)
 | 
					  while ((*Nb_couleurs_utilisees)>Nb_couleurs_demandees)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    //   Il s'agit de trouver les 2 couleurs qui se ressemblent le plus
 | 
					    //   Il s'agit de trouver les 2 couleurs qui se ressemblent le plus
 | 
				
			||||||
@ -459,14 +459,14 @@ void Reduce_palette(short * Nb_couleurs_utilisees,int Nb_couleurs_demandees,T_Pa
 | 
				
			|||||||
          }
 | 
					          }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    //   Maintenant qu'on les a trouvées, on va pouvoir mettre … jour nos
 | 
					    //   Maintenant qu'on les a trouvées, on va pouvoir mettre à jour nos
 | 
				
			||||||
    // données pour que le remplacement se fasse sans encombres.
 | 
					    // données pour que le remplacement se fasse sans encombres.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // En somme, on va remplacer Meilleure_couleur_2 par Meilleure_couleur_1,
 | 
					    // En somme, on va remplacer Meilleure_couleur_2 par Meilleure_couleur_1,
 | 
				
			||||||
    // mais attention, on ne remplace pas Meilleure_couleur_1 par
 | 
					    // mais attention, on ne remplace pas Meilleure_couleur_1 par
 | 
				
			||||||
    // Meilleure_couleur_2 !
 | 
					    // Meilleure_couleur_2 !
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // On met … jour la palette.
 | 
					    // On met à jour la palette.
 | 
				
			||||||
    Palette[Meilleure_couleur_1].R=Round_div((Utilisation_couleur[Meilleure_couleur_1]*Palette[Meilleure_couleur_1].R)+
 | 
					    Palette[Meilleure_couleur_1].R=Round_div((Utilisation_couleur[Meilleure_couleur_1]*Palette[Meilleure_couleur_1].R)+
 | 
				
			||||||
                                             (Utilisation_couleur[Meilleure_couleur_2]*Palette[Meilleure_couleur_2].R),
 | 
					                                             (Utilisation_couleur[Meilleure_couleur_2]*Palette[Meilleure_couleur_2].R),
 | 
				
			||||||
                                             Meilleure_utilisation);
 | 
					                                             Meilleure_utilisation);
 | 
				
			||||||
@ -477,26 +477,26 @@ void Reduce_palette(short * Nb_couleurs_utilisees,int Nb_couleurs_demandees,T_Pa
 | 
				
			|||||||
                                             (Utilisation_couleur[Meilleure_couleur_2]*Palette[Meilleure_couleur_2].B),
 | 
					                                             (Utilisation_couleur[Meilleure_couleur_2]*Palette[Meilleure_couleur_2].B),
 | 
				
			||||||
                                             Meilleure_utilisation);
 | 
					                                             Meilleure_utilisation);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // On met … jour la table d'utilisation.
 | 
					    // On met à jour la table d'utilisation.
 | 
				
			||||||
    Utilisation_couleur[Meilleure_couleur_1]+=Utilisation_couleur[Meilleure_couleur_2];
 | 
					    Utilisation_couleur[Meilleure_couleur_1]+=Utilisation_couleur[Meilleure_couleur_2];
 | 
				
			||||||
    Utilisation_couleur[Meilleure_couleur_2]=0;
 | 
					    Utilisation_couleur[Meilleure_couleur_2]=0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // On met … jour la table de conversion.
 | 
					    // On met à jour la table de conversion.
 | 
				
			||||||
    for (Couleur_1=0;Couleur_1<=255;Couleur_1++)
 | 
					    for (Couleur_1=0;Couleur_1<=255;Couleur_1++)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      if (Table_de_conversion[Couleur_1]==Meilleure_couleur_2)
 | 
					      if (Table_de_conversion[Couleur_1]==Meilleure_couleur_2)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        //   La Couleur_1 avait déj… prévue de se faire remplacer par la
 | 
					        //   La Couleur_1 avait déjà prévue de se faire remplacer par la
 | 
				
			||||||
        // couleur que l'on veut maintenant éliminer. On va maintenant
 | 
					        // couleur que l'on veut maintenant éliminer. On va maintenant
 | 
				
			||||||
        // demander … ce que la Couleur_1 se fasse remplacer par la
 | 
					        // demander à ce que la Couleur_1 se fasse remplacer par la
 | 
				
			||||||
        // Meilleure_couleur_1.
 | 
					        // Meilleure_couleur_1.
 | 
				
			||||||
        Table_de_conversion[Couleur_1]=Meilleure_couleur_1;
 | 
					        Table_de_conversion[Couleur_1]=Meilleure_couleur_1;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    //   Bon, maintenant que l'on a fait bouger nos petites choses concernants
 | 
					    //   Bon, maintenant que l'on a fait bouger nos petites choses concernants
 | 
				
			||||||
    // la couleur … éliminer, on va s'occuper de faire bouger les couleurs
 | 
					    // la couleur à éliminer, on va s'occuper de faire bouger les couleurs
 | 
				
			||||||
    // situées aprŠs la couleur … éliminer pour qu'elles se dépla‡ent d'une
 | 
					    // situées aprŠs la couleur à éliminer pour qu'elles se dépla‡ent d'une
 | 
				
			||||||
    // couleur en arriŠre.
 | 
					    // couleur en arriŠre.
 | 
				
			||||||
    for (Couleur_1=0;Couleur_1<=255;Couleur_1++)
 | 
					    for (Couleur_1=0;Couleur_1<=255;Couleur_1++)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
@ -522,11 +522,11 @@ void Reduce_palette(short * Nb_couleurs_utilisees,int Nb_couleurs_demandees,T_Pa
 | 
				
			|||||||
      // s'occuper de notre table de conversion.
 | 
					      // s'occuper de notre table de conversion.
 | 
				
			||||||
      if (Table_de_conversion[Couleur_1]>Meilleure_couleur_2)
 | 
					      if (Table_de_conversion[Couleur_1]>Meilleure_couleur_2)
 | 
				
			||||||
        //   La Couleur_1 avait l'intention de se faire remplacer par une
 | 
					        //   La Couleur_1 avait l'intention de se faire remplacer par une
 | 
				
			||||||
        // couleur que l'on va (ou que l'on a déj…) bouger en arriŠre.
 | 
					        // couleur que l'on va (ou que l'on a déjà) bouger en arriŠre.
 | 
				
			||||||
        Table_de_conversion[Couleur_1]--;
 | 
					        Table_de_conversion[Couleur_1]--;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    //   On vient d'éjecter une couleur, donc on peut mettre … jour le nombre
 | 
					    //   On vient d'éjecter une couleur, donc on peut mettre à jour le nombre
 | 
				
			||||||
    // de couleurs utilisées.
 | 
					    // de couleurs utilisées.
 | 
				
			||||||
    (*Nb_couleurs_utilisees)--;
 | 
					    (*Nb_couleurs_utilisees)--;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -536,18 +536,18 @@ void Reduce_palette(short * Nb_couleurs_utilisees,int Nb_couleurs_demandees,T_Pa
 | 
				
			|||||||
    Palette[*Nb_couleurs_utilisees].V=0;
 | 
					    Palette[*Nb_couleurs_utilisees].V=0;
 | 
				
			||||||
    Palette[*Nb_couleurs_utilisees].B=0;
 | 
					    Palette[*Nb_couleurs_utilisees].B=0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Au passage, on va s'assurer que l'on a pas oublié de la mettre … une
 | 
					    // Au passage, on va s'assurer que l'on a pas oublié de la mettre à une
 | 
				
			||||||
    // utilisation nulle.
 | 
					    // utilisation nulle.
 | 
				
			||||||
    Utilisation_couleur[*Nb_couleurs_utilisees]=0;
 | 
					    Utilisation_couleur[*Nb_couleurs_utilisees]=0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // AprŠs avoir éjecté une couleur, on le fait savoir … l'utilisateur par
 | 
					    // AprŠs avoir éjecté une couleur, on le fait savoir à l'utilisateur par
 | 
				
			||||||
    // l'intermédiaire du compteur de nombre utilisées.
 | 
					    // l'intermédiaire du compteur de nombre utilisées.
 | 
				
			||||||
    Num2str(*Nb_couleurs_utilisees,Chaine,3);
 | 
					    Num2str(*Nb_couleurs_utilisees,Chaine,3);
 | 
				
			||||||
    Print_dans_fenetre(186,23,Chaine,CM_Noir,CM_Clair);
 | 
					    Print_dans_fenetre(186,23,Chaine,CM_Noir,CM_Clair);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  //   Maintenant, tous ces calculs doivent êtres pris en compte dans la
 | 
					  //   Maintenant, tous ces calculs doivent êtres pris en compte dans la
 | 
				
			||||||
  // palette, l'image et … l'écran.
 | 
					  // palette, l'image et à l'écran.
 | 
				
			||||||
  Remap_image_HIGH(Table_de_conversion); // Et voila pour l'image et l'écran
 | 
					  Remap_image_HIGH(Table_de_conversion); // Et voila pour l'image et l'écran
 | 
				
			||||||
  Afficher_curseur();
 | 
					  Afficher_curseur();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -605,7 +605,7 @@ void Palette_Reafficher_jauges(struct Fenetre_Bouton_scroller * Jauge_rouge,
 | 
				
			|||||||
  // Réaffichage des jauges:
 | 
					  // Réaffichage des jauges:
 | 
				
			||||||
  if (Debut!=Fin)
 | 
					  if (Debut!=Fin)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    // Dans le cas d'un bloc, tout … 0.
 | 
					    // Dans le cas d'un bloc, tout à 0.
 | 
				
			||||||
    Jauge_rouge->Position   =63;
 | 
					    Jauge_rouge->Position   =63;
 | 
				
			||||||
    Fenetre_Dessiner_jauge(Jauge_rouge);
 | 
					    Fenetre_Dessiner_jauge(Jauge_rouge);
 | 
				
			||||||
    Print_dans_fenetre(176,172,"± 0",CM_Noir,CM_Clair);
 | 
					    Print_dans_fenetre(176,172,"± 0",CM_Noir,CM_Clair);
 | 
				
			||||||
@ -693,7 +693,7 @@ void Bouton_Palette(void)
 | 
				
			|||||||
  Fenetre_Afficher_cadre      (173, 67,121,116);
 | 
					  Fenetre_Afficher_cadre      (173, 67,121,116);
 | 
				
			||||||
  Fenetre_Afficher_cadre      (128, 16, 91, 39);
 | 
					  Fenetre_Afficher_cadre      (128, 16, 91, 39);
 | 
				
			||||||
  Fenetre_Afficher_cadre      (221, 16, 73, 39);
 | 
					  Fenetre_Afficher_cadre      (221, 16, 73, 39);
 | 
				
			||||||
  // Cadre creux destiné … l'affichage de la(les) couleur(s) sélectionnée(s)
 | 
					  // Cadre creux destiné à l'affichage de la(les) couleur(s) sélectionnée(s)
 | 
				
			||||||
  Fenetre_Afficher_cadre_creux(259, 88, 26, 74);
 | 
					  Fenetre_Afficher_cadre_creux(259, 88, 26, 74);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Graduation des jauges de couleur
 | 
					  // Graduation des jauges de couleur
 | 
				
			||||||
@ -737,34 +737,34 @@ void Bouton_Palette(void)
 | 
				
			|||||||
  Print_dans_fenetre(237,58,Chaine,CM_Noir,CM_Clair);
 | 
					  Print_dans_fenetre(237,58,Chaine,CM_Noir,CM_Clair);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_normal( 6,17,59,14,"Default",3,1,0x0021);   // 5
 | 
					  Fenetre_Definir_bouton_normal( 6,17,59,14,"Default",3,1,SDLK_f);   // 5
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(66,17,29,14,"Gry"    ,1,1,0x0022);   // 6
 | 
					  Fenetre_Definir_bouton_normal(66,17,29,14,"Gry"    ,1,1,SDLK_g);   // 6
 | 
				
			||||||
  Fenetre_Definir_bouton_normal( 6,47,59,14,"Swap"   ,1,1,0x001F);   // 7
 | 
					  Fenetre_Definir_bouton_normal( 6,47,59,14,"Swap"   ,1,1,SDLK_s);   // 7
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(66,47,59,14,"X-Swap" ,1,1,0x002D);   // 8
 | 
					  Fenetre_Definir_bouton_normal(66,47,59,14,"X-Swap" ,1,1,SDLK_x);   // 8
 | 
				
			||||||
  Fenetre_Definir_bouton_normal( 6,62,59,14,"Copy"   ,1,1,0x002E);   // 9
 | 
					  Fenetre_Definir_bouton_normal( 6,62,59,14,"Copy"   ,1,1,SDLK_c);   // 9
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(66,62,59,14,"Spread" ,4,1,0x0012);   // 10
 | 
					  Fenetre_Definir_bouton_normal(66,62,59,14,"Spread" ,4,1,SDLK_e);   // 10
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(239,20,51,14,"Reduce" ,1,1,0x0013);  // 11
 | 
					  Fenetre_Definir_bouton_normal(239,20,51,14,"Reduce" ,1,1,SDLK_r);  // 11
 | 
				
			||||||
  Print_dans_fenetre(241,41,"to",CM_Fonce,CM_Clair);
 | 
					  Print_dans_fenetre(241,41,"to",CM_Fonce,CM_Clair);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(  6,168,35,14,"Undo"  ,1,1,0x0016);  // 12
 | 
					  Fenetre_Definir_bouton_normal(  6,168,35,14,"Undo"  ,1,1,SDLK_u);  // 12
 | 
				
			||||||
  Fenetre_Definir_bouton_normal( 62,168,51,14,"Cancel",0,1,0x0001);  // 13
 | 
					  Fenetre_Definir_bouton_normal( 62,168,51,14,"Cancel",0,1,SDLK_ESCAPE);  // 13
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(117,168,51,14,"OK"    ,0,1,0x001C);  // 14
 | 
					  Fenetre_Definir_bouton_normal(117,168,51,14,"OK"    ,0,1,SDLK_RETURN);  // 14
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(132,20,83,14,"Used: ???",4,1,0x0020);// 15
 | 
					  Fenetre_Definir_bouton_normal(132,20,83,14,"Used: ???",4,1,SDLK_d);// 15
 | 
				
			||||||
  Bouton_Used=Fenetre_Liste_boutons_normal;
 | 
					  Bouton_Used=Fenetre_Liste_boutons_normal;
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(132,37,83,14,"Zap unused",0,1,0x0053);//16
 | 
					  Fenetre_Definir_bouton_normal(132,37,83,14,"Zap unused",0,1,SDLK_DELETE);//16
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Jauge de réduction de palette
 | 
					  // Jauge de réduction de palette
 | 
				
			||||||
  Fenetre_Definir_bouton_scroller(225,20,31,7,1,Indice_Reduction_palette);// 17
 | 
					  Fenetre_Definir_bouton_scroller(225,20,31,7,1,Indice_Reduction_palette);// 17
 | 
				
			||||||
  Jauge_Reduction=Fenetre_Liste_boutons_scroller;
 | 
					  Jauge_Reduction=Fenetre_Liste_boutons_scroller;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(266, 74,12,11,"+",0,1,0x004E);       // 18
 | 
					  Fenetre_Definir_bouton_normal(266, 74,12,11,"+",0,1,SDLK_KP_PLUS);       // 18
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(266,165,12,11,"-",0,1,0x004A);       // 19
 | 
					  Fenetre_Definir_bouton_normal(266,165,12,11,"-",0,1,SDLK_KP_MINUS);       // 19
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(96,17,29,14,"Neg"    ,1,1,0x0031);   // 20
 | 
					  Fenetre_Definir_bouton_normal(96,17,29,14,"Neg"    ,1,1,SDLK_n);   // 20
 | 
				
			||||||
  Fenetre_Definir_bouton_normal( 6,32,59,14,"Invert" ,1,1,0x0017);   // 21
 | 
					  Fenetre_Definir_bouton_normal( 6,32,59,14,"Invert" ,1,1,SDLK_i);   // 21
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(66,32,59,14,"X-Inv." ,5,1,0x002F);   // 22
 | 
					  Fenetre_Definir_bouton_normal(66,32,59,14,"X-Inv." ,5,1,SDLK_v);   // 22
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_saisie(263,39,3);                           // 23
 | 
					  Fenetre_Definir_bouton_saisie(263,39,3);                           // 23
 | 
				
			||||||
  // Affichage du facteur de réduction de la palette
 | 
					  // Affichage du facteur de réduction de la palette
 | 
				
			||||||
@ -780,7 +780,7 @@ void Bouton_Palette(void)
 | 
				
			|||||||
  Afficher_curseur();
 | 
					  Afficher_curseur();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Clavier_americain(); // On est obligé de rester en clavier américain pour
 | 
					  Clavier_americain(); // On est obligé de rester en clavier américain pour
 | 
				
			||||||
                       // que l'on puisse décaler la couleur sélectionnée …
 | 
					                       // que l'on puisse décaler la couleur sélectionnée à
 | 
				
			||||||
                       // l'aide des touche "^" et "$" ("[" et "]").
 | 
					                       // l'aide des touche "^" et "$" ("[" et "]").
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  if (Config.Auto_nb_used)
 | 
					  if (Config.Auto_nb_used)
 | 
				
			||||||
@ -1595,7 +1595,7 @@ void Bouton_Palette(void)
 | 
				
			|||||||
    {
 | 
					    {
 | 
				
			||||||
      switch (Touche)
 | 
					      switch (Touche)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        case 0x001A : // Décaler Forecolor vers la gauche
 | 
					        case SDLK_LEFTBRACKET : // Décaler Forecolor vers la gauche
 | 
				
			||||||
          if (Debut_block==Fin_block)
 | 
					          if (Debut_block==Fin_block)
 | 
				
			||||||
          {
 | 
					          {
 | 
				
			||||||
            Fore_color--;
 | 
					            Fore_color--;
 | 
				
			||||||
@ -1615,7 +1615,7 @@ void Bouton_Palette(void)
 | 
				
			|||||||
          }
 | 
					          }
 | 
				
			||||||
          break;
 | 
					          break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        case 0x001B : // Décaler Forecolor vers la droite
 | 
					        case SDLK_RIGHTBRACKET : // Décaler Forecolor vers la droite
 | 
				
			||||||
          if (Debut_block==Fin_block)
 | 
					          if (Debut_block==Fin_block)
 | 
				
			||||||
          {
 | 
					          {
 | 
				
			||||||
            Fore_color++;
 | 
					            Fore_color++;
 | 
				
			||||||
@ -1635,10 +1635,11 @@ void Bouton_Palette(void)
 | 
				
			|||||||
          }
 | 
					          }
 | 
				
			||||||
          break;
 | 
					          break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        case 0x011A : // Decaler Backcolor vers la gauche
 | 
					        case (SDLK_LEFTBRACKET|0x1000) : // Decaler Backcolor vers la gauche
 | 
				
			||||||
          Back_color--;
 | 
					          Back_color--;
 | 
				
			||||||
        case 0x011B : // Decaler Backcolor vers la droite
 | 
					        case (SDLK_RIGHTBRACKET|0x1000) : // Decaler Backcolor vers la droite
 | 
				
			||||||
          if (Touche==0x011B)
 | 
					          // attention: pas de break ci-dessus
 | 
				
			||||||
 | 
					          if (Touche==(SDLK_RIGHTBRACKET|0x1000))
 | 
				
			||||||
            Back_color++;
 | 
					            Back_color++;
 | 
				
			||||||
          Effacer_curseur();
 | 
					          Effacer_curseur();
 | 
				
			||||||
          Block(Fenetre_Pos_X+(Menu_Facteur_X*260),Fenetre_Pos_Y+(Menu_Facteur_Y* 89),Menu_Facteur_X*24,Menu_Facteur_Y<<2,Back_color);
 | 
					          Block(Fenetre_Pos_X+(Menu_Facteur_X*260),Fenetre_Pos_Y+(Menu_Facteur_Y* 89),Menu_Facteur_X*24,Menu_Facteur_Y<<2,Back_color);
 | 
				
			||||||
@ -1648,7 +1649,7 @@ void Bouton_Palette(void)
 | 
				
			|||||||
          Afficher_curseur();
 | 
					          Afficher_curseur();
 | 
				
			||||||
          break;
 | 
					          break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        case 0x000E : // Remise des couleurs du menu … l'état normal en essayant
 | 
					        case SDLK_BACKSPACE : // Remise des couleurs du menu à l'état normal en essayant
 | 
				
			||||||
                      // de ne pas trop modifier l'image.
 | 
					                      // de ne pas trop modifier l'image.
 | 
				
			||||||
          if (!Backup_de_l_image_effectue)
 | 
					          if (!Backup_de_l_image_effectue)
 | 
				
			||||||
          {
 | 
					          {
 | 
				
			||||||
@ -1671,8 +1672,8 @@ void Bouton_Palette(void)
 | 
				
			|||||||
          Il_faut_remapper=1;
 | 
					          Il_faut_remapper=1;
 | 
				
			||||||
          break;
 | 
					          break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        case 0x0029 : // Récupération d'une couleur derriŠre le menu
 | 
					        case SDLK_BACKQUOTE : // Récupération d'une couleur derriŠre le menu
 | 
				
			||||||
        case 0x0033 :
 | 
					        case SDLK_COMMA :
 | 
				
			||||||
          Recuperer_couleur_derriere_fenetre(&Couleur,&Click);
 | 
					          Recuperer_couleur_derriere_fenetre(&Couleur,&Click);
 | 
				
			||||||
          if (Click)
 | 
					          if (Click)
 | 
				
			||||||
          {
 | 
					          {
 | 
				
			||||||
@ -1805,9 +1806,9 @@ void Bouton_Palette_secondaire(void)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  Ouvrir_fenetre(200,80,"Palettes");
 | 
					  Ouvrir_fenetre(200,80,"Palettes");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(10,20,180,14,"Colors for best match",12,1,0x0030); // 1
 | 
					  Fenetre_Definir_bouton_normal(10,20,180,14,"Colors for best match",12,1,SDLK_b); // 1
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(10,37,180,14,"User's color series"  ,14,0,0x001F); // 2
 | 
					  Fenetre_Definir_bouton_normal(10,37,180,14,"User's color series"  ,14,0,SDLK_s); // 2
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(60,60, 80,14,"Cancel"               , 0,1,0x0001); // 3
 | 
					  Fenetre_Definir_bouton_normal(60,60, 80,14,"Cancel"               , 0,1,SDLK_ESCAPE); // 3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Afficher_curseur();
 | 
					  Afficher_curseur();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										146
									
								
								shade.c
									
									
									
									
									
								
							
							
						
						
									
										146
									
								
								shade.c
									
									
									
									
									
								
							@ -83,7 +83,7 @@ void Shade_Blocs_degrades(void)
 | 
				
			|||||||
    {
 | 
					    {
 | 
				
			||||||
      // On regarde quel shade on va afficher en preview
 | 
					      // On regarde quel shade on va afficher en preview
 | 
				
			||||||
      Shade_traite=((Pos_Y-Debut_Y)*Nb_shades)/Taille_Y;
 | 
					      Shade_traite=((Pos_Y-Debut_Y)*Nb_shades)/Taille_Y;
 | 
				
			||||||
      // Si ce n'est pas le shade pr‚c‚demment trait‚ on calcule ses infos
 | 
					      // Si ce n'est pas le shade précédemment traité on calcule ses infos
 | 
				
			||||||
      if (Shade_traite>Ancien_shade_traite)
 | 
					      if (Shade_traite>Ancien_shade_traite)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        // On commence par sauter tous les vides jusqu'au prochain shade
 | 
					        // On commence par sauter tous les vides jusqu'au prochain shade
 | 
				
			||||||
@ -134,7 +134,7 @@ void Tagger_shades(word Select_Debut,word Select_Fin)
 | 
				
			|||||||
      Pos_X=Fenetre_Pos_X+(Menu_Facteur_X*((Colonne<<2)+8));
 | 
					      Pos_X=Fenetre_Pos_X+(Menu_Facteur_X*((Colonne<<2)+8));
 | 
				
			||||||
      Pos_Y=Fenetre_Pos_Y+(Menu_Facteur_Y*((Ligne*7)+131));
 | 
					      Pos_Y=Fenetre_Pos_Y+(Menu_Facteur_Y*((Ligne*7)+131));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      // On regarde si la case est "disabl‚e"
 | 
					      // On regarde si la case est "disablée"
 | 
				
			||||||
      if (Shade_Liste[Shade_Actuel].Liste[Position]&0x8000)
 | 
					      if (Shade_Liste[Shade_Actuel].Liste[Position]&0x8000)
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        if ((Position>=Select_Debut) && (Position<=Select_Fin))
 | 
					        if ((Position>=Select_Debut) && (Position<=Select_Fin))
 | 
				
			||||||
@ -145,7 +145,7 @@ void Tagger_shades(word Select_Debut,word Select_Fin)
 | 
				
			|||||||
        else
 | 
					        else
 | 
				
			||||||
          Block(Pos_X,Pos_Y,Menu_Facteur_X<<2,Menu_Facteur_Y<<1,CM_Blanc);
 | 
					          Block(Pos_X,Pos_Y,Menu_Facteur_X<<2,Menu_Facteur_Y<<1,CM_Blanc);
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
      else // "enabl‚e"
 | 
					      else // "enablée"
 | 
				
			||||||
      {
 | 
					      {
 | 
				
			||||||
        if ((Position>=Select_Debut) && (Position<=Select_Fin))
 | 
					        if ((Position>=Select_Debut) && (Position<=Select_Fin))
 | 
				
			||||||
          Block(Pos_X,Pos_Y,Menu_Facteur_X<<2,Menu_Facteur_Y<<1,CM_Noir);
 | 
					          Block(Pos_X,Pos_Y,Menu_Facteur_X<<2,Menu_Facteur_Y<<1,CM_Noir);
 | 
				
			||||||
@ -265,8 +265,8 @@ void Inserer_shade(byte Premiere_couleur, byte Derniere_couleur, word Select_Deb
 | 
				
			|||||||
    Premiere_couleur=Temp;
 | 
					    Premiere_couleur=Temp;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Avant d'ins‚rer quoi que ce soit, on efface les ‚ventuelles couleurs que
 | 
					  // Avant d'insérer quoi que ce soit, on efface les éventuelles couleurs que
 | 
				
			||||||
  // l'on va r‚ins‚rer:
 | 
					  // l'on va réinsérer:
 | 
				
			||||||
  Limite=512-Select_Debut;
 | 
					  Limite=512-Select_Debut;
 | 
				
			||||||
  for (Curseur=0; Curseur<512; Curseur++)
 | 
					  for (Curseur=0; Curseur<512; Curseur++)
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
@ -276,7 +276,7 @@ void Inserer_shade(byte Premiere_couleur, byte Derniere_couleur, word Select_Deb
 | 
				
			|||||||
          && ((Shade_Liste[Shade_Actuel].Liste[Curseur]&0xFF)==Temp) )
 | 
					          && ((Shade_Liste[Shade_Actuel].Liste[Curseur]&0xFF)==Temp) )
 | 
				
			||||||
          Shade_Liste[Shade_Actuel].Liste[Curseur]=(Shade_Liste[Shade_Actuel].Liste[Curseur]&0x8000)|0x0100;
 | 
					          Shade_Liste[Shade_Actuel].Liste[Curseur]=(Shade_Liste[Shade_Actuel].Liste[Curseur]&0x8000)|0x0100;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  // Voil…... Maintenant on peut y aller peinard.
 | 
					  // Voilà... Maintenant on peut y aller peinard.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Temp=1+Derniere_couleur-Premiere_couleur;
 | 
					  Temp=1+Derniere_couleur-Premiere_couleur;
 | 
				
			||||||
  Limite=Select_Debut+Temp;
 | 
					  Limite=Select_Debut+Temp;
 | 
				
			||||||
@ -329,7 +329,7 @@ short Attendre_click_dans_shade()
 | 
				
			|||||||
      Case_choisie=(((((Mouse_Y-Fenetre_Pos_Y)/Menu_Facteur_Y)-127)/7)<<6)+
 | 
					      Case_choisie=(((((Mouse_Y-Fenetre_Pos_Y)/Menu_Facteur_Y)-127)/7)<<6)+
 | 
				
			||||||
                    ((((Mouse_X-Fenetre_Pos_X)/Menu_Facteur_X)-8 )>>2);
 | 
					                    ((((Mouse_X-Fenetre_Pos_X)/Menu_Facteur_X)-8 )>>2);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if ((Mouse_K==A_DROITE) || (Touche==0x0001))
 | 
					    if ((Mouse_K==A_DROITE) || (Touche==SDLK_ESCAPE))
 | 
				
			||||||
      Case_choisie=512; // valeur indiquant que l'on n'a rien choisi
 | 
					      Case_choisie=512; // valeur indiquant que l'on n'a rien choisi
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -355,7 +355,7 @@ void Swap_shade(short Debut_Bloc_1,short Debut_Bloc_2,short Taille_du_bloc)
 | 
				
			|||||||
  Shade_temporaire=(word *)malloc(512*sizeof(word));
 | 
					  Shade_temporaire=(word *)malloc(512*sizeof(word));
 | 
				
			||||||
  memcpy(Shade_temporaire,Shade_Liste[Shade_Actuel].Liste,512*sizeof(word));
 | 
					  memcpy(Shade_temporaire,Shade_Liste[Shade_Actuel].Liste,512*sizeof(word));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // On calcul les derniŠres couleurs de chaque bloc.
 | 
					  // On calcul les dernières couleurs de chaque bloc.
 | 
				
			||||||
  Fin_1=Debut_Bloc_1+Taille_du_bloc-1;
 | 
					  Fin_1=Debut_Bloc_1+Taille_du_bloc-1;
 | 
				
			||||||
  Fin_2=Debut_Bloc_2+Taille_du_bloc-1;
 | 
					  Fin_2=Debut_Bloc_2+Taille_du_bloc-1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -366,7 +366,7 @@ void Swap_shade(short Debut_Bloc_1,short Debut_Bloc_2,short Taille_du_bloc)
 | 
				
			|||||||
    {
 | 
					    {
 | 
				
			||||||
      // Il faut transformer la case Pos_1 en Pos_2:
 | 
					      // Il faut transformer la case Pos_1 en Pos_2:
 | 
				
			||||||
      Shade_Liste[Shade_Actuel].Liste[Pos_1]=Shade_temporaire[Pos_2];
 | 
					      Shade_Liste[Shade_Actuel].Liste[Pos_1]=Shade_temporaire[Pos_2];
 | 
				
			||||||
      // On gŠre la mise … jour de Pos_2
 | 
					      // On gère la mise à jour de Pos_2
 | 
				
			||||||
      if (Pos_2==Fin_2)
 | 
					      if (Pos_2==Fin_2)
 | 
				
			||||||
        Pos_2=Debut_Bloc_1;
 | 
					        Pos_2=Debut_Bloc_1;
 | 
				
			||||||
      else
 | 
					      else
 | 
				
			||||||
@ -376,12 +376,12 @@ void Swap_shade(short Debut_Bloc_1,short Debut_Bloc_2,short Taille_du_bloc)
 | 
				
			|||||||
  else
 | 
					  else
 | 
				
			||||||
  if ((Debut_Bloc_2<Debut_Bloc_1) && (Fin_2>=Debut_Bloc_1))
 | 
					  if ((Debut_Bloc_2<Debut_Bloc_1) && (Fin_2>=Debut_Bloc_1))
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    // Le bloc destination d‚borde dans le bloc source.
 | 
					    // Le bloc destination déborde dans le bloc source.
 | 
				
			||||||
    for (Pos_1=Debut_Bloc_2,Pos_2=Debut_Bloc_1;Pos_1<=Fin_1;Pos_1++)
 | 
					    for (Pos_1=Debut_Bloc_2,Pos_2=Debut_Bloc_1;Pos_1<=Fin_1;Pos_1++)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      // Il faut transformer la couleur Pos_1 en Pos_2:
 | 
					      // Il faut transformer la couleur Pos_1 en Pos_2:
 | 
				
			||||||
      Shade_Liste[Shade_Actuel].Liste[Pos_1]=Shade_temporaire[Pos_2];
 | 
					      Shade_Liste[Shade_Actuel].Liste[Pos_1]=Shade_temporaire[Pos_2];
 | 
				
			||||||
      // On gŠre la mise … jour de Pos_2
 | 
					      // On gère la mise à jour de Pos_2
 | 
				
			||||||
      if (Pos_2==Fin_1)
 | 
					      if (Pos_2==Fin_1)
 | 
				
			||||||
        Pos_2=Debut_Bloc_2;
 | 
					        Pos_2=Debut_Bloc_2;
 | 
				
			||||||
      else
 | 
					      else
 | 
				
			||||||
@ -393,7 +393,7 @@ void Swap_shade(short Debut_Bloc_1,short Debut_Bloc_2,short Taille_du_bloc)
 | 
				
			|||||||
    // Le bloc source et le bloc destination sont distincts.
 | 
					    // Le bloc source et le bloc destination sont distincts.
 | 
				
			||||||
    for (Pos_1=Debut_Bloc_1,Pos_2=Debut_Bloc_2;Pos_1<=Fin_1;Pos_1++,Pos_2++)
 | 
					    for (Pos_1=Debut_Bloc_1,Pos_2=Debut_Bloc_2;Pos_1<=Fin_1;Pos_1++,Pos_2++)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      // On ‚change les cases
 | 
					      // On échange les cases
 | 
				
			||||||
      Temp                                  =Shade_Liste[Shade_Actuel].Liste[Pos_1];
 | 
					      Temp                                  =Shade_Liste[Shade_Actuel].Liste[Pos_1];
 | 
				
			||||||
      Shade_Liste[Shade_Actuel].Liste[Pos_1]=Shade_Liste[Shade_Actuel].Liste[Pos_2];
 | 
					      Shade_Liste[Shade_Actuel].Liste[Pos_1]=Shade_Liste[Shade_Actuel].Liste[Pos_2];
 | 
				
			||||||
      Shade_Liste[Shade_Actuel].Liste[Pos_2]=Temp;
 | 
					      Shade_Liste[Shade_Actuel].Liste[Pos_2]=Temp;
 | 
				
			||||||
@ -406,9 +406,9 @@ void Swap_shade(short Debut_Bloc_1,short Debut_Bloc_2,short Taille_du_bloc)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
int Menu_Shade(void)
 | 
					int Menu_Shade(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  short Bouton_clicke;  // Num‚ro du bouton sur lequel l'utilisateur a click‚
 | 
					  short Bouton_clicke;  // Numéro du bouton sur lequel l'utilisateur a clické
 | 
				
			||||||
  char Chaine[4];        // Chaine d'affichage du nø de shade actif et du Pas
 | 
					  char Chaine[4];        // Chaine d'affichage du n° de shade actif et du Pas
 | 
				
			||||||
  word Ancien_Mouse_X,Ancien_Mouse_X2; // M‚mo. de l'ancienne pos. du curseur
 | 
					  word Ancien_Mouse_X,Ancien_Mouse_X2; // Mémo. de l'ancienne pos. du curseur
 | 
				
			||||||
  word Ancien_Mouse_Y,Ancien_Mouse_Y2;
 | 
					  word Ancien_Mouse_Y,Ancien_Mouse_Y2;
 | 
				
			||||||
  byte Ancien_Mouse_K,Ancien_Mouse_K2;
 | 
					  byte Ancien_Mouse_K,Ancien_Mouse_K2;
 | 
				
			||||||
  byte Couleur_temporaire; // Variables de gestion des clicks dans la palette
 | 
					  byte Couleur_temporaire; // Variables de gestion des clicks dans la palette
 | 
				
			||||||
@ -433,50 +433,50 @@ int Menu_Shade(void)
 | 
				
			|||||||
  // Ouverture de la fenˆtre du menu
 | 
					  // Ouverture de la fenˆtre du menu
 | 
				
			||||||
  Ouvrir_fenetre(310,190,"Shade");
 | 
					  Ouvrir_fenetre(310,190,"Shade");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // D‚claration & trac‚ du bouton de palette
 | 
					  // Déclaration & tracé du bouton de palette
 | 
				
			||||||
  Fenetre_Definir_bouton_palette(5,16);                             // 1
 | 
					  Fenetre_Definir_bouton_palette(5,16);                             // 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // D‚claration & trac‚ du scroller de s‚lection du nø de d‚grad‚
 | 
					  // Déclaration & tracé du scroller de sélection du n° de dégradé
 | 
				
			||||||
  Fenetre_Definir_bouton_scroller(192,17,84,8,1,Shade_Actuel);      // 2
 | 
					  Fenetre_Definir_bouton_scroller(192,17,84,8,1,Shade_Actuel);      // 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // D‚claration & trac‚ de la zone de d‚finition des d‚grad‚s
 | 
					  // Déclaration & tracé de la zone de définition des dégradés
 | 
				
			||||||
  Fenetre_Definir_bouton_special(8,127,256,53);                     // 3
 | 
					  Fenetre_Definir_bouton_special(8,127,256,53);                     // 3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // D‚claration & trac‚ des boutons de sortie
 | 
					  // Déclaration & tracé des boutons de sortie
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(207,17,51,14,"Cancel",0,1,0x0001);  // 4
 | 
					  Fenetre_Definir_bouton_normal(207,17,51,14,"Cancel",0,1,SDLK_ESCAPE);  // 4
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(261,17,43,14,"OK"    ,0,1,0x001C);  // 5
 | 
					  Fenetre_Definir_bouton_normal(261,17,43,14,"OK"    ,0,1,SDLK_RETURN);  // 5
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // D‚claration & trac‚ des boutons de copie de shade
 | 
					  // Déclaration & tracé des boutons de copie de shade
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(206,87,27,14,"Cpy"   ,1,1,0x002E);  // 6
 | 
					  Fenetre_Definir_bouton_normal(206,87,27,14,"Cpy"   ,1,1,SDLK_c);  // 6
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(234,87,43,14,"Paste" ,1,1,0x0019);  // 7
 | 
					  Fenetre_Definir_bouton_normal(234,87,43,14,"Paste" ,1,1,SDLK_p);  // 7
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // On tagge le bloc
 | 
					  // On tagge le bloc
 | 
				
			||||||
  Tagger_intervalle_palette(0,0);
 | 
					  Tagger_intervalle_palette(0,0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Trac‚ d'un cadre creux autour du bloc d‚grad‚
 | 
					  // Tracé d'un cadre creux autour du bloc dégradé
 | 
				
			||||||
  Fenetre_Afficher_cadre_creux(171,26,18,66);
 | 
					  Fenetre_Afficher_cadre_creux(171,26,18,66);
 | 
				
			||||||
  Block(Fenetre_Pos_X+(Menu_Facteur_X*172),Fenetre_Pos_Y+(Menu_Facteur_Y*27),
 | 
					  Block(Fenetre_Pos_X+(Menu_Facteur_X*172),Fenetre_Pos_Y+(Menu_Facteur_Y*27),
 | 
				
			||||||
        Menu_Facteur_X<<4,Menu_Facteur_Y<<6,CM_Noir);
 | 
					        Menu_Facteur_X<<4,Menu_Facteur_Y<<6,CM_Noir);
 | 
				
			||||||
  // Trac‚ d'un cadre creux autour de tous les d‚grad‚s
 | 
					  // Tracé d'un cadre creux autour de tous les dégradés
 | 
				
			||||||
  Fenetre_Afficher_cadre_creux(223,34,66,50);
 | 
					  Fenetre_Afficher_cadre_creux(223,34,66,50);
 | 
				
			||||||
  Shade_Blocs_degrades();
 | 
					  Shade_Blocs_degrades();
 | 
				
			||||||
  // Trac‚ d'un cadre autour de la zone de d‚finition de d‚grad‚s
 | 
					  // Tracé d'un cadre autour de la zone de définition de dégradés
 | 
				
			||||||
  Fenetre_Afficher_cadre(5,124,262,61);
 | 
					  Fenetre_Afficher_cadre(5,124,262,61);
 | 
				
			||||||
  Afficher_tout_le_shade(Premiere_couleur,Derniere_couleur,Select_Debut,Select_Fin);
 | 
					  Afficher_tout_le_shade(Premiere_couleur,Derniere_couleur,Select_Debut,Select_Fin);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // D‚claration & trac‚ des boutons d'‚dition de shade
 | 
					  // Déclaration & tracé des boutons d'édition de shade
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(  6,107,27,14,"Ins"  ,0,1,0x0052);  // 8
 | 
					  Fenetre_Definir_bouton_normal(  6,107,27,14,"Ins"  ,0,1,SDLK_INSERT);  // 8
 | 
				
			||||||
  Fenetre_Definir_bouton_normal( 38,107,27,14,"Del"  ,0,1,0x0053);  // 9
 | 
					  Fenetre_Definir_bouton_normal( 38,107,27,14,"Del"  ,0,1,SDLK_DELETE);  // 9
 | 
				
			||||||
  Fenetre_Definir_bouton_normal( 66,107,43,14,"Blank",1,1,0x0030);  // 10
 | 
					  Fenetre_Definir_bouton_normal( 66,107,43,14,"Blank",1,1,SDLK_b);  // 10
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(110,107,27,14,"Inv"  ,1,1,0x0017);  // 11
 | 
					  Fenetre_Definir_bouton_normal(110,107,27,14,"Inv"  ,1,1,SDLK_i);  // 11
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(138,107,27,14,"Swp"  ,1,1,0x001F);  // 12
 | 
					  Fenetre_Definir_bouton_normal(138,107,27,14,"Swp"  ,1,1,SDLK_s);  // 12
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // D‚claration & trac‚ des boutons de taggage
 | 
					  // Déclaration & tracé des boutons de taggage
 | 
				
			||||||
  Print_dans_fenetre(268,123,"Disbl"/*"Dsabl"*/,CM_Fonce,CM_Clair);
 | 
					  Print_dans_fenetre(268,123,"Disbl"/*"Dsabl"*/,CM_Fonce,CM_Clair);
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(274,133,27,14,"Set"   ,0,1,0x003B); // 13
 | 
					  Fenetre_Definir_bouton_normal(274,133,27,14,"Set"   ,0,1,SDLK_F1); // 13
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(274,148,27,14,"Clr"   ,0,1,0x003C); // 14
 | 
					  Fenetre_Definir_bouton_normal(274,148,27,14,"Clr"   ,0,1,SDLK_F2); // 14
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // D‚claration & trac‚ de la zone de saisie du pas
 | 
					  // Déclaration & tracé de la zone de saisie du pas
 | 
				
			||||||
  Print_dans_fenetre(272,165,"Step",CM_Fonce,CM_Clair);
 | 
					  Print_dans_fenetre(272,165,"Step",CM_Fonce,CM_Clair);
 | 
				
			||||||
  Fenetre_Definir_bouton_saisie(274,174,3);                         // 15
 | 
					  Fenetre_Definir_bouton_saisie(274,174,3);                         // 15
 | 
				
			||||||
  Bouton_saisie=Fenetre_Liste_boutons_special;
 | 
					  Bouton_saisie=Fenetre_Liste_boutons_special;
 | 
				
			||||||
@ -484,14 +484,14 @@ int Menu_Shade(void)
 | 
				
			|||||||
  Fenetre_Contenu_bouton_saisie(Bouton_saisie,Chaine);
 | 
					  Fenetre_Contenu_bouton_saisie(Bouton_saisie,Chaine);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Bouton Undo
 | 
					  // Bouton Undo
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(170,107,35,14,"Undo",1,1,0x0016);   // 16
 | 
					  Fenetre_Definir_bouton_normal(170,107,35,14,"Undo",1,1,SDLK_u);   // 16
 | 
				
			||||||
  // Bouton Clear
 | 
					  // Bouton Clear
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(278,87,27,14,"Clr",0,1,0x000E);     // 17
 | 
					  Fenetre_Definir_bouton_normal(278,87,27,14,"Clr",0,1,SDLK_BACKSPACE);     // 17
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Bouton Mode
 | 
					  // Bouton Mode
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(244,107,60,14,"",0,1,0x000F);       // 18
 | 
					  Fenetre_Definir_bouton_normal(244,107,60,14,"",0,1,SDLK_TAB);       // 18
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Affichage du nø de shade actif
 | 
					  // Affichage du n° de shade actif
 | 
				
			||||||
  Num2str(Shade_Actuel+1,Chaine,1);
 | 
					  Num2str(Shade_Actuel+1,Chaine,1);
 | 
				
			||||||
  Print_dans_fenetre(210,55,Chaine,CM_Noir,CM_Clair);
 | 
					  Print_dans_fenetre(210,55,Chaine,CM_Noir,CM_Clair);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -501,8 +501,8 @@ int Menu_Shade(void)
 | 
				
			|||||||
  Afficher_curseur();
 | 
					  Afficher_curseur();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*TODO A vérifier :)
 | 
					/*TODO A vérifier :)
 | 
				
			||||||
  Clavier_americain(); // On est oblig‚ de rester en clavier am‚ricain pour
 | 
					  Clavier_americain(); // On est obligé de rester en clavier américain pour
 | 
				
			||||||
                       // que l'on puisse d‚caler la couleur s‚lectionn‚e …
 | 
					                       // que l'on puisse décaler la couleur sélectionnée à
 | 
				
			||||||
                       // l'aide des touches "^" et "$" ("[" et "]").
 | 
					                       // l'aide des touches "^" et "$" ("[" et "]").
 | 
				
			||||||
*/
 | 
					*/
 | 
				
			||||||
  do
 | 
					  do
 | 
				
			||||||
@ -527,11 +527,11 @@ int Menu_Shade(void)
 | 
				
			|||||||
          if (!Ancien_Mouse_K)
 | 
					          if (!Ancien_Mouse_K)
 | 
				
			||||||
          { // On vient de clicker
 | 
					          { // On vient de clicker
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            // On met … jour l'intervalle du Shade
 | 
					            // On met à jour l'intervalle du Shade
 | 
				
			||||||
            Premiere_couleur=Derniere_couleur=Couleur_temporaire;
 | 
					            Premiere_couleur=Derniere_couleur=Couleur_temporaire;
 | 
				
			||||||
            // On tagge le bloc
 | 
					            // On tagge le bloc
 | 
				
			||||||
            Tagger_intervalle_palette(Premiere_couleur,Derniere_couleur);
 | 
					            Tagger_intervalle_palette(Premiere_couleur,Derniere_couleur);
 | 
				
			||||||
            // Trac‚ du bloc d‚grad‚:
 | 
					            // Tracé du bloc dégradé:
 | 
				
			||||||
            Bloc_degrade_dans_fenetre(172,27,Premiere_couleur,Derniere_couleur);
 | 
					            Bloc_degrade_dans_fenetre(172,27,Premiere_couleur,Derniere_couleur);
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
          else
 | 
					          else
 | 
				
			||||||
@ -554,7 +554,7 @@ int Menu_Shade(void)
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
          // On affiche le num‚ro de la couleur s‚lectionn‚e
 | 
					          // On affiche le numéro de la couleur sélectionnée
 | 
				
			||||||
          Afficher_couleur_selectionnee(Premiere_couleur,Derniere_couleur);
 | 
					          Afficher_couleur_selectionnee(Premiere_couleur,Derniere_couleur);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
          Afficher_curseur();
 | 
					          Afficher_curseur();
 | 
				
			||||||
@ -564,20 +564,20 @@ int Menu_Shade(void)
 | 
				
			|||||||
      case  2 : // Gestion du changement de Shade (scroller)
 | 
					      case  2 : // Gestion du changement de Shade (scroller)
 | 
				
			||||||
        Effacer_curseur();
 | 
					        Effacer_curseur();
 | 
				
			||||||
        Shade_Actuel=Fenetre_Attribut2;
 | 
					        Shade_Actuel=Fenetre_Attribut2;
 | 
				
			||||||
        // Affichade du nø de shade actif
 | 
					        // Affichade du n° de shade actif
 | 
				
			||||||
        Num2str(Shade_Actuel+1,Chaine,1);
 | 
					        Num2str(Shade_Actuel+1,Chaine,1);
 | 
				
			||||||
        Print_dans_fenetre(210,55,Chaine,CM_Noir,CM_Clair);
 | 
					        Print_dans_fenetre(210,55,Chaine,CM_Noir,CM_Clair);
 | 
				
			||||||
        // Affichade du Pas
 | 
					        // Affichade du Pas
 | 
				
			||||||
        Num2str(Shade_Liste[Shade_Actuel].Pas,Chaine,3);
 | 
					        Num2str(Shade_Liste[Shade_Actuel].Pas,Chaine,3);
 | 
				
			||||||
        Print_dans_fenetre(276,176,Chaine,CM_Noir,CM_Clair);
 | 
					        Print_dans_fenetre(276,176,Chaine,CM_Noir,CM_Clair);
 | 
				
			||||||
        // Trac‚ du bloc d‚grad‚:
 | 
					        // Tracé du bloc dégradé:
 | 
				
			||||||
        Afficher_tout_le_shade(Premiere_couleur,Derniere_couleur,Select_Debut,Select_Fin);
 | 
					        Afficher_tout_le_shade(Premiere_couleur,Derniere_couleur,Select_Debut,Select_Fin);
 | 
				
			||||||
        Afficher_curseur();
 | 
					        Afficher_curseur();
 | 
				
			||||||
        // On place le nouveau shade dans le buffer du Undo
 | 
					        // On place le nouveau shade dans le buffer du Undo
 | 
				
			||||||
        memcpy(Buffer_Undo,Shade_Liste[Shade_Actuel].Liste,512*sizeof(word));
 | 
					        memcpy(Buffer_Undo,Shade_Liste[Shade_Actuel].Liste,512*sizeof(word));
 | 
				
			||||||
        break;
 | 
					        break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      case  3 : // Gestion de la zone de d‚finition de shades
 | 
					      case  3 : // Gestion de la zone de définition de shades
 | 
				
			||||||
        if (((((Mouse_Y-Fenetre_Pos_Y)/Menu_Facteur_Y)-127)%7)<4)
 | 
					        if (((((Mouse_Y-Fenetre_Pos_Y)/Menu_Facteur_Y)-127)%7)<4)
 | 
				
			||||||
        if ( (Mouse_X!=Ancien_Mouse_X2) || (Mouse_Y!=Ancien_Mouse_Y2) || (Mouse_K!=Ancien_Mouse_K2) )
 | 
					        if ( (Mouse_X!=Ancien_Mouse_X2) || (Mouse_Y!=Ancien_Mouse_Y2) || (Mouse_K!=Ancien_Mouse_K2) )
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
@ -615,12 +615,12 @@ int Menu_Shade(void)
 | 
				
			|||||||
        else
 | 
					        else
 | 
				
			||||||
          Temp=Premiere_couleur-Derniere_couleur;
 | 
					          Temp=Premiere_couleur-Derniere_couleur;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (Select_Debut==Select_Fin) // Une couleur s‚lectionn‚e
 | 
					        if (Select_Debut==Select_Fin) // Une couleur sélectionnée
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
          if (Fenetre_Attribut1==2)
 | 
					          if (Fenetre_Attribut1==2)
 | 
				
			||||||
            Supprimer_shade(Select_Debut,Select_Debut+Temp);
 | 
					            Supprimer_shade(Select_Debut,Select_Debut+Temp);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        else                          // Un bloc s‚lectionn‚
 | 
					        else                          // Un bloc sélectionné
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
          Supprimer_shade(Select_Debut,Select_Fin);
 | 
					          Supprimer_shade(Select_Debut,Select_Fin);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -647,7 +647,7 @@ int Menu_Shade(void)
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
        Inserer_shade(Premiere_couleur,Derniere_couleur,Select_Debut);
 | 
					        Inserer_shade(Premiere_couleur,Derniere_couleur,Select_Debut);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // On s‚lectionne la position juste aprŠs ce qu'on vient d'ins‚rer
 | 
					        // On sélectionne la position juste après ce qu'on vient d'insérer
 | 
				
			||||||
        Select_Debut+=Temp+1;
 | 
					        Select_Debut+=Temp+1;
 | 
				
			||||||
        if (Select_Debut>=512)
 | 
					        if (Select_Debut>=512)
 | 
				
			||||||
          Select_Debut=511;
 | 
					          Select_Debut=511;
 | 
				
			||||||
@ -752,7 +752,7 @@ int Menu_Shade(void)
 | 
				
			|||||||
          // On place le shade dans le buffer du Undo
 | 
					          // On place le shade dans le buffer du Undo
 | 
				
			||||||
          memcpy(Buffer_Undo,Shade_Liste[Shade_Actuel].Liste,512*sizeof(word));
 | 
					          memcpy(Buffer_Undo,Shade_Liste[Shade_Actuel].Liste,512*sizeof(word));
 | 
				
			||||||
          // Et on le modifie
 | 
					          // Et on le modifie
 | 
				
			||||||
          // On ‚change le bloc avec sa destination
 | 
					          // On échange le bloc avec sa destination
 | 
				
			||||||
          if (Select_Debut<=Select_Fin)
 | 
					          if (Select_Debut<=Select_Fin)
 | 
				
			||||||
          {
 | 
					          {
 | 
				
			||||||
            Temp=(Case_temporaire+Select_Fin-Select_Debut<512)?Select_Fin+1-Select_Debut:512-Case_temporaire;
 | 
					            Temp=(Case_temporaire+Select_Fin-Select_Debut<512)?Select_Fin+1-Select_Debut:512-Case_temporaire;
 | 
				
			||||||
@ -763,7 +763,7 @@ int Menu_Shade(void)
 | 
				
			|||||||
            Temp=(Case_temporaire+Select_Debut-Select_Fin<512)?Select_Debut+1-Select_Fin:512-Case_temporaire;
 | 
					            Temp=(Case_temporaire+Select_Debut-Select_Fin<512)?Select_Debut+1-Select_Fin:512-Case_temporaire;
 | 
				
			||||||
            Swap_shade(Select_Fin,Case_temporaire,Temp);
 | 
					            Swap_shade(Select_Fin,Case_temporaire,Temp);
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
          // On place la s‚lection sur la nouvelle position du bloc
 | 
					          // On place la sélection sur la nouvelle position du bloc
 | 
				
			||||||
          Select_Debut=Case_temporaire;
 | 
					          Select_Debut=Case_temporaire;
 | 
				
			||||||
          Select_Fin=Select_Debut+Temp-1;
 | 
					          Select_Fin=Select_Debut+Temp-1;
 | 
				
			||||||
          // Et on raffiche tout
 | 
					          // Et on raffiche tout
 | 
				
			||||||
@ -853,11 +853,11 @@ int Menu_Shade(void)
 | 
				
			|||||||
    if (!Mouse_K)
 | 
					    if (!Mouse_K)
 | 
				
			||||||
    switch (Touche)
 | 
					    switch (Touche)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
      case 0x001A : // D‚caler couleur dans palette vers la gauche
 | 
					      case 0x001A : // Décaler couleur dans palette vers la gauche
 | 
				
			||||||
      case 0x001B : // D‚caler couleur dans palette vers la droite
 | 
					      case 0x001B : // Décaler couleur dans palette vers la droite
 | 
				
			||||||
        if (Premiere_couleur==Derniere_couleur)
 | 
					        if (Premiere_couleur==Derniere_couleur)
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
          if (Touche==0x001A)
 | 
					          if (Touche==SDLK_LEFTBRACKET)
 | 
				
			||||||
          {
 | 
					          {
 | 
				
			||||||
            Premiere_couleur--;
 | 
					            Premiere_couleur--;
 | 
				
			||||||
            Derniere_couleur--;
 | 
					            Derniere_couleur--;
 | 
				
			||||||
@ -872,7 +872,7 @@ int Menu_Shade(void)
 | 
				
			|||||||
          Block(Fenetre_Pos_X+(Menu_Facteur_X*172),
 | 
					          Block(Fenetre_Pos_X+(Menu_Facteur_X*172),
 | 
				
			||||||
                Fenetre_Pos_Y+(Menu_Facteur_Y*27),
 | 
					                Fenetre_Pos_Y+(Menu_Facteur_Y*27),
 | 
				
			||||||
                Menu_Facteur_X<<4,Menu_Facteur_Y*64,Premiere_couleur);
 | 
					                Menu_Facteur_X<<4,Menu_Facteur_Y*64,Premiere_couleur);
 | 
				
			||||||
          // On affiche le num‚ro de la couleur s‚lectionn‚e
 | 
					          // On affiche le numéro de la couleur sélectionnée
 | 
				
			||||||
          Afficher_couleur_selectionnee(Premiere_couleur,Derniere_couleur);
 | 
					          Afficher_couleur_selectionnee(Premiere_couleur,Derniere_couleur);
 | 
				
			||||||
          Afficher_curseur();
 | 
					          Afficher_curseur();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@ -925,7 +925,7 @@ int Menu_Shade(void)
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
        break;
 | 
					        break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      case 0x0029 : // R‚cup‚ration d'une couleur derriŠre le menu
 | 
					      case 0x0029 : // Récupération d'une couleur derrière le menu
 | 
				
			||||||
      case 0x0033 :
 | 
					      case 0x0033 :
 | 
				
			||||||
        Recuperer_couleur_derriere_fenetre(&Couleur,&Click);
 | 
					        Recuperer_couleur_derriere_fenetre(&Couleur,&Click);
 | 
				
			||||||
        if (Click)
 | 
					        if (Click)
 | 
				
			||||||
@ -933,14 +933,14 @@ int Menu_Shade(void)
 | 
				
			|||||||
          Effacer_curseur();
 | 
					          Effacer_curseur();
 | 
				
			||||||
          Couleur_temporaire=Couleur;
 | 
					          Couleur_temporaire=Couleur;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
          // On met … jour l'intervalle du Shade
 | 
					          // On met à jour l'intervalle du Shade
 | 
				
			||||||
          Premiere_couleur=Derniere_couleur=Couleur_temporaire;
 | 
					          Premiere_couleur=Derniere_couleur=Couleur_temporaire;
 | 
				
			||||||
          // On tagge le bloc
 | 
					          // On tagge le bloc
 | 
				
			||||||
          Tagger_intervalle_palette(Premiere_couleur,Derniere_couleur);
 | 
					          Tagger_intervalle_palette(Premiere_couleur,Derniere_couleur);
 | 
				
			||||||
          // Trac‚ du bloc d‚grad‚:
 | 
					          // Tracé du bloc dégradé:
 | 
				
			||||||
          Bloc_degrade_dans_fenetre(172,27,Premiere_couleur,Derniere_couleur);
 | 
					          Bloc_degrade_dans_fenetre(172,27,Premiere_couleur,Derniere_couleur);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
          // On affiche le num‚ro de la couleur s‚lectionn‚e
 | 
					          // On affiche le numéro de la couleur sélectionnée
 | 
				
			||||||
          Afficher_couleur_selectionnee(Premiere_couleur,Derniere_couleur);
 | 
					          Afficher_couleur_selectionnee(Premiere_couleur,Derniere_couleur);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
          Afficher_curseur();
 | 
					          Afficher_curseur();
 | 
				
			||||||
@ -951,7 +951,7 @@ int Menu_Shade(void)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
/* TODO  Clavier_de_depart(); */
 | 
					/* TODO  Clavier_de_depart(); */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Actions … r‚aliser en sortant du menu suivant OK ou Cancel
 | 
					  // Actions à réaliser en sortant du menu suivant OK ou Cancel
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fermer_fenetre();
 | 
					  Fermer_fenetre();
 | 
				
			||||||
  free(Buffer_Undo);
 | 
					  free(Buffer_Undo);
 | 
				
			||||||
@ -965,11 +965,11 @@ int Menu_Shade(void)
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
void Bouton_Shade_Menu(void)
 | 
					void Bouton_Shade_Menu(void)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
  struct T_Shade * Shade_Liste_Backup;        // Anciennes donn‚es des shades
 | 
					  struct T_Shade * Shade_Liste_Backup;        // Anciennes données des shades
 | 
				
			||||||
  byte Ancien_shade;                              // Ancien nø de shade actif
 | 
					  byte Ancien_shade;                              // Ancien n° de shade actif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Backup des anciennes donn‚es
 | 
					  // Backup des anciennes données
 | 
				
			||||||
  Shade_Liste_Backup=(struct T_Shade *)malloc(sizeof(Shade_Liste));
 | 
					  Shade_Liste_Backup=(struct T_Shade *)malloc(sizeof(Shade_Liste));
 | 
				
			||||||
  memcpy(Shade_Liste_Backup,Shade_Liste,sizeof(Shade_Liste));
 | 
					  memcpy(Shade_Liste_Backup,Shade_Liste,sizeof(Shade_Liste));
 | 
				
			||||||
  Ancien_shade=Shade_Actuel;
 | 
					  Ancien_shade=Shade_Actuel;
 | 
				
			||||||
@ -986,7 +986,7 @@ void Bouton_Shade_Menu(void)
 | 
				
			|||||||
                 Shade_Liste[Shade_Actuel].Mode,
 | 
					                 Shade_Liste[Shade_Actuel].Mode,
 | 
				
			||||||
                 Shade_Table_gauche,Shade_Table_droite);
 | 
					                 Shade_Table_gauche,Shade_Table_droite);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // Si avant de rentrer dans le menu on n'‚tait pas en mode Shade
 | 
					    // Si avant de rentrer dans le menu on n'était pas en mode Shade
 | 
				
			||||||
    if (!Shade_Mode)
 | 
					    if (!Shade_Mode)
 | 
				
			||||||
      Bouton_Shade_Mode(); // => On y passe (cool!)
 | 
					      Bouton_Shade_Mode(); // => On y passe (cool!)
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
@ -1005,17 +1005,17 @@ void Bouton_Quick_shade_Menu(void)
 | 
				
			|||||||
  int Temp;
 | 
					  int Temp;
 | 
				
			||||||
  char Chaine[4];
 | 
					  char Chaine[4];
 | 
				
			||||||
  byte Step_Backup=Quick_shade_Step; // Backup des
 | 
					  byte Step_Backup=Quick_shade_Step; // Backup des
 | 
				
			||||||
  byte Loop_Backup=Quick_shade_Loop; // anciennes donn‚es
 | 
					  byte Loop_Backup=Quick_shade_Loop; // anciennes données
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Ouvrir_fenetre(142,56,"Quick-shade");
 | 
					  Ouvrir_fenetre(142,56,"Quick-shade");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(76,36,60,14,"OK",0,1,0x001C);     // 1
 | 
					  Fenetre_Definir_bouton_normal(76,36,60,14,"OK",0,1,SDLK_RETURN);     // 1
 | 
				
			||||||
  Fenetre_Definir_bouton_normal( 6,36,60,14,"Cancel",0,1,0x0001); // 2
 | 
					  Fenetre_Definir_bouton_normal( 6,36,60,14,"Cancel",0,1,SDLK_ESCAPE); // 2
 | 
				
			||||||
  Fenetre_Definir_bouton_normal(76,18,60,14,"",0,1,0x000F);       // 3
 | 
					  Fenetre_Definir_bouton_normal(76,18,60,14,"",0,1,SDLK_TAB);       // 3
 | 
				
			||||||
  Afficher_mode_du_shade(83,21,Quick_shade_Loop);
 | 
					  Afficher_mode_du_shade(83,21,Quick_shade_Loop);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // D‚claration & trac‚ de la zone de saisie du pas
 | 
					  // Déclaration & tracé de la zone de saisie du pas
 | 
				
			||||||
  Print_dans_fenetre(5,21,"Step",CM_Fonce,CM_Clair);
 | 
					  Print_dans_fenetre(5,21,"Step",CM_Fonce,CM_Clair);
 | 
				
			||||||
  Fenetre_Definir_bouton_saisie(40,19,3);                         // 4
 | 
					  Fenetre_Definir_bouton_saisie(40,19,3);                         // 4
 | 
				
			||||||
  Num2str(Quick_shade_Step,Chaine,3);
 | 
					  Num2str(Quick_shade_Step,Chaine,3);
 | 
				
			||||||
@ -1069,7 +1069,7 @@ void Bouton_Quick_shade_Menu(void)
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
  else // OK
 | 
					  else // OK
 | 
				
			||||||
  {
 | 
					  {
 | 
				
			||||||
    // Si avant de rentrer dans le menu on n'‚tait pas en mode Quick-Shade
 | 
					    // Si avant de rentrer dans le menu on n'était pas en mode Quick-Shade
 | 
				
			||||||
    if (!Quick_shade_Mode)
 | 
					    if (!Quick_shade_Mode)
 | 
				
			||||||
      Bouton_Quick_shade_Mode(); // => On y passe (cool!)
 | 
					      Bouton_Quick_shade_Mode(); // => On y passe (cool!)
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user