Menus: Implemented 'repeatable buttons' that work like slider arrows.

Used for [+] [-] in Palette and Text, and for the arrow buttons that scroll Sieve pattern.

git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@598 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
Yves Rizoud 2009-02-04 20:34:53 +00:00
parent 16b405ccfe
commit 266145cd0a
5 changed files with 54 additions and 9 deletions

View File

@ -5251,10 +5251,10 @@ void Bouton_Trame_Menu(void)
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,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
Fenetre_Definir_bouton_repetable(109, 69,11,11,"\030",0,1,SDLK_UP); // 13
Fenetre_Definir_bouton_repetable(109, 93,11,11,"\031",0,1,SDLK_DOWN); // 14
Fenetre_Definir_bouton_repetable( 97, 81,11,11,"\033",0,1,SDLK_LEFT); // 15
Fenetre_Definir_bouton_repetable(121, 81,11,11,"\032",0,1,SDLK_RIGHT); // 16
for (Indice=0; Indice<12; Indice++)
Fenetre_Definir_bouton_normal((Indice*23)+8,20,20,20,"",0,1,SDLK_F1+Indice); // 17 -> 28
@ -5982,8 +5982,8 @@ void Bouton_Texte()
// Taille texte
Fenetre_Definir_bouton_saisie(220,43,3); // 7
Bouton_taille_texte=Fenetre_Liste_boutons_special;
Fenetre_Definir_bouton_normal(202,43,13,11,"-",0,1,SDLK_LAST); // 8
Fenetre_Definir_bouton_normal(251,43,13,11,"+",0,1,SDLK_LAST); // 9
Fenetre_Definir_bouton_repetable(202,43,13,11,"-",0,1,SDLK_LAST); // 8
Fenetre_Definir_bouton_repetable(251,43,13,11,"+",0,1,SDLK_LAST); // 9
// Preview
Fenetre_Definir_bouton_special(8,106,273,50); // 10

View File

@ -1458,6 +1458,7 @@ void Fenetre_Definir_bouton_normal(word Pos_X, word Pos_Y,
Temp->Largeur =Largeur;
Temp->Hauteur =Hauteur;
Temp->Raccourci=Raccourci;
Temp->Repetable=0;
Temp->Next=Fenetre_Liste_boutons_normal;
Fenetre_Liste_boutons_normal=Temp;
@ -1465,7 +1466,34 @@ void Fenetre_Definir_bouton_normal(word Pos_X, word Pos_Y,
Fenetre_Dessiner_bouton_normal(Pos_X,Pos_Y,Largeur,Hauteur,Titre,Lettre_soulignee,Clickable);
}
//------ Rajout d'un bouton à la liste de ceux présents dans la fenêtre ------
void Fenetre_Definir_bouton_repetable(word Pos_X, word Pos_Y,
word Largeur, word Hauteur,
char * Titre, byte Lettre_soulignee,
byte Clickable, word Raccourci)
{
struct Fenetre_Bouton_normal * Temp;
Nb_boutons_fenetre++;
if (Clickable)
{
Temp=(struct Fenetre_Bouton_normal *)malloc(sizeof(struct Fenetre_Bouton_normal));
Temp->Numero =Nb_boutons_fenetre;
Temp->Pos_X =Pos_X;
Temp->Pos_Y =Pos_Y;
Temp->Largeur =Largeur;
Temp->Hauteur =Hauteur;
Temp->Raccourci=Raccourci;
Temp->Repetable=1;
Temp->Next=Fenetre_Liste_boutons_normal;
Fenetre_Liste_boutons_normal=Temp;
}
Fenetre_Dessiner_bouton_normal(Pos_X,Pos_Y,Largeur,Hauteur,Titre,Lettre_soulignee,Clickable);
}
void Fenetre_Definir_bouton_palette(word Pos_X, word Pos_Y)
{
@ -2004,7 +2032,17 @@ short Fenetre_Numero_bouton_clicke(void)
{
if (Fenetre_click_dans_zone(Temp1->Pos_X,Temp1->Pos_Y,Temp1->Pos_X+Temp1->Largeur-1,Temp1->Pos_Y+Temp1->Hauteur-1))
{
Fenetre_Attribut1=Mouse_K;
if (Temp1->Repetable)
{
Effacer_curseur();
Fenetre_Enfoncer_bouton_normal(Temp1->Pos_X,Temp1->Pos_Y,Temp1->Largeur,Temp1->Hauteur);
Afficher_curseur();
Tempo_jauge((Mouse_K==1)? Config.Valeur_tempo_jauge_gauche : Config.Valeur_tempo_jauge_droite);
Effacer_curseur();
Fenetre_Desenfoncer_bouton_normal(Temp1->Pos_X,Temp1->Pos_Y,Temp1->Largeur,Temp1->Hauteur);
Afficher_curseur();
return Temp1->Numero;
}
while(1)
{
Effacer_curseur();
@ -2019,6 +2057,8 @@ short Fenetre_Numero_bouton_clicke(void)
Effacer_curseur();
Fenetre_Desenfoncer_bouton_normal(Temp1->Pos_X,Temp1->Pos_Y,Temp1->Largeur,Temp1->Hauteur);
Afficher_curseur();
Fenetre_Attribut1=Mouse_K;
return Temp1->Numero;
}
}

View File

@ -49,6 +49,10 @@ void Fenetre_Definir_bouton_normal(word Pos_X, word Pos_Y,
word Largeur, word Hauteur,
char * Titre,byte Lettre_soulignee,
byte Clickable, word Raccourci);
void Fenetre_Definir_bouton_repetable(word Pos_X, word Pos_Y,
word Largeur, word Hauteur,
char * Titre,byte Lettre_soulignee,
byte Clickable, word Raccourci);
void Fenetre_Definir_bouton_palette(word Pos_X, word Pos_Y);
void Fenetre_Effacer_tags(void);

View File

@ -860,8 +860,8 @@ void Bouton_Palette(void)
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,SDLK_KP_PLUS); // 18
Fenetre_Definir_bouton_normal(266,165,12,11,"-",0,1,SDLK_KP_MINUS); // 19
Fenetre_Definir_bouton_repetable(266, 74,12,11,"+",0,1,SDLK_KP_PLUS); // 18
Fenetre_Definir_bouton_repetable(266,165,12,11,"-",0,1,SDLK_KP_MINUS); // 19
Fenetre_Definir_bouton_normal(96,17,29,14,"Neg" ,1,1,SDLK_n); // 20
Fenetre_Definir_bouton_normal(66,62,29,14,"Inv" ,1,1,SDLK_i); // 21

View File

@ -73,6 +73,7 @@ struct Fenetre_Bouton_normal
word Largeur;
word Hauteur;
byte Clickable;
byte Repetable;
word Raccourci;
struct Fenetre_Bouton_normal * Next;
};