forked from philouxy/langage_C
-
Notifications
You must be signed in to change notification settings - Fork 0
/
display.h
162 lines (143 loc) · 9.41 KB
/
display.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
//-----------------------------------------------------------------------------------//
// Nom du projet : Langage_C_fixme
// Nom du fichier : display.h
// Date de création : 25.02.2015
// Date de modification : 16.04.2023
//
// Auteur : Philou (Ph. Bovey)
//
// Description : fichier de type headerfile pour toutes les définitions
// et fonctions liées à l'afficahge
//
// Remarques :
//----------------------------------------------------------------------------------//
#ifndef DISPLAY_H_INCLUDED
#define DISPLAY_H_INCLUDED
//--- librairie associée ---//
#include <stdint.h>
#include "arithmetique.h"
//-- versionning --//
#define CODE_BLOCK
//#define VISUAL_STUDIO
//--- constante ou définition ---//
#ifdef VISUAL_STUDIO
const uint8_t CST_CONVASCII_NUM = 48;
#else
//const char CST_CONVASCII_NUM = 48;
#define CST_CONVASCII_NUM 48
#endif // VISUAL_STUDIO
//-- caractère spécifique --//
#define CHOIX_BAS 66 // représente B en caractère
#define CHOIX_DROITE 68 // représente D en caractère
#define CHOIX_ENTIER 73 // représente I en caractère
#define CHOIX_EXIT 69 // représente E en caractère
#define CHOIX_FLOTTANT 70 // représente F en caractère
#define CHOIX_GAUCHE 71 // représente G en caractère
#define CHOIX_HAUT 72 // représente H en caractère
#define CHOIX_MENU 77 // représente M en caractère
//#define CHOIX_MENU_PRINCIPAL 80 // représente P en caractère
#define CHOIX_PLEINS 80 // représente P en caractère
#define CHOIX_VIDE 86 // représente V en caractère
#define LIMITE_ETOILE_MIN 1 // nb d'étoile min que l'on peut afficher
#define LIMITE_ETOILE_MAX 15 // nb d'étoile min que l'on peut afficher
#define LIMITE_NB_MAX 100 // limite d'un nombre entier
#define LIMITE_NB_MIN -100 // limite d'un nombre entier
#define MAX_CARA 80 // largeur d'une fenêtre DOS
//-- gestion de message user --//
#define DELETE_SCREEN system("cls")
#define PRINT_SAUT_LIGNE printf("\n")
#define PRINT_ESPACE printf(" ")
#define PRINT_ETOILE printf("*");
#define PRINT_M_MENU printf("MENU : ")
#define PRINT_SELECTION_ABSCISSE printf("Entrer Valeur entiere entre %d et %d :", LIMITE_AXE_X_MIN, LIMITE_AXE_X_MAX)
#define PRINT_SELECTION_CHAR printf("Veuillez taper un caractere :")
#define PRINT_SELECTION_CHOIX printf("Veuillez Selectionner votre choix : ")
#define PRINT_SELECTION_FLOAT printf("Voulez-vous travailler en flottant - taper 'F' ")
#define PRINT_SELECTION_GD printf("Veuillez choisir entre Gauche[G] et Droite[D] : ")
#define PRINT_SELECTION_HB printf("Veuillez choisir entre Haut[H] et Bas[B] : ")
#define PRINT_SELECTION_INT printf("Voulez-vous travailler en entier - taper 'I' ")
#define PRINT_SELECTION_INT_LIMIT printf("Entrer Valeur entiere entre %d et %d : ", LIMITE_AXE_X_MIN, LIMITE_AXE_X_MAX)
#define PRINT_SELECTION_MENU printf("Veuillez Selectionner votre Menu : ")
#define PRINT_SELECTION_NB printf("Indiquer un nombre : ")
#define PRINT_SELECTION_NEW_NB printf("Indiquer un nouveau nombre : ")
#define PRINT_SELECTION_ORDONNEE printf("Entrer Valeur entiere entre %d et %d :", LIMITE_AXE_Y_MIN, LIMITE_AXE_Y_MAX)
#define PRINT_SELECTION_PV printf("Veuillez choisir entre Plein [P] et Vide [V] : ")
#define NAME_M_ADITION "ADITION"
#define NAME_M_AFFICHAGE "AFFICHAGE"
#define NAME_M_ARITHEMTIQUE "ARITHMETIQUE"
#define NAME_M_ASTUCE_PRINTF "ASTUCE PRINTF"
#define NAME_M_ASTUCE_INCR "ASTUCE INCREMENTATION & DECREMENTATION"
#define NAME_M_ASTUCE_CONV_CHAR_NUM "ASTUCE CONVERSION CARACTERE NUMERIQUE - TABLE"
#define NAME_M_ASTUCE_LOOP "ASTUCE BOUCLE"
#define NAME_M_ASTUCE_MEMOIRE "ASTUCE MEMOIRE"
#define NAME_M_CALCUL_SEG_AB "CALCUL SEGMENT POINT_A(x,y) - POINT_B(x,y)"
#define NAME_M_CONV "CONVERSIONS"
#define NAME_M_CONV_CHAR_NUM "CONVERSION CARACTERE EN NUM (DEC - HEXA)"
#define NAME_M_CONV_DECIMAL_BINAIRE "CONVERSION DECIMAL BINAIRE"
#define NAME_M_CONV_NUM_CHAR "CONVERSION NUMERIQUE EN CARACTERE"
#define NAME_M_CONV_NUM_OCT_HEX "CONVERSION NUMERIQUE EN OCTAL - HEXA"
#define NAME_M_DIVISION "DIVISION"
#define NAME_M_DISP_CARRE "AFFICHAGE DE CARRE"
#define NAME_M_DISP_LOSANGE "AFFICHAGE DE LOSANGE"
#define NAME_M_DISP_PARALLELOGRAMME "AFFICHAGE DE PARALLELOGRAMME"
#define NAME_M_DISP_TRIANGLE "AFFICHAGE DE TRIANGLE"
#define NAME_M_MULTIPLICATION "MULTIPLICATION"
#define NAME_M_OP_SIMPLE "OPERATION SIMPLE"
#define NAME_M_PRINICIPAL "PRINCIPAL"
#define NAME_M_SOUSTRACTION "SOUSTRACTION"
#define NAME_M_VECTEUR "VECTEUR"
//-- typedef -> énumération --//
//-- énumération pour la gestion des menus principaux
typedef enum {m_principal,
m_arithmetique,
m_affichage,
m_astucePrint,
m_astuceLoop,
m_astuceMemory} e_infoMenus;
//-- énumération pour la gestion des sélections
typedef enum {select_menu,
select_sousMenu,
select_valeur} e_selectionMSG;
//--- déclaration de variable global ---//
extern char var_retour;
//--- déclaration de prototype ---//
//--- liée au fichier template_menu.c ---//
void Template_Menu_Ligne(void); //-> affiche un trait d'*
void Template_Display_Menu(e_infoMenus choix_menu); //-> affiche le titre dans lequel se trouve le user et sélectionne le menu choisi
void Template_Choix_Menu_Principal(void); //-> affiche le menu principal pour le user
//--- liée au fichier template_menu_arithm.c ---//
void Template_Display_Menu_Arithm(char choix_menu); //-> affiche le titre dans lequel se trouve le user et sélectionne le menu choisi
void Template_Choix_Menu_Arithmetique(void); //-> affiche le menu arithmetique
void Template_Choix_Menu_OP_Simple(void); //-> affiche le menu opération simple
void Template_Choix_Menu_Conversion(void); //-> affiche le menu Conversion
void Template_Display_Menu_OP_Simple(char choix_menu); //-> affiche le menu concernant les oérations simples
void Template_Display_Menu_Conversion(char choix_menu); //-> affiche le menu concernant différentes conversions
//--- liée au fichier template_menu_display.c ---//
void Template_Choix_Menu_Display(void); //-> affichage de différents theme du menu display
void Template_Display_Menu_Display(char choix_menu); //-> affiche le titre dans lequel se trouve le user et sélectionne le menu choisi
//--- liée au fichier selection_user.c ---//
char Selection_Menus(e_selectionMSG choix_selection_msg); //-> permet de récuprer une valeur entrer par l'utilisateur
char Select_Option(void); //-> permet à l'utilisteur de choisir entre deux options
char Select_Var_Cara(void); //-> récupère un caractère fournis par un utilisateur
float SelectValFlottantAvecLimite(float limitMax, float limitMin); //-> récupère une chaine de caractère et la transforme en floattant en contrôlant des limites
float Select_Var_Flottant(void); //-> récupère une chaine de caractère et la transforme en floattant
int SelectValEntierSansLimite(void); //-> récupère une châine de chaîne de caractère et le transforme en entier
int Select_Var_Entier(int limiteMax, int limiteMin); //-> récupère une châine de chaîne de caractère et le transforme en entier avec controle de limite
//--- lié au fichier help.c ---//
void Help_Printf(void); //-> affiche une aide sur le printf
void Help_Loop(void); //-> effet visuel avec des boucles itératives
void HelpMemorie(void); //-> indicateurs sur la gestion de variable mémoire
//--- liée au fichier affichage.c ---//
void Triangle_Etoile_AGB(int nb_etoile); // permet d'afficher un triangle selon les datas du user
void Triangle_Etoile_AGH(int nb_etoile);
void Triangle_Etoile_ADB(int nb_etoile);
void Triangle_Etoile_ADH(int nb_etoile);
void Carre(int val_user); // afficher un carré plein d'étoiles
void Parallelogramme_AG(int val_user); // affiche un parallelogramme avec l'angle a gauche
void Parallelogramme_AD(int val_user); // affiche un parallelogramme avec l'angle a droite
void Choix_Emplacement_Triangle(char choix_HB, char choix_GD); // definit quel dessin de traingle afficher selon le user
void Losange_Vide(void); // affiche un losange entouré d'étoile
void Losange_Plein(void); // affiche un losange remplit d'étoile
void Selection_Losange (char choix_user); // selectionne un losange vide ou plein
void Selection_Sens_Paralelogramme(char choix_user); // choix pour l'affichage d'un parallelogramme (angle droite ou gauche)
#endif // DISPLAY_H_INCLUDED