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:
Yves Rizoud 2008-09-26 23:08:21 +00:00
parent a7202fa2f6
commit 73ca66c084
15 changed files with 780 additions and 354 deletions

View File

@ -15,7 +15,7 @@ endif
.PHONY : all debug release clean depend zip
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
OBJDIR = obj/

View File

@ -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 \
readini.h saveini.h linux.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 \
boutons.h pages.h global.h loadsave.h erreurs.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
readline.o: readline.c const.h struct.h global.h loadsave.h graph.h \
divers.h erreurs.h linux.h
moteur.o: moteur.c boutons.h operatio.h shade.h erreurs.h const.h \
struct.h global.h loadsave.h graph.h divers.h special.h linux.h
moteur.o: moteur.c const.h struct.h global.h loadsave.h graph.h divers.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 \
erreurs.h linux.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
shade.o: shade.c global.h struct.h const.h loadsave.h graph.h moteur.h \
divers.h readline.h
clavier.o: clavier.c global.h struct.h const.h loadsave.h

26
aide.c
View File

@ -129,13 +129,13 @@ void Bouton_Aide(void)
Fenetre_Pos_Y+(Menu_Facteur_Y*18),
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,
16,Position_d_aide_en_cours); // 2
Fenetre_Definir_bouton_normal( 9,154, 59,14,"Credits" ,1,1,0x002E); // 3
Fenetre_Definir_bouton_normal( 71,154, 75,14,"Register?",1,1,0x0013); // 4
Fenetre_Definir_bouton_normal(149,154, 75,14,"Greetings",1,1,0x0022); // 5
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,SDLK_r); // 4
Fenetre_Definir_bouton_normal(149,154, 75,14,"Greetings",1,1,SDLK_g); // 5
Afficher_aide();
@ -174,42 +174,42 @@ void Bouton_Aide(void)
// Gestion des touches de déplacement dans la liste
switch (Touche)
{
case 0x0048 : // Haut
case SDLK_UP : // Haut
if (Position_d_aide_en_cours>0)
Position_d_aide_en_cours--;
Scroller_aide();
break;
case 0x0050 : // Bas
case SDLK_DOWN : // Bas
if (Position_d_aide_en_cours<Nb_lignes-16)
Position_d_aide_en_cours++;
Scroller_aide();
break;
case 0x0049 : // PageUp
case SDLK_PAGEUP : // PageUp
if (Position_d_aide_en_cours>15)
Position_d_aide_en_cours-=15;
else
Position_d_aide_en_cours=0;
Scroller_aide();
break;
case 0x0051 : // PageDown
case SDLK_PAGEDOWN : // PageDown
if (Position_d_aide_en_cours<Nb_lignes-31)
Position_d_aide_en_cours+=15;
else
Position_d_aide_en_cours=Nb_lignes-16;
Scroller_aide();
break;
case 0x0047 : // Home
case SDLK_HOME : // Home
Position_d_aide_en_cours=0;
Scroller_aide();
break;
case 0x004F : // End
case SDLK_END : // End
Position_d_aide_en_cours=Nb_lignes-16;
Scroller_aide();
break;
}
}
while ((Bouton_clicke!=1) && (Touche!=0x001C));
while ((Bouton_clicke!=1) && (Touche!=SDLK_RETURN));
Fermer_fenetre();
Desenclencher_bouton(BOUTON_AIDE);
@ -243,7 +243,7 @@ void Bouton_Stats(void)
Fenetre_Pos_Y+(Menu_Facteur_Y*18),
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
Print_dans_fenetre(10,19,"Version:",STATS_COULEUR_TITRES,CM_Noir);
@ -338,7 +338,7 @@ void Bouton_Stats(void)
{
Bouton_clicke=Fenetre_Bouton_clicke();
}
while ( (Bouton_clicke!=1) && (Touche!=0x001C) );
while ( (Bouton_clicke!=1) && (Touche!=SDLK_RETURN) );
Fermer_fenetre();
Desenclencher_bouton(BOUTON_AIDE);

327
boutons.c
View File

@ -40,7 +40,7 @@ void Bouton_***(void)
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
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(12,28,"be implemented in",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();
do
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();
@ -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(24,28,"to know how to obtain",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();
do
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();
Afficher_curseur();
@ -114,7 +114,7 @@ void Bouton_Message_initial(void)
char Chaine[21];
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);
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,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);
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();
@ -149,7 +142,7 @@ void Bouton_Message_initial(void)
{
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();
Afficher_curseur();
@ -388,9 +381,9 @@ byte Bouton_Quitter_Routine_locale(void)
// On commence par afficher la fenêtre de QUIT
Ouvrir_fenetre(160,84,"Quit ?");
Fenetre_Definir_bouton_normal(20,20,120,14,"Stay",0,1,0x0001); // 1
Fenetre_Definir_bouton_normal(20,40,120,14,"Save & quit",1,1,0x001F); // 2
Fenetre_Definir_bouton_normal(20,60,120,14,"Discard (Quit)",1,1,0x0020);// 3
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,SDLK_s); // 2
Fenetre_Definir_bouton_normal(20,60,120,14,"Discard (Quit)",1,1,SDLK_d);// 3
Afficher_curseur();
do
@ -509,17 +502,17 @@ void Menu_Tag_couleurs(char * En_tete, byte * Table, byte * Mode, byte Cancel)
Ouvrir_fenetre(176,150,En_tete);
Fenetre_Definir_bouton_palette(6,38); // 1
Fenetre_Definir_bouton_normal( 7, 19,78,14,"Clear" ,1,1,0x002E); // 2
Fenetre_Definir_bouton_normal(91, 19,78,14,"Invert",1,1,0x0017); // 3
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,SDLK_i); // 3
if (Cancel)
{
Fenetre_Definir_bouton_normal(91,129,78,14,"OK" ,0,1,0x001C); // 4
Fenetre_Definir_bouton_normal( 7,129,78,14,"Cancel",0,1,0x0001); // 5
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,SDLK_ESCAPE); // 5
// On enregistre la table dans un backup au cas où on ferait Cancel
memcpy(Backup_table,Table,256);
}
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
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)
switch (Touche)
{
case 0x0029 : // Récupération d'une couleur derrière le menu
case 0x0033 :
case SDLK_BACKQUOTE : // Récupération d'une couleur derrière le menu
case SDLK_COMMA :
Recuperer_couleur_derriere_fenetre(&Couleur,&Click);
if (Click)
{
@ -748,44 +741,44 @@ void Bouton_Settings(void)
Print_dans_fenetre(292,123,"Y" ,CM_Fonce,CM_Clair);
// Boutons de fontes
Fenetre_Definir_bouton_normal(17,28,59,14,"Classic",0,1,0xFFFF); // 1
Fenetre_Definir_bouton_normal(91,28,59,14,"Fun" ,0,1,0xFFFF); // 2
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,SDLK_LAST); // 2
// 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, 43,131,14,"Hidden dir. : ",0,1,0xFFFF); // 4
Fenetre_Definir_bouton_normal(167, 58,131,14,"System dir. : ",0,1,0xFFFF); // 5
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,SDLK_LAST); // 4
Fenetre_Definir_bouton_normal(167, 58,131,14,"System dir. : ",0,1,SDLK_LAST); // 5
// 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
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
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
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
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
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
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
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
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)
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
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
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
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
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)
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))
Settings_Afficher_config(&Config_choisie);
}
while ( (Bouton_clicke!=19) && (Touche!=0x001C) );
while ( (Bouton_clicke!=19) && (Touche!=SDLK_RETURN) );
Config=Config_choisie;
@ -1108,12 +1101,12 @@ void Bouton_Copy_page(void)
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, 37,148,14,"Pixels only" , 3,1,0x002D); // 2
Fenetre_Definir_bouton_normal(10, 54,148,14,"Palette only" , 1,1,0x0019); // 3
Fenetre_Definir_bouton_normal(10, 71,148,14,"Some colors only" , 6,1,0x002E); // 4
Fenetre_Definir_bouton_normal(10, 88,148,14,"Palette and remap",13,1,0x0013); // 5
Fenetre_Definir_bouton_normal(44,114, 80,14,"Cancel" , 0,1,0x0001); // 6
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,SDLK_x); // 2
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,SDLK_c); // 4
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,SDLK_ESCAPE); // 6
Afficher_curseur();
@ -1317,8 +1310,8 @@ void Bouton_Resol(void)
Print_dans_fenetre(102,170,"Imperfect" ,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, 35,67,14,"Cancel" ,0,1,0x0001); // 2
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,SDLK_ESCAPE); // 2
Fenetre_Definir_bouton_saisie( 60, 35,4); // 3
Bouton_saisie_Width=Fenetre_Liste_boutons_special;
@ -1352,7 +1345,7 @@ void Bouton_Resol(void)
// Les 12 petits boutons indiquant l'état des modes
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);
Cocher_bouton_mode( 18,172,0);
@ -1469,7 +1462,7 @@ void Bouton_Resol(void)
// Gestion des touches de déplacement dans la liste
switch (Touche)
{
case 0x0048 : // Haut
case SDLK_UP : // Haut
if (Position_curseur>0)
Position_curseur--;
else
@ -1477,7 +1470,7 @@ void Bouton_Resol(void)
Debut_liste--;
Scroller_la_liste_des_modes(Debut_liste,Position_curseur,&Mode_choisi);
break;
case 0x0050 : // Bas
case SDLK_DOWN : // Bas
if (Position_curseur<11)
Position_curseur++;
else
@ -1485,7 +1478,7 @@ void Bouton_Resol(void)
Debut_liste++;
Scroller_la_liste_des_modes(Debut_liste,Position_curseur,&Mode_choisi);
break;
case 0x0049 : // PageUp
case SDLK_PAGEUP : // PageUp
if (Position_curseur>0)
Position_curseur=0;
else
@ -1497,7 +1490,7 @@ void Bouton_Resol(void)
}
Scroller_la_liste_des_modes(Debut_liste,Position_curseur,&Mode_choisi);
break;
case 0x0051 : // PageDown
case SDLK_PAGEDOWN : // PageDown
if (Position_curseur<11)
Position_curseur=11;
else
@ -1509,12 +1502,12 @@ void Bouton_Resol(void)
}
Scroller_la_liste_des_modes(Debut_liste,Position_curseur,&Mode_choisi);
break;
case 0x0047 : // Home
case SDLK_HOME : // Home
Debut_liste=0;
Position_curseur=0;
Scroller_la_liste_des_modes(Debut_liste,Position_curseur,&Mode_choisi);
break;
case 0x004F : // End
case SDLK_END : // End
Debut_liste=NB_MODES_VIDEO-12;
Position_curseur=11;
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;
// Définition du bouton de sens
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
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);
Fenetre_Definir_bouton_normal(178,112,51,14,"OK",0,1,0x001C); // 6
Fenetre_Definir_bouton_normal(123,112,51,14,"Cancel",0,1,0x0001); // 7
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,SDLK_ESCAPE); // 7
Print_dans_fenetre(5,60,"MIX",CM_Fonce,CM_Clair);
@ -1916,8 +1909,8 @@ void Bouton_Degrades(void)
if (!Mouse_K)
switch (Touche)
{
case 0x0029 : // Récupération d'une couleur derrière le menu
case 0x0033 :
case SDLK_BACKQUOTE : // Récupération d'une couleur derrière le menu
case SDLK_COMMA :
Recuperer_couleur_derriere_fenetre(&Couleur,&Click);
if (Click)
{
@ -2033,13 +2026,13 @@ void Bouton_Menu_pinceaux(void)
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++)
{
Pos_X=13+((Indice%12)*24);
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);
}
@ -2322,7 +2315,7 @@ byte Bouton_Load_ou_Save(byte Load, byte Image)
Ouvrir_fenetre(310,190+FILENAMESPACE,"Load picture");
else
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
{
@ -2330,7 +2323,7 @@ byte Bouton_Load_ou_Save(byte Load, byte Image)
Ouvrir_fenetre(310,190+FILENAMESPACE,"Save picture");
else
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 *.*
{
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);
}
Fenetre_Definir_bouton_normal(125,139+FILENAMESPACE,51,14,"Cancel",0,1,0x0001); // 2
Fenetre_Definir_bouton_normal(125, 89+FILENAMESPACE,51,14,"Delete",0,1,0x0053); // 3
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,SDLK_DELETE); // 3
// Cadre autour des formats
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++)
{
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);
}
@ -2635,44 +2628,44 @@ byte Bouton_Load_ou_Save(byte Load, byte Image)
switch (Touche)
{
case 0x0000 : break;
case 0x0050 : // Bas
case SDLK_UNKNOWN : break;
case SDLK_DOWN : // Bas
*Fichier_recherche=0;
Effacer_curseur();
Select_Scroll_Down(&Principal_File_list_Position,&Principal_File_list_Decalage);
On_vient_de_scroller_dans_le_fileselect(Scroller_de_fichiers);
break;
case 0x0048 : // Haut
case SDLK_UP : // Haut
*Fichier_recherche=0;
Effacer_curseur();
Select_Scroll_Up(&Principal_File_list_Position,&Principal_File_list_Decalage);
On_vient_de_scroller_dans_le_fileselect(Scroller_de_fichiers);
break;
case 0x0051 : // Page Down
case SDLK_PAGEDOWN : // Page Down
*Fichier_recherche=0;
Effacer_curseur();
Select_Page_Down(&Principal_File_list_Position,&Principal_File_list_Decalage);
On_vient_de_scroller_dans_le_fileselect(Scroller_de_fichiers);
break;
case 0x0049 : // Page Up
case SDLK_PAGEUP : // Page Up
*Fichier_recherche=0;
Effacer_curseur();
Select_Page_Up(&Principal_File_list_Position,&Principal_File_list_Decalage);
On_vient_de_scroller_dans_le_fileselect(Scroller_de_fichiers);
break;
case 0x004F : // End
case SDLK_END : // End
*Fichier_recherche=0;
Effacer_curseur();
Select_End(&Principal_File_list_Position,&Principal_File_list_Decalage);
On_vient_de_scroller_dans_le_fileselect(Scroller_de_fichiers);
break;
case 0x0047 : // Home
case SDLK_HOME : // Home
*Fichier_recherche=0;
Effacer_curseur();
Select_Home(&Principal_File_list_Position,&Principal_File_list_Decalage);
On_vient_de_scroller_dans_le_fileselect(Scroller_de_fichiers);
break;
case 0x000E : // Backspace
case SDLK_BACKSPACE : // Backspace
*Fichier_recherche=0;
if (Principal_Repertoire_courant[3]) // Si on n'est pas à la racine...
{ // ... on va dans le répertoire parent.
@ -3599,20 +3592,20 @@ void Bouton_Menu_Loupe(void)
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( 41,25,27,14, "x3",0,Loupe_Facteur!= 3,0x003C); // 3
Fenetre_Definir_bouton_normal( 73,25,27,14, "x4",0,Loupe_Facteur!= 4,0x003D); // 4
Fenetre_Definir_bouton_normal(105,25,27,14, "x5",0,Loupe_Facteur!= 5,0x003E); // 5
Fenetre_Definir_bouton_normal( 9,45,27,14, "x6",0,Loupe_Facteur!= 6,0x003F); // 6
Fenetre_Definir_bouton_normal( 41,45,27,14, "x8",0,Loupe_Facteur!= 8,0x0040); // 7
Fenetre_Definir_bouton_normal( 73,45,27,14,"x10",0,Loupe_Facteur!=10,0x0041); // 8
Fenetre_Definir_bouton_normal(105,45,27,14,"x12",0,Loupe_Facteur!=12,0x0042); // 9
Fenetre_Definir_bouton_normal( 9,65,27,14,"x14",0,Loupe_Facteur!=14,0x0043); // 10
Fenetre_Definir_bouton_normal( 41,65,27,14,"x16",0,Loupe_Facteur!=16,0x0044); // 11
Fenetre_Definir_bouton_normal( 73,65,27,14,"x18",0,Loupe_Facteur!=18,0x0085); // 12
Fenetre_Definir_bouton_normal(105,65,27,14,"x20",0,Loupe_Facteur!=20,0x0086); // 13
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,SDLK_F2); // 3
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,SDLK_F4); // 5
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,SDLK_F6); // 7
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,SDLK_F8); // 9
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,SDLK_F10); // 11
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,SDLK_F12); // 13
Afficher_curseur();
@ -3714,8 +3707,8 @@ void Bouton_Menu_Grille(void)
Ouvrir_fenetre(133,98,"Grid");
Fenetre_Definir_bouton_normal(12,72,51,14,"Cancel",0,1,0x0001); // 1
Fenetre_Definir_bouton_normal(70,72,51,14,"OK" ,0,1,0x001C); // 2
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,SDLK_RETURN); // 2
Print_dans_fenetre(19,26, "X:",CM_Fonce,CM_Clair);
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(137,83,167,53);
Fenetre_Definir_bouton_normal(236,141, 67,14,"Cancel" ,0,1,0x0001); // 1
Fenetre_Definir_bouton_normal( 19, 46, 27,14,"X\035" ,1,1,0x002D); // 2
Fenetre_Definir_bouton_normal( 19, 61, 27,14,"Y\022" ,1,1,0x0015); // 3
Fenetre_Definir_bouton_normal( 58, 46, 37,14,"90°" ,0,1,0xFFFF); // 4
Fenetre_Definir_bouton_normal( 96, 46, 37,14,"180°" ,0,1,0xFFFF); // 5
Fenetre_Definir_bouton_normal( 58, 61, 75,14,"any angle" ,0,1,0xFFFF); // 6
Fenetre_Definir_bouton_normal(145, 46, 67,14,"Stretch" ,2,1,0x0014); // 7
Fenetre_Definir_bouton_normal(145, 61, 67,14,"Distort" ,1,1,0x0020); // 8
Fenetre_Definir_bouton_normal(155, 99,131,14,"Recolorize" ,1,1,0x0013); // 9
Fenetre_Definir_bouton_normal(155,117,131,14,"Get brush colors",1,1,0x0022); // 10
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,SDLK_x); // 2
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,SDLK_LAST); // 4
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,SDLK_LAST); // 6
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,SDLK_d); // 8
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,SDLK_g); // 10
// 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(103, 90,11,11,"",0,1,0x0049); // 12
Fenetre_Definir_bouton_normal( 89,104,11,11,"",0,1,0x004C); // 13
Fenetre_Definir_bouton_normal( 75,118,11,11,"",0,1,0x004F); // 14
Fenetre_Definir_bouton_normal(103,118,11,11,"",0,1,0x0051); // 15
Fenetre_Definir_bouton_normal( 75, 90,11,11,"",0,1,SDLK_HOME); // 11
Fenetre_Definir_bouton_normal(103, 90,11,11,"",0,1,SDLK_PAGEUP); // 12
Fenetre_Definir_bouton_normal( 89,104,11,11,"",0,1,SDLK_KP5); // 13
Fenetre_Definir_bouton_normal( 75,118,11,11,"",0,1,SDLK_END); // 14
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,61,67,14,"Nibble" ,1,1,0x0031); // 17
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,SDLK_n); // 17
Fenetre_Definir_bouton_normal( 7,141, 60,14,"Load",1,1,0x0026); // 18
Fenetre_Definir_bouton_normal( 70,141, 60,14,"Save",1,1,0x001F); // 19
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,SDLK_s); // 19
Print_dans_fenetre( 80, 24,"Shape modifications",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");
Fenetre_Definir_bouton_normal(82,59,53,14,"Cancel",0,1,0x0001); // 1
Fenetre_Definir_bouton_normal(82,88,53,14,"OK" ,0,1,0x001C); // 2
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,SDLK_RETURN); // 2
Fenetre_Afficher_cadre(6,17,130,37);
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 (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);
@ -4224,14 +4217,14 @@ void Bouton_Colorize_Menu(void)
Print_dans_fenetre(16,23,"Opacity:",CM_Fonce,CM_Clair);
Fenetre_Definir_bouton_saisie(87,21,3); // 1
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_Definir_bouton_normal(16,54,108,14,"Additive" ,2,1,0x0020); // 3
Fenetre_Definir_bouton_normal(16,71,108,14,"Subtractive",1,1,0x001F); // 4
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,SDLK_s); // 4
Fenetre_Definir_bouton_normal(16,94, 51,14,"Cancel" ,0,1,0x0001); // 5
Fenetre_Definir_bouton_normal(73,94, 51,14,"OK" ,0,1,0x001C); // 6
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,SDLK_RETURN); // 6
Num2str(Colorize_Opacite,Chaine,3);
Fenetre_Contenu_bouton_saisie(Fenetre_Liste_boutons_special,Chaine);
@ -4317,8 +4310,8 @@ void Bouton_Tiling_Menu(void)
Ouvrir_fenetre(138,79,"Tiling");
Fenetre_Definir_bouton_normal(13,55,51,14,"Cancel",0,1,0x0001); // 1
Fenetre_Definir_bouton_normal(74,55,51,14,"OK" ,0,1,0x001C); // 2
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,SDLK_RETURN); // 2
Fenetre_Definir_bouton_saisie(91,21,4); // 3
Bouton_saisie_Decalage_X=Fenetre_Liste_boutons_special;
Fenetre_Definir_bouton_saisie(91,35,4); // 4
@ -4461,25 +4454,25 @@ void Bouton_Spray_Menu(void)
Ouvrir_fenetre(226,170,"Spray");
Fenetre_Definir_bouton_normal(110,148,51,14,"Cancel" ,0,1,0x0001); // 1
Fenetre_Definir_bouton_normal(166,148,51,14,"OK" ,0,1,0x001C); // 2
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,SDLK_RETURN); // 2
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_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)
Print_dans_fenetre(50,151," Mono",CM_Noir,CM_Clair);
else
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, 79,19,14,"-1" ,0,1,0x004A); // 7
Fenetre_Definir_bouton_normal(194, 96,19,14,"x2" ,0,1,0x0037); // 8
Fenetre_Definir_bouton_normal(194,113,19,14,"÷2" ,0,1,0x00E0); // 9
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,SDLK_KP_MINUS); // 7
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,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);
Fenetre_Definir_bouton_saisie(186,23,3); // 11
@ -4708,8 +4701,8 @@ void Bouton_Spray_Menu(void)
if (!Mouse_K)
switch (Touche)
{
case 0x0029 : // Récupération d'une couleur derrière le menu
case 0x0033 :
case SDLK_BACKQUOTE : // Récupération d'une couleur derrière le menu
case SDLK_COMMA :
Recuperer_couleur_derriere_fenetre(&Couleur,&Click);
if (Click)
{
@ -4888,34 +4881,32 @@ void Bouton_Trame_Menu(void)
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(230,157,51,14,"OK" ,0,1,0x001C); // 3
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,SDLK_RETURN); // 3
Fenetre_Definir_bouton_normal( 8,157,51,14,"Clear" ,1,1,0x002E); // 4
Fenetre_Definir_bouton_normal( 63,157,51,14,"Invert",1,1,0x0017); // 5
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,SDLK_i); // 5
Fenetre_Definir_bouton_normal( 8,46,131,14,"Get from brush" ,1,1,0x0022); // 6
Fenetre_Definir_bouton_normal(142,46,139,14,"Transfer to brush",1,1,0x0014); // 7
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,SDLK_t); // 7
Fenetre_Definir_bouton_normal(109,114,11,11,"\030",0,1,0x0148); // 8
Fenetre_Definir_bouton_normal(109,138,11,11,"\031",0,1,0x0150); // 9
Fenetre_Definir_bouton_normal( 97,126,11,11,"\033",0,1,0x014B); // 10
Fenetre_Definir_bouton_normal(121,126,11,11,"\032",0,1,0x014D); // 11
Fenetre_Definir_bouton_normal(109,126,11,11,"" ,0,1,0x0052); // 12
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,SDLK_DOWN|0x1000); // 9
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,SDLK_RIGHT|0x1000); // 11
Fenetre_Definir_bouton_normal(109,126,11,11,"" ,0,1,SDLK_INSERT); // 12
Bouton_Octet_insere=Fenetre_Liste_boutons_normal;
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)),
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, 93,11,11,"\031",0,1,0x0050); // 14
Fenetre_Definir_bouton_normal( 97, 81,11,11,"\033",0,1,0x004B); // 15
Fenetre_Definir_bouton_normal(121, 81,11,11,"\032",0,1,0x004D); // 16
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,SDLK_DOWN); // 14
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,SDLK_RIGHT); // 16
for (Indice=0; Indice<10; Indice++)
Fenetre_Definir_bouton_normal((Indice*23)+8,20,20,20,"",0,1,0x003B+Indice); // 17 -> 26
Fenetre_Definir_bouton_normal(238,20,20,20,"",0,1,0x0085); // 27
Fenetre_Definir_bouton_normal(261,20,20,20,"",0,1,0x0086); // 28
for (Indice=0; Indice<12; Indice++)
Fenetre_Definir_bouton_normal((Indice*23)+8,20,20,20,"",0,1,SDLK_F1+Indice); // 17 -> 28
Dessiner_trames_predefinies();
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)");
Fenetre_Definir_bouton_normal( 7, 19, 16,16,"",0,1,0x003B); // 1
Fenetre_Definir_bouton_normal( 7, 38, 16,16,"",0,1,0x003C); // 2
Fenetre_Definir_bouton_normal( 7, 57, 16,16,"",0,1,0x003D); // 3
Fenetre_Definir_bouton_normal( 7, 76, 16,16,"",0,1,0x003E); // 4
Fenetre_Definir_bouton_normal( 7, 95, 16,16,"",0,1,0x003F); // 5
Fenetre_Definir_bouton_normal(153, 19, 16,16,"",0,1,0x0040); // 6
Fenetre_Definir_bouton_normal(153, 38, 16,16,"",0,1,0x0041); // 7
Fenetre_Definir_bouton_normal(153, 57, 16,16,"",0,1,0x0042); // 8
Fenetre_Definir_bouton_normal(153, 76, 16,16,"",0,1,0x0043); // 9
Fenetre_Definir_bouton_normal(153, 95, 16,16,"",0,1,0x0044); // 10
Fenetre_Definir_bouton_normal(195,131, 68,14,"Close",0,1,0x001C); // 11
Fenetre_Definir_bouton_normal( 7,131, 68,14,"All off",0,1,0x0053); // 12
Fenetre_Definir_bouton_normal( 83,131,104,14,"Feedback: ",1,1,0x0021); // 13
Fenetre_Definir_bouton_normal( 7, 19, 16,16,"",0,1,SDLK_F1); // 1
Fenetre_Definir_bouton_normal( 7, 38, 16,16,"",0,1,SDLK_F2); // 2
Fenetre_Definir_bouton_normal( 7, 57, 16,16,"",0,1,SDLK_F3); // 3
Fenetre_Definir_bouton_normal( 7, 76, 16,16,"",0,1,SDLK_F4); // 4
Fenetre_Definir_bouton_normal( 7, 95, 16,16,"",0,1,SDLK_F5); // 5
Fenetre_Definir_bouton_normal(153, 19, 16,16,"",0,1,SDLK_F6); // 6
Fenetre_Definir_bouton_normal(153, 38, 16,16,"",0,1,SDLK_F7); // 7
Fenetre_Definir_bouton_normal(153, 57, 16,16,"",0,1,SDLK_F8); // 8
Fenetre_Definir_bouton_normal(153, 76, 16,16,"",0,1,SDLK_F9); // 9
Fenetre_Definir_bouton_normal(153, 95, 16,16,"",0,1,SDLK_F10); // 10
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,SDLK_DELETE); // 12
Fenetre_Definir_bouton_normal( 83,131,104,14,"Feedback: ",1,1,SDLK_f); // 13
Afficher_etat_feedback();
Afficher_sprite_effet(0, 8,20);
Afficher_sprite_effet(0, 8,39);
@ -5298,7 +5289,7 @@ void Bouton_Effets(void)
{
Bouton_clicke=Fenetre_Bouton_clicke();
if (Touche==0x0001)
if (Touche==SDLK_ESCAPE)
Bouton_clicke=11;
switch (Bouton_clicke)

286
clavier.c Normal file
View 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];
}

3
clavier.h Normal file
View File

@ -0,0 +1,3 @@
word Touche_pour_scancode(word scancode);

View File

@ -8,11 +8,11 @@
#define M_2PI 6.28318530717958647692528676656
// 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 VERSION2 0 // |_ Numéro de version découpé en
#define BETA1 96 // | plusieurs parties => 2.0 ß95.5%
#define BETA2 5 // |
#define BETA1 97 // | plusieurs parties => 2.0 ß95.5%
#define BETA2 0 // |
#define ALPHA_BETA "ß" // Type de la version "Þ" ou "ß"
#define TAILLE_FICHIER_CONFIG 10351 // Taille du fichier GFX2.CFG
#define NB_MODES_VIDEO 60 // Nombre de modes vidéo

178
divers.c
View File

@ -108,6 +108,158 @@ void Sensibilite_souris(word X,word Y)
{
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)
//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;
//Appui sur une touche du clavier
//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 !
Touche = Touche_SDL(event.key.keysym);
//Cas particulier: déplacement du curseur avec haut bas gauche droite
//On doit interpréter ça comme un mvt de la souris

BIN
gfx2.cfg

Binary file not shown.

View File

@ -108,7 +108,7 @@ GLOBAL struct Composantes Coul_menu_pref[4];
GLOBAL word Mouse_X; // Abscisse de la souris
GLOBAL word Mouse_Y; // Ordonnée 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 byte Touche_ASCII; // Code ASCII de la touche en cours

12
graph.c
View File

@ -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);
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<<1)/3)-20,37,40,14,"No" ,1,1,0x0031); // 2
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,SDLK_n); // 2
Afficher_curseur();
do
{
Bouton_clicke=Fenetre_Bouton_clicke();
if (Touche==0x001C) Bouton_clicke=1;
if (Touche==0x0001) Bouton_clicke=2;
if (Touche==SDLK_RETURN) Bouton_clicke=1;
if (Touche==SDLK_ESCAPE) Bouton_clicke=2;
}
while (Bouton_clicke<=0);
@ -2943,12 +2943,12 @@ void Warning_message(char * Message)
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);
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();
do
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();
Afficher_curseur();

18
init.c
View File

@ -21,6 +21,7 @@
#include "operatio.h"
#include "divers.h"
#include "erreurs.h"
#include "clavier.h"
#include "errno.h"
@ -1698,6 +1699,7 @@ int Charger_CFG(int Tout_charger)
struct Config_Infos_touche CFG_Infos_touche;
struct Config_Mode_video CFG_Mode_video;
struct stat Informations_Fichier;
int Conversion_touches = 0;
strcpy(Nom_du_fichier,Repertoire_du_programme);
strcat(Nom_du_fichier,"gfx2.cfg");
@ -1713,7 +1715,17 @@ int Charger_CFG(int Tout_charger)
|| memcmp(CFG_Header.Signature,"CFG",3) )
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.Beta1!=BETA1)
|| (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.Numero=bswap_16(CFG_Infos_touche.Numero);
#endif
if (Conversion_touches)
{
CFG_Infos_touche.Touche = Touche_pour_scancode(CFG_Infos_touche.Touche);
}
for (Indice2=0;
((Indice2<NB_TOUCHES) && (Numero_option[Indice2]!=CFG_Infos_touche.Numero));
Indice2++);

View File

@ -1410,7 +1410,7 @@ short Attendre_click_dans_palette(struct Fenetre_Bouton_palette * Enreg)
return Couleur_choisie;
}
if ((Mouse_K==A_DROITE) || (Touche==0x0001))
if ((Mouse_K==A_DROITE) || (Touche==SDLK_ESCAPE))
{
Attendre_fin_de_click();
Effacer_curseur();
@ -1503,7 +1503,7 @@ void Recuperer_couleur_derriere_fenetre(byte * Couleur, byte * Click)
Ancien_X=Mouse_X;
Ancien_Y=Mouse_Y;
} while (!(Mouse_K || (Touche==0x0001)));
} while (!(Mouse_K || (Touche==SDLK_ESCAPE)));
if (Mouse_K)
{
@ -1796,7 +1796,7 @@ short Fenetre_Numero_bouton_touche(void)
{
struct Fenetre_Bouton_normal * Temp;
if ((Touche&0xFF00)==0x0100)
if (Touche & 0x1000)
Fenetre_Attribut1=A_DROITE;
else
Fenetre_Attribut1=A_GAUCHE;
@ -1818,7 +1818,7 @@ short Fenetre_Numero_bouton_touche(void)
Temp=Fenetre_Liste_boutons_normal;
while (Temp!=NULL)
{
if (Temp->Raccourci==(Touche&0x00FF))
if (Temp->Raccourci==(Touche&0x0FFF))
return Temp->Numero;
Temp=Temp->Next;
}

113
palette.c
View File

@ -134,7 +134,7 @@ void Remap_image_HIGH(byte * Table_de_conversion)
Remap_general_LOWLEVEL(Table_de_conversion,Principal_Ecran,
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)
Fin_Y=Menu_Ordonnee_avant_fenetre;
else
@ -166,13 +166,13 @@ void Remap_image_HIGH(byte * Table_de_conversion)
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);
if (Loupe_Mode)
{
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...
Remap_zone_HIGH(Principal_Split,Fin_Y_Loupe,
(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);
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.
for (Pos_1=0;Pos_1<=255;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].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)
Pos_2=Debut_Bloc_1;
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].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)
Pos_2=Debut_Bloc_2;
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);
// 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);
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
(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);
Afficher_curseur();
@ -391,7 +391,7 @@ void Reduce_palette(short * Nb_couleurs_utilisees,int Nb_couleurs_demandees,T_Pa
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...)
// 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].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];
// On va maintenant s'occuper de la table de conversion:
Table_de_conversion[Couleur_1]=Couleur_2;
// 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++;
}
}
@ -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
// 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)
{
// 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.
// En somme, on va remplacer Meilleure_couleur_2 par Meilleure_couleur_1,
// mais attention, on ne remplace pas Meilleure_couleur_1 par
// 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)+
(Utilisation_couleur[Meilleure_couleur_2]*Palette[Meilleure_couleur_2].R),
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),
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_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++)
{
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
// 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.
Table_de_conversion[Couleur_1]=Meilleure_couleur_1;
}
}
// Bon, maintenant que l'on a fait bouger nos petites choses concernants
// 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
// 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
// couleur en arriŠre.
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.
if (Table_de_conversion[Couleur_1]>Meilleure_couleur_2)
// 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]--;
}
// 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.
(*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].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_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.
Num2str(*Nb_couleurs_utilisees,Chaine,3);
Print_dans_fenetre(186,23,Chaine,CM_Noir,CM_Clair);
}
// 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
Afficher_curseur();
}
@ -605,7 +605,7 @@ void Palette_Reafficher_jauges(struct Fenetre_Bouton_scroller * Jauge_rouge,
// Réaffichage des jauges:
if (Debut!=Fin)
{
// Dans le cas d'un bloc, tout 0.
// Dans le cas d'un bloc, tout à 0.
Jauge_rouge->Position =63;
Fenetre_Dessiner_jauge(Jauge_rouge);
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 (128, 16, 91, 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);
// Graduation des jauges de couleur
@ -737,34 +737,34 @@ void Bouton_Palette(void)
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(66,17,29,14,"Gry" ,1,1,0x0022); // 6
Fenetre_Definir_bouton_normal( 6,47,59,14,"Swap" ,1,1,0x001F); // 7
Fenetre_Definir_bouton_normal(66,47,59,14,"X-Swap" ,1,1,0x002D); // 8
Fenetre_Definir_bouton_normal( 6,62,59,14,"Copy" ,1,1,0x002E); // 9
Fenetre_Definir_bouton_normal(66,62,59,14,"Spread" ,4,1,0x0012); // 10
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,SDLK_g); // 6
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,SDLK_x); // 8
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,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);
Fenetre_Definir_bouton_normal( 6,168,35,14,"Undo" ,1,1,0x0016); // 12
Fenetre_Definir_bouton_normal( 62,168,51,14,"Cancel",0,1,0x0001); // 13
Fenetre_Definir_bouton_normal(117,168,51,14,"OK" ,0,1,0x001C); // 14
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,SDLK_ESCAPE); // 13
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;
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
Fenetre_Definir_bouton_scroller(225,20,31,7,1,Indice_Reduction_palette);// 17
Jauge_Reduction=Fenetre_Liste_boutons_scroller;
Fenetre_Definir_bouton_normal(266, 74,12,11,"+",0,1,0x004E); // 18
Fenetre_Definir_bouton_normal(266,165,12,11,"-",0,1,0x004A); // 19
Fenetre_Definir_bouton_normal(266, 74,12,11,"+",0,1,SDLK_KP_PLUS); // 18
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( 6,32,59,14,"Invert" ,1,1,0x0017); // 21
Fenetre_Definir_bouton_normal(66,32,59,14,"X-Inv." ,5,1,0x002F); // 22
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,SDLK_i); // 21
Fenetre_Definir_bouton_normal(66,32,59,14,"X-Inv." ,5,1,SDLK_v); // 22
Fenetre_Definir_bouton_saisie(263,39,3); // 23
// Affichage du facteur de réduction de la palette
@ -780,7 +780,7 @@ void Bouton_Palette(void)
Afficher_curseur();
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 "]").
if (Config.Auto_nb_used)
@ -1595,7 +1595,7 @@ void Bouton_Palette(void)
{
switch (Touche)
{
case 0x001A : // Décaler Forecolor vers la gauche
case SDLK_LEFTBRACKET : // Décaler Forecolor vers la gauche
if (Debut_block==Fin_block)
{
Fore_color--;
@ -1615,7 +1615,7 @@ void Bouton_Palette(void)
}
break;
case 0x001B : // Décaler Forecolor vers la droite
case SDLK_RIGHTBRACKET : // Décaler Forecolor vers la droite
if (Debut_block==Fin_block)
{
Fore_color++;
@ -1635,10 +1635,11 @@ void Bouton_Palette(void)
}
break;
case 0x011A : // Decaler Backcolor vers la gauche
case (SDLK_LEFTBRACKET|0x1000) : // Decaler Backcolor vers la gauche
Back_color--;
case 0x011B : // Decaler Backcolor vers la droite
if (Touche==0x011B)
case (SDLK_RIGHTBRACKET|0x1000) : // Decaler Backcolor vers la droite
// attention: pas de break ci-dessus
if (Touche==(SDLK_RIGHTBRACKET|0x1000))
Back_color++;
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);
@ -1648,7 +1649,7 @@ void Bouton_Palette(void)
Afficher_curseur();
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.
if (!Backup_de_l_image_effectue)
{
@ -1671,8 +1672,8 @@ void Bouton_Palette(void)
Il_faut_remapper=1;
break;
case 0x0029 : // Récupération d'une couleur derriŠre le menu
case 0x0033 :
case SDLK_BACKQUOTE : // Récupération d'une couleur derriŠre le menu
case SDLK_COMMA :
Recuperer_couleur_derriere_fenetre(&Couleur,&Click);
if (Click)
{
@ -1805,9 +1806,9 @@ void Bouton_Palette_secondaire(void)
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,37,180,14,"User's color series" ,14,0,0x001F); // 2
Fenetre_Definir_bouton_normal(60,60, 80,14,"Cancel" , 0,1,0x0001); // 3
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,SDLK_s); // 2
Fenetre_Definir_bouton_normal(60,60, 80,14,"Cancel" , 0,1,SDLK_ESCAPE); // 3
Afficher_curseur();

146
shade.c
View File

@ -83,7 +83,7 @@ void Shade_Blocs_degrades(void)
{
// On regarde quel shade on va afficher en preview
Shade_traite=((Pos_Y-Debut_Y)*Nb_shades)/Taille_Y;
// Si ce n'est pas le shade prcdemment 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)
{
// 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_Y=Fenetre_Pos_Y+(Menu_Facteur_Y*((Ligne*7)+131));
// On regarde si la case est "disable"
// On regarde si la case est "disablée"
if (Shade_Liste[Shade_Actuel].Liste[Position]&0x8000)
{
if ((Position>=Select_Debut) && (Position<=Select_Fin))
@ -145,7 +145,7 @@ void Tagger_shades(word Select_Debut,word Select_Fin)
else
Block(Pos_X,Pos_Y,Menu_Facteur_X<<2,Menu_Facteur_Y<<1,CM_Blanc);
}
else // "enable"
else // "enablée"
{
if ((Position>=Select_Debut) && (Position<=Select_Fin))
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;
}
// Avant d'insrer quoi que ce soit, on efface les ventuelles couleurs que
// l'on va rinsrer:
// Avant d'insérer quoi que ce soit, on efface les éventuelles couleurs que
// l'on va réinsérer:
Limite=512-Select_Debut;
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]=(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;
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)+
((((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
}
@ -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));
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_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:
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)
Pos_2=Debut_Bloc_1;
else
@ -376,12 +376,12 @@ void Swap_shade(short Debut_Bloc_1,short Debut_Bloc_2,short Taille_du_bloc)
else
if ((Debut_Bloc_2<Debut_Bloc_1) && (Fin_2>=Debut_Bloc_1))
{
// Le bloc destination dborde 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++)
{
// Il faut transformer la couleur Pos_1 en 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)
Pos_2=Debut_Bloc_2;
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.
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];
Shade_Liste[Shade_Actuel].Liste[Pos_1]=Shade_Liste[Shade_Actuel].Liste[Pos_2];
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)
{
short Bouton_clicke; // Numro du bouton sur lequel l'utilisateur a click
char Chaine[4]; // Chaine d'affichage du nø de shade actif et du Pas
word Ancien_Mouse_X,Ancien_Mouse_X2; // Mmo. de l'ancienne pos. du curseur
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
word Ancien_Mouse_X,Ancien_Mouse_X2; // Mémo. de l'ancienne pos. du curseur
word Ancien_Mouse_Y,Ancien_Mouse_Y2;
byte Ancien_Mouse_K,Ancien_Mouse_K2;
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
Ouvrir_fenetre(310,190,"Shade");
// Dclaration & trac du bouton de palette
// Déclaration & tracé du bouton de palette
Fenetre_Definir_bouton_palette(5,16); // 1
// Dclaration & trac du scroller de slection du nø de dgrad
// 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
// Dclaration & trac de la zone de dfinition des dgrads
// Déclaration & tracé de la zone de définition des dégradés
Fenetre_Definir_bouton_special(8,127,256,53); // 3
// Dclaration & trac des boutons de sortie
Fenetre_Definir_bouton_normal(207,17,51,14,"Cancel",0,1,0x0001); // 4
Fenetre_Definir_bouton_normal(261,17,43,14,"OK" ,0,1,0x001C); // 5
// Déclaration & tracé des boutons de sortie
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,SDLK_RETURN); // 5
// Dclaration & trac des boutons de copie de shade
Fenetre_Definir_bouton_normal(206,87,27,14,"Cpy" ,1,1,0x002E); // 6
Fenetre_Definir_bouton_normal(234,87,43,14,"Paste" ,1,1,0x0019); // 7
// Déclaration & tracé des boutons de copie de shade
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,SDLK_p); // 7
// On tagge le bloc
Tagger_intervalle_palette(0,0);
// Trac d'un cadre creux autour du bloc dgrad
// Tracé d'un cadre creux autour du bloc dégradé
Fenetre_Afficher_cadre_creux(171,26,18,66);
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);
// Trac d'un cadre creux autour de tous les dgrads
// Tracé d'un cadre creux autour de tous les dégradés
Fenetre_Afficher_cadre_creux(223,34,66,50);
Shade_Blocs_degrades();
// Trac d'un cadre autour de la zone de dfinition de dgrads
// Tracé d'un cadre autour de la zone de définition de dégradés
Fenetre_Afficher_cadre(5,124,262,61);
Afficher_tout_le_shade(Premiere_couleur,Derniere_couleur,Select_Debut,Select_Fin);
// Dclaration & trac des boutons d'dition de shade
Fenetre_Definir_bouton_normal( 6,107,27,14,"Ins" ,0,1,0x0052); // 8
Fenetre_Definir_bouton_normal( 38,107,27,14,"Del" ,0,1,0x0053); // 9
Fenetre_Definir_bouton_normal( 66,107,43,14,"Blank",1,1,0x0030); // 10
Fenetre_Definir_bouton_normal(110,107,27,14,"Inv" ,1,1,0x0017); // 11
Fenetre_Definir_bouton_normal(138,107,27,14,"Swp" ,1,1,0x001F); // 12
// Déclaration & tracé des boutons d'édition de shade
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,SDLK_DELETE); // 9
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,SDLK_i); // 11
Fenetre_Definir_bouton_normal(138,107,27,14,"Swp" ,1,1,SDLK_s); // 12
// Dclaration & trac des boutons de taggage
// Déclaration & tracé des boutons de taggage
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,148,27,14,"Clr" ,0,1,0x003C); // 14
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,SDLK_F2); // 14
// Dclaration & 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);
Fenetre_Definir_bouton_saisie(274,174,3); // 15
Bouton_saisie=Fenetre_Liste_boutons_special;
@ -484,14 +484,14 @@ int Menu_Shade(void)
Fenetre_Contenu_bouton_saisie(Bouton_saisie,Chaine);
// 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
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
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);
Print_dans_fenetre(210,55,Chaine,CM_Noir,CM_Clair);
@ -501,8 +501,8 @@ int Menu_Shade(void)
Afficher_curseur();
/*TODO A vérifier :)
Clavier_americain(); // On est oblig de rester en clavier amricain pour
// que l'on puisse dcaler la couleur slectionne …
Clavier_americain(); // On est obligé de rester en clavier américain pour
// que l'on puisse décaler la couleur sélectionnée à
// l'aide des touches "^" et "$" ("[" et "]").
*/
do
@ -527,11 +527,11 @@ int Menu_Shade(void)
if (!Ancien_Mouse_K)
{ // On vient de clicker
// On met jour l'intervalle du Shade
// On met à jour l'intervalle du Shade
Premiere_couleur=Derniere_couleur=Couleur_temporaire;
// On tagge le bloc
Tagger_intervalle_palette(Premiere_couleur,Derniere_couleur);
// Trac du bloc dgrad:
// Tracé du bloc dégradé:
Bloc_degrade_dans_fenetre(172,27,Premiere_couleur,Derniere_couleur);
}
else
@ -554,7 +554,7 @@ int Menu_Shade(void)
}
}
// On affiche le numro de la couleur slectionne
// On affiche le numéro de la couleur sélectionnée
Afficher_couleur_selectionnee(Premiere_couleur,Derniere_couleur);
Afficher_curseur();
@ -564,20 +564,20 @@ int Menu_Shade(void)
case 2 : // Gestion du changement de Shade (scroller)
Effacer_curseur();
Shade_Actuel=Fenetre_Attribut2;
// Affichade du nø de shade actif
// Affichade du n° de shade actif
Num2str(Shade_Actuel+1,Chaine,1);
Print_dans_fenetre(210,55,Chaine,CM_Noir,CM_Clair);
// Affichade du Pas
Num2str(Shade_Liste[Shade_Actuel].Pas,Chaine,3);
Print_dans_fenetre(276,176,Chaine,CM_Noir,CM_Clair);
// Trac du bloc dgrad:
// Tracé du bloc dégradé:
Afficher_tout_le_shade(Premiere_couleur,Derniere_couleur,Select_Debut,Select_Fin);
Afficher_curseur();
// On place le nouveau shade dans le buffer du Undo
memcpy(Buffer_Undo,Shade_Liste[Shade_Actuel].Liste,512*sizeof(word));
break;
case 3 : // Gestion de la zone de dfinition 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_X!=Ancien_Mouse_X2) || (Mouse_Y!=Ancien_Mouse_Y2) || (Mouse_K!=Ancien_Mouse_K2) )
{
@ -615,12 +615,12 @@ int Menu_Shade(void)
else
Temp=Premiere_couleur-Derniere_couleur;
if (Select_Debut==Select_Fin) // Une couleur slectionne
if (Select_Debut==Select_Fin) // Une couleur sélectionnée
{
if (Fenetre_Attribut1==2)
Supprimer_shade(Select_Debut,Select_Debut+Temp);
}
else // Un bloc slectionn
else // Un bloc sélectionné
{
Supprimer_shade(Select_Debut,Select_Fin);
@ -647,7 +647,7 @@ int Menu_Shade(void)
}
Inserer_shade(Premiere_couleur,Derniere_couleur,Select_Debut);
// On slectionne la position juste aprŠs ce qu'on vient d'insrer
// On sélectionne la position juste après ce qu'on vient d'insérer
Select_Debut+=Temp+1;
if (Select_Debut>=512)
Select_Debut=511;
@ -752,7 +752,7 @@ int Menu_Shade(void)
// On place le shade dans le buffer du Undo
memcpy(Buffer_Undo,Shade_Liste[Shade_Actuel].Liste,512*sizeof(word));
// Et on le modifie
// On change le bloc avec sa destination
// On échange le bloc avec sa destination
if (Select_Debut<=Select_Fin)
{
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;
Swap_shade(Select_Fin,Case_temporaire,Temp);
}
// On place la slection sur la nouvelle position du bloc
// On place la sélection sur la nouvelle position du bloc
Select_Debut=Case_temporaire;
Select_Fin=Select_Debut+Temp-1;
// Et on raffiche tout
@ -853,11 +853,11 @@ int Menu_Shade(void)
if (!Mouse_K)
switch (Touche)
{
case 0x001A : // Dcaler couleur dans palette vers la gauche
case 0x001B : // Dcaler couleur dans palette vers la droite
case 0x001A : // Décaler couleur dans palette vers la gauche
case 0x001B : // Décaler couleur dans palette vers la droite
if (Premiere_couleur==Derniere_couleur)
{
if (Touche==0x001A)
if (Touche==SDLK_LEFTBRACKET)
{
Premiere_couleur--;
Derniere_couleur--;
@ -872,7 +872,7 @@ int Menu_Shade(void)
Block(Fenetre_Pos_X+(Menu_Facteur_X*172),
Fenetre_Pos_Y+(Menu_Facteur_Y*27),
Menu_Facteur_X<<4,Menu_Facteur_Y*64,Premiere_couleur);
// On affiche le numro de la couleur slectionne
// On affiche le numéro de la couleur sélectionnée
Afficher_couleur_selectionnee(Premiere_couleur,Derniere_couleur);
Afficher_curseur();
}
@ -925,7 +925,7 @@ int Menu_Shade(void)
}
break;
case 0x0029 : // Rcupration d'une couleur derriŠre le menu
case 0x0029 : // Récupération d'une couleur derrière le menu
case 0x0033 :
Recuperer_couleur_derriere_fenetre(&Couleur,&Click);
if (Click)
@ -933,14 +933,14 @@ int Menu_Shade(void)
Effacer_curseur();
Couleur_temporaire=Couleur;
// On met jour l'intervalle du Shade
// On met à jour l'intervalle du Shade
Premiere_couleur=Derniere_couleur=Couleur_temporaire;
// On tagge le bloc
Tagger_intervalle_palette(Premiere_couleur,Derniere_couleur);
// Trac du bloc dgrad:
// Tracé du bloc dégradé:
Bloc_degrade_dans_fenetre(172,27,Premiere_couleur,Derniere_couleur);
// On affiche le numro de la couleur slectionne
// On affiche le numéro de la couleur sélectionnée
Afficher_couleur_selectionnee(Premiere_couleur,Derniere_couleur);
Afficher_curseur();
@ -951,7 +951,7 @@ int Menu_Shade(void)
/* TODO Clavier_de_depart(); */
// Actions … raliser en sortant du menu suivant OK ou Cancel
// Actions à réaliser en sortant du menu suivant OK ou Cancel
Fermer_fenetre();
free(Buffer_Undo);
@ -965,11 +965,11 @@ int Menu_Shade(void)
void Bouton_Shade_Menu(void)
{
struct T_Shade * Shade_Liste_Backup; // Anciennes donnes des shades
byte Ancien_shade; // Ancien nø de shade actif
struct T_Shade * Shade_Liste_Backup; // Anciennes données des shades
byte Ancien_shade; // Ancien n° de shade actif
// Backup des anciennes donnes
// Backup des anciennes données
Shade_Liste_Backup=(struct T_Shade *)malloc(sizeof(Shade_Liste));
memcpy(Shade_Liste_Backup,Shade_Liste,sizeof(Shade_Liste));
Ancien_shade=Shade_Actuel;
@ -986,7 +986,7 @@ void Bouton_Shade_Menu(void)
Shade_Liste[Shade_Actuel].Mode,
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)
Bouton_Shade_Mode(); // => On y passe (cool!)
}
@ -1005,17 +1005,17 @@ void Bouton_Quick_shade_Menu(void)
int Temp;
char Chaine[4];
byte Step_Backup=Quick_shade_Step; // Backup des
byte Loop_Backup=Quick_shade_Loop; // anciennes donnes
byte Loop_Backup=Quick_shade_Loop; // anciennes données
Ouvrir_fenetre(142,56,"Quick-shade");
Fenetre_Definir_bouton_normal(76,36,60,14,"OK",0,1,0x001C); // 1
Fenetre_Definir_bouton_normal( 6,36,60,14,"Cancel",0,1,0x0001); // 2
Fenetre_Definir_bouton_normal(76,18,60,14,"",0,1,0x000F); // 3
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,SDLK_ESCAPE); // 2
Fenetre_Definir_bouton_normal(76,18,60,14,"",0,1,SDLK_TAB); // 3
Afficher_mode_du_shade(83,21,Quick_shade_Loop);
// Dclaration & 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);
Fenetre_Definir_bouton_saisie(40,19,3); // 4
Num2str(Quick_shade_Step,Chaine,3);
@ -1069,7 +1069,7 @@ void Bouton_Quick_shade_Menu(void)
}
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)
Bouton_Quick_shade_Mode(); // => On y passe (cool!)
}