Contextual help in Effects menu

git-svn-id: svn://pulkomandy.tk/GrafX2/trunk@239 416bcca6-2ee7-4201-b75f-2eb2f807beb1
This commit is contained in:
Yves Rizoud 2008-10-12 19:09:29 +00:00
parent 1af06aec53
commit 74d0b87233
8 changed files with 137 additions and 44 deletions

View File

@ -13,11 +13,11 @@ special.o: special.c const.h struct.h global.h loadsave.h graph.h \
moteur.h
boutons.o: boutons.c const.h struct.h global.h loadsave.h divers.h \
graph.h moteur.h readline.h files.h init.h boutons.h operatio.h pages.h \
erreurs.h readini.h saveini.h shade.h io.h
erreurs.h readini.h saveini.h shade.h io.h aide.h
palette.o: palette.c const.h struct.h global.h loadsave.h divers.h \
graph.h moteur.h readline.h boutons.h pages.h
aide.o: aide.c const.h struct.h global.h loadsave.h divers.h graph.h \
moteur.h tables_aide.h
moteur.h tables_aide.h aide.h
operatio.o: operatio.c const.h struct.h global.h loadsave.h divers.h \
moteur.h graph.h operatio.h boutons.h pages.h erreurs.h
pages.o: pages.c global.h struct.h const.h loadsave.h pages.h graph.h \

32
aide.c
View File

@ -28,6 +28,7 @@
#include "graph.h"
#include "moteur.h"
#include "tables_aide.h"
#include "aide.h"
#include <string.h>
@ -150,8 +151,6 @@ void Scroller_aide(void)
void Bouton_Aide(void)
{
short Bouton_clicke;
short Nb_lignes;
short Numero_bouton;
// Aide contextuelle
@ -160,12 +159,37 @@ void Bouton_Aide(void)
Numero_bouton = Numero_bouton_sous_souris();
if (Numero_bouton != -1)
{
Section_d_aide_en_cours = 4 + Numero_bouton;
Position_d_aide_en_cours = 0;
Fenetre_aide(Numero_bouton, NULL);
return;
}
}
Fenetre_aide(-1, NULL);
}
// Ouvre l'ecran d'aide. Passer -1 pour la section par défaut (ou derniere,)
// Ou un nombre de l'enumération NUMEROS_DE_BOUTONS pour l'aide contextuelle.
void Fenetre_aide(int Section, const char *Sous_section)
{
short Bouton_clicke;
short Nb_lignes;
if (Section!=-1)
{
Section_d_aide_en_cours = 4 + Section;
Position_d_aide_en_cours = 0;
}
Nb_lignes=Table_d_aide[Section_d_aide_en_cours].Nombre_de_lignes;
if (Section!=-1 && Sous_section!=NULL)
{
int Indice=0;
for (Indice=0; Indice<Nb_lignes; Indice++)
if (Table_d_aide[Section_d_aide_en_cours].Table_aide[Indice][0] == 'T' &&
!strcmp(Table_d_aide[Section_d_aide_en_cours].Table_aide[Indice]+1, Sous_section))
{
Position_d_aide_en_cours = Indice;
break;
}
}
Ouvrir_fenetre(310,175,"Help / About...");

1
aide.h
View File

@ -20,3 +20,4 @@
*/
void Bouton_Aide(void);
void Bouton_Stats(void);
void Fenetre_aide(int, const char *);

View File

@ -45,6 +45,7 @@
#include "saveini.h"
#include "shade.h"
#include "io.h"
#include "aide.h"
#ifdef __WATCOMC__
#include <windows.h>
@ -5343,6 +5344,46 @@ void Bouton_Effets(void)
if (Touche==SDLK_ESCAPE)
Bouton_clicke=11;
else if (Touche==Bouton[BOUTON_AIDE].Raccourci_gauche)
{
// Aide contextuelle
switch(Fenetre_Numero_bouton_clicke())
{
case 1:
Fenetre_aide(BOUTON_EFFETS, "SHADE");
break;
case 2:
Fenetre_aide(BOUTON_EFFETS, "QUICK SHADE");
break;
case 3:
Fenetre_aide(BOUTON_EFFETS, "TRANSPARENCY");
break;
case 4:
Fenetre_aide(BOUTON_EFFETS, "SMOOTH");
break;
case 5:
Fenetre_aide(BOUTON_EFFETS, "SMEAR");
break;
case 6:
Fenetre_aide(BOUTON_EFFETS, "STENCIL");
break;
case 7:
Fenetre_aide(BOUTON_EFFETS, "MASK");
break;
case 8:
Fenetre_aide(BOUTON_EFFETS, "SIEVE");
break;
case 9:
Fenetre_aide(BOUTON_EFFETS, "GRID");
break;
case 10:
Fenetre_aide(BOUTON_EFFETS, "TILING");
break;
default:
Fenetre_aide(BOUTON_EFFETS, NULL);
}
continue;
}
switch (Bouton_clicke)
{

View File

@ -327,24 +327,44 @@ GLOBAL word Menu_Taille_couleur; // Taille d'une couleur de la palette du menu
// Données sur la fenêtre de menu
GLOBAL byte Fenetre;
GLOBAL word Fenetre_Pos_X; // Position du bord gauche de la fenêtre dans l'écran
GLOBAL word Fenetre_Pos_Y; // Position du bord haut de la fenêtre dans l'écran
GLOBAL word Fenetre_Largeur; // Largeur de la fenêtre
GLOBAL word Fenetre_Hauteur; // Hauteur de la fenêtre
GLOBAL byte Fenetre; // Nombre de fenetres empilées. 0 si pas de fenetre ouverte.
GLOBAL byte Menu_visible_avant_fenetre; // Le menu était visible avant d'ouvir une fenêtre
GLOBAL word Menu_Ordonnee_avant_fenetre; // Ordonnée du menu avant d'ouvrir une fenêtre
GLOBAL byte Cacher_pinceau_avant_fenetre;// Le pinceau étatit déjà caché avant l'ouverture de la fenetre?
GLOBAL word Nb_boutons_fenetre;
GLOBAL struct Fenetre_Bouton_normal * Fenetre_Liste_boutons_normal;
GLOBAL struct Fenetre_Bouton_palette * Fenetre_Liste_boutons_palette;
GLOBAL struct Fenetre_Bouton_scroller * Fenetre_Liste_boutons_scroller;
GLOBAL struct Fenetre_Bouton_special * Fenetre_Liste_boutons_special;
GLOBAL int Fenetre_Attribut1;
GLOBAL int Fenetre_Attribut2;
GLOBAL word Pile_Fenetre_Pos_X[8]; // Position du bord gauche de la fenêtre dans l'écran
#define Fenetre_Pos_X Pile_Fenetre_Pos_X[Fenetre-1]
GLOBAL word Pile_Fenetre_Pos_Y[8]; // Position du bord haut de la fenêtre dans l'écran
#define Fenetre_Pos_Y Pile_Fenetre_Pos_Y[Fenetre-1]
GLOBAL word Pile_Fenetre_Largeur[8]; // Largeur de la fenêtre
#define Fenetre_Largeur Pile_Fenetre_Largeur[Fenetre-1]
GLOBAL word Pile_Fenetre_Hauteur[8]; // Hauteur de la fenêtre
#define Fenetre_Hauteur Pile_Fenetre_Hauteur[Fenetre-1]
GLOBAL word Pile_Nb_boutons_fenetre[8];
#define Nb_boutons_fenetre Pile_Nb_boutons_fenetre[Fenetre-1]
GLOBAL struct Fenetre_Bouton_normal * Pile_Fenetre_Liste_boutons_normal[8];
#define Fenetre_Liste_boutons_normal Pile_Fenetre_Liste_boutons_normal[Fenetre-1]
GLOBAL struct Fenetre_Bouton_palette * Pile_Fenetre_Liste_boutons_palette[8];
#define Fenetre_Liste_boutons_palette Pile_Fenetre_Liste_boutons_palette[Fenetre-1]
GLOBAL struct Fenetre_Bouton_scroller * Pile_Fenetre_Liste_boutons_scroller[8];
#define Fenetre_Liste_boutons_scroller Pile_Fenetre_Liste_boutons_scroller[Fenetre-1]
GLOBAL struct Fenetre_Bouton_special * Pile_Fenetre_Liste_boutons_special[8];
#define Fenetre_Liste_boutons_special Pile_Fenetre_Liste_boutons_special[Fenetre-1]
GLOBAL int Pile_Fenetre_Attribut1[8];
#define Fenetre_Attribut1 Pile_Fenetre_Attribut1[Fenetre-1]
GLOBAL int Pile_Fenetre_Attribut2[8];
#define Fenetre_Attribut2 Pile_Fenetre_Attribut2[Fenetre-1]

View File

@ -1026,14 +1026,17 @@ void Ouvrir_fenetre(word Largeur,word Hauteur, char * Titre)
Print_dans_fenetre((Largeur-(strlen(Titre)<<3))>>1,3,Titre,CM_Noir,CM_Clair);
Menu_visible_avant_fenetre=Menu_visible;
Menu_visible=0;
Menu_Ordonnee_avant_fenetre=Menu_Ordonnee;
Menu_Ordonnee=Hauteur_ecran;
Forme_curseur_avant_fenetre=Forme_curseur;
Forme_curseur=FORME_CURSEUR_FLECHE;
Cacher_pinceau_avant_fenetre=Cacher_pinceau;
Cacher_pinceau=1;
if (Fenetre == 1)
{
Menu_visible_avant_fenetre=Menu_visible;
Menu_visible=0;
Menu_Ordonnee_avant_fenetre=Menu_Ordonnee;
Menu_Ordonnee=Hauteur_ecran;
Forme_curseur_avant_fenetre=Forme_curseur;
Forme_curseur=FORME_CURSEUR_FLECHE;
Cacher_pinceau_avant_fenetre=Cacher_pinceau;
Cacher_pinceau=1;
}
// Initialisation des listes de boutons de la fenêtre
Fenetre_Liste_boutons_normal =NULL;
@ -1059,8 +1062,6 @@ void Fermer_fenetre(void)
Effacer_curseur();
Cacher_pinceau=Cacher_pinceau_avant_fenetre;
while (Fenetre_Liste_boutons_normal)
{
Temp1=Fenetre_Liste_boutons_normal->Next;
@ -1086,18 +1087,23 @@ void Fermer_fenetre(void)
Fenetre_Liste_boutons_special=Temp4;
}
Fenetre--;
Curseur_dans_menu_precedent=0; // il faut rafficher le libellé dans la barre
// d'outils si le curseur est sur une icône.
if (Fenetre == 1)
{
Calculer_coordonnees_pinceau();
Cacher_pinceau=Cacher_pinceau_avant_fenetre;
Menu_Ordonnee=Menu_Ordonnee_avant_fenetre;
Menu_visible=Menu_visible_avant_fenetre;
Forme_curseur=Forme_curseur_avant_fenetre;
Curseur_dans_menu_precedent=0; // il faut rafficher le libellé dans la barre
// d'outils si le curseur est sur une icône.
Calculer_coordonnees_pinceau();
Menu_Ordonnee=Menu_Ordonnee_avant_fenetre;
Menu_visible=Menu_visible_avant_fenetre;
Forme_curseur=Forme_curseur_avant_fenetre;
}
// Restore de ce que la fenêtre cachait
Restaure_fond(Fond_fenetre[Fenetre], Fenetre_Pos_X, Fenetre_Pos_Y, Fenetre_Largeur, Fenetre_Hauteur);
Restaure_fond(Fond_fenetre[Fenetre-1], Fenetre_Pos_X, Fenetre_Pos_Y, Fenetre_Largeur, Fenetre_Hauteur);
SDL_UpdateRect(Ecran_SDL,Fenetre_Pos_X,Fenetre_Pos_Y,Fenetre_Largeur*Menu_Facteur_X,Fenetre_Hauteur*Menu_Facteur_Y);
//Afficher_ecran();
@ -1106,8 +1112,8 @@ void Fermer_fenetre(void)
Touche=0;
Mouse_K=0;
// On (re)passe dans le clavier américain
Clavier_americain();
Fenetre--;
}

View File

@ -64,3 +64,4 @@ void Recuperer_couleur_derriere_fenetre(byte * Couleur, byte * Click);
short Fenetre_Bouton_clicke(void);
int Numero_bouton_sous_souris(void);
short Fenetre_Numero_bouton_clicke(void);

View File

@ -1293,7 +1293,7 @@ static const char * TableAideEffets[] =
AIDE_TEXTE("white pixels.")
AIDE_TEXTE("")
AIDE_TEXTE("")
AIDE_TITRE("TRANSPARENT")
AIDE_TITRE("TRANSPARENCY")
AIDE_TEXTE(" This allows to mix the color(s) of the")
AIDE_TEXTE("paintbrush with the colors of the picture.")
AIDE_TEXTE("It's used to make transparency effects like")