Commit a61eee28 authored by Théophile BORNON's avatar Théophile BORNON

Menu class added

parent 720079de
......@@ -22,7 +22,7 @@ namespace S04_Projet
GrayScaleLuminosity,
Superposition,
Filter,
CreateImage,
//CreateImage,
Histogram,
Dithering,
Debug,
......@@ -40,7 +40,7 @@ namespace S04_Projet
"Passage à une image en nuances de gris (luminosité)",
"Superposer avec une autre image",
"Ajouter un filtre de convolution",
"Créer une image",
//"Créer une image",
"Générer les histogrammes de l'image",
"Floyd-Steinberg dithering",
"Activer le mode debug",
......@@ -51,6 +51,7 @@ namespace S04_Projet
public static string lastOperationMessage;
public static string fileInfos;
private static Stopwatch sw = new Stopwatch();
private static Menu mainMenu = new Menu(menuItems);
/// <summary>
/// Charge l'image
......@@ -107,37 +108,7 @@ namespace S04_Projet
Console.WriteLine(fileInfos);
Console.ForegroundColor = ConsoleColor.White;
int choosenItem = 0;
for (int i = 0; i < menuItems.Length; i++)
{
Console.WriteLine(((choosenItem == i) ? ">> " : " ") + menuItems[i]);
}
ConsoleKeyInfo key;
do
{
key = Console.ReadKey();
Console.SetCursorPosition(0, 9 + choosenItem);
Console.Write(" ");
if (key.Key == ConsoleKey.DownArrow)
{
choosenItem++;
if (choosenItem == menuItems.Length) choosenItem = 0;
}
else if (key.Key == ConsoleKey.UpArrow)
{
choosenItem--;
if (choosenItem == -1) choosenItem = menuItems.Length - 1;
}
Console.SetCursorPosition(0, 9 + choosenItem);
Console.Write(">>");
} while (key.Key != ConsoleKey.Escape && key.Key != ConsoleKey.Enter);
if (key.Key == ConsoleKey.Escape) Environment.Exit(0);
int choosenItem = mainMenu.ShowMenu(0, 9);
return (Operation)choosenItem;
}
......
......@@ -47,6 +47,7 @@
</ItemGroup>
<ItemGroup>
<Compile Include="Filter.cs" />
<Compile Include="Menu.cs" />
<Compile Include="MultiThreadedTask.cs" />
<Compile Include="MyImage.cs" />
<Compile Include="Display.cs" />
......
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace S04_Projet
{
class Menu
{
private string[] menuItems;
public Menu(string[] menuItems)
{
this.menuItems = menuItems;
}
public int ShowMenu(int xOffset, int yOffset)
{
int choosenItem = 0;
Console.SetCursorPosition(xOffset, yOffset);
for (int i = 0; i < menuItems.Length; i++)
{
Console.WriteLine(((choosenItem == i) ? ">> " : " ") + menuItems[i]);
}
ConsoleKeyInfo key;
do
{
key = Console.ReadKey();
Console.SetCursorPosition(xOffset, yOffset + choosenItem);
Console.Write(" ");
if (key.Key == ConsoleKey.DownArrow)
{
choosenItem++;
if (choosenItem == menuItems.Length) choosenItem = 0;
}
else if (key.Key == ConsoleKey.UpArrow)
{
choosenItem--;
if (choosenItem == -1) choosenItem = menuItems.Length - 1;
}
Console.SetCursorPosition(xOffset, yOffset + choosenItem);
Console.Write(">>");
} while (key.Key != ConsoleKey.Escape && key.Key != ConsoleKey.Enter);
if (key.Key == ConsoleKey.Escape) Environment.Exit(0);
return choosenItem;
}
}
}
......@@ -15,6 +15,10 @@ namespace S04_Projet
public static bool MULTITHREADING = true;
public static bool DEBUG = false;
private static string[] menuItems = new string[] { "Charger une image", "Créer une image" };
private static Menu welcomeMenu = new Menu(menuItems);
static void Main(string[] args)
{
Stopwatch sw = new Stopwatch();
......@@ -28,7 +32,7 @@ namespace S04_Projet
Console.WriteLine(sw.ElapsedMilliseconds);
Console.Read();
*/
#region Arguments
/*if (args.Length > 0)
{
......@@ -72,7 +76,7 @@ namespace S04_Projet
#endregion
#region Display
MyImage img;
{
Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine("#############################################################");
......@@ -80,7 +84,19 @@ namespace S04_Projet
Console.WriteLine("#############################################################");
Console.WriteLine();
MyImage img = Display.LoadImage();
int choice = welcomeMenu.ShowMenu(0, 5); // 0 pour charger une image, 1 pour la créer
if (choice == 0)
{
Console.Clear();
img = Display.LoadImage();
}
else
{
Console.Clear();
img = Display.CreateImageOperation();
Display.fileInfos = img.ToString();
}
Display.Operation ToDo = Display.AskForOperation();
MyImage newImg = Display.PerformOperation(ToDo, img);
......@@ -92,7 +108,6 @@ namespace S04_Projet
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Image sauvegardée en {0}ms!", Display.elapsedTime);
Console.Read();
}
#endregion
......
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment