177 lines
No EOL
2.9 KiB
C
177 lines
No EOL
2.9 KiB
C
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <windows.h>
|
|
#include "screenManager.h"
|
|
|
|
void goToCoords(int x, int y)
|
|
{
|
|
COORD coords;
|
|
|
|
coords.X = x;
|
|
coords.Y = y;
|
|
|
|
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coords);
|
|
}
|
|
|
|
void drawHoryLine(char c, int lenght)
|
|
{
|
|
int i = 0;
|
|
|
|
while (i != lenght)
|
|
{
|
|
printf("%c", c);
|
|
i++;
|
|
}
|
|
}
|
|
|
|
void drawVertiLine(char c, int lenght)
|
|
{
|
|
CONSOLE_SCREEN_BUFFER_INFO info;
|
|
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &info);
|
|
int x = info.dwCursorPosition.X;
|
|
int y = info.dwCursorPosition.Y;
|
|
|
|
int i = 0;
|
|
|
|
while (i != lenght) {
|
|
goToCoords(x, y + i);
|
|
printf("%c", c);
|
|
i ++;
|
|
}
|
|
}
|
|
|
|
void drawRectangle(int x, int y, int lenght, int height)
|
|
{
|
|
goToCoords(x, y);
|
|
printf("%c", 201);
|
|
drawHoryLine(205, lenght - 2);
|
|
printf("%c", 187);
|
|
goToCoords(x, y + 1);
|
|
drawVertiLine(186, height - 2);
|
|
goToCoords(x + lenght - 1, y + 1);
|
|
drawVertiLine(186, height - 2);
|
|
goToCoords(x, y + height - 1);
|
|
printf("%c", 200);
|
|
drawHoryLine(205, lenght - 2);
|
|
printf("%c", 188);
|
|
}
|
|
|
|
void drawMenu(char *options[], int lenght) {
|
|
int max = strlen(options[0]);
|
|
|
|
for (int i = 0; i < lenght; i++) {
|
|
if (strlen(options[i]) > max) {
|
|
max = strlen(options[i]);
|
|
}
|
|
}
|
|
|
|
CONSOLE_SCREEN_BUFFER_INFO info;
|
|
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &info);
|
|
int columns = info.srWindow.Right - info.srWindow.Left + 1;
|
|
int rows = info.srWindow.Bottom - info.srWindow.Top + 1;
|
|
|
|
drawRectangle((columns - max - 4) / 2, 2, max + 4, lenght + 4);
|
|
|
|
for (int i = 0; i < lenght; i++) {
|
|
goToCoords((columns - max - 4) / 2 + 2, 4 + i);
|
|
printf("%s", options[i]);
|
|
}
|
|
|
|
}
|
|
|
|
void menuConf() {
|
|
char *options[] = {"1/ Voir la liste des conferences", "2/ Ajouter une conference", "3/ Suprimer une conference", "4/ Retour"};
|
|
system("cls");
|
|
drawMenu(options, 4);
|
|
goToCoords(0, 12);
|
|
printf("Que voulez-vous faire ? : ");
|
|
int choice;
|
|
scanf("%d", &choice);
|
|
|
|
switch (choice)
|
|
{
|
|
case 1:
|
|
break;
|
|
|
|
case 2:
|
|
break;
|
|
|
|
case 3:
|
|
break;
|
|
|
|
case 4:
|
|
menu();
|
|
break;
|
|
|
|
default:
|
|
menu();
|
|
break;
|
|
}
|
|
}
|
|
|
|
void menuAbo() {
|
|
char *options[] = {"1/ Voir la liste des abonnes", "2/ Ajouter un abonne", "3/ Suprimer un abonne", "4/ Retour"};
|
|
system("cls");
|
|
drawMenu(options, 4);
|
|
goToCoords(0, 12);
|
|
printf("Que voulez-vous faire ? : ");
|
|
int choice;
|
|
scanf("%d", &choice);
|
|
|
|
switch (choice)
|
|
{
|
|
case 1:
|
|
break;
|
|
|
|
case 2:
|
|
break;
|
|
|
|
case 3:
|
|
break;
|
|
|
|
case 4:
|
|
menu();
|
|
break;
|
|
|
|
default:
|
|
menu();
|
|
break;
|
|
}
|
|
}
|
|
|
|
void menu()
|
|
{
|
|
char *options[] = {"1/ Gestion des conferences", "2/ Gestion des abonnes", "3/ Participer a une conference", "4/ Voir la meilleure conference", "5/ Voir la participation a une conference", "6/ Quitter"};
|
|
system("cls");
|
|
drawMenu(options, 6);
|
|
goToCoords(0, 14);
|
|
printf("Que voulez-vous faire ? : ");
|
|
int choice;
|
|
scanf("%d", &choice);
|
|
|
|
switch (choice)
|
|
{
|
|
case 1:
|
|
menuConf();
|
|
break;
|
|
|
|
case 2:
|
|
menuAbo();
|
|
break;
|
|
|
|
case 3:
|
|
break;
|
|
|
|
case 4:
|
|
break;
|
|
|
|
case 5:
|
|
break;
|
|
|
|
case 6:
|
|
break;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
} |