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

Menu class added

parent 720079de
...@@ -22,7 +22,7 @@ namespace S04_Projet ...@@ -22,7 +22,7 @@ namespace S04_Projet
GrayScaleLuminosity, GrayScaleLuminosity,
Superposition, Superposition,
Filter, Filter,
CreateImage, //CreateImage,
Histogram, Histogram,
Dithering, Dithering,
Debug, Debug,
...@@ -40,7 +40,7 @@ namespace S04_Projet ...@@ -40,7 +40,7 @@ namespace S04_Projet
"Passage à une image en nuances de gris (luminosité)", "Passage à une image en nuances de gris (luminosité)",
"Superposer avec une autre image", "Superposer avec une autre image",
"Ajouter un filtre de convolution", "Ajouter un filtre de convolution",
"Créer une image", //"Créer une image",
"Générer les histogrammes de l'image", "Générer les histogrammes de l'image",
"Floyd-Steinberg dithering", "Floyd-Steinberg dithering",
"Activer le mode debug", "Activer le mode debug",
...@@ -51,6 +51,7 @@ namespace S04_Projet ...@@ -51,6 +51,7 @@ namespace S04_Projet
public static string lastOperationMessage; public static string lastOperationMessage;
public static string fileInfos; public static string fileInfos;
private static Stopwatch sw = new Stopwatch(); private static Stopwatch sw = new Stopwatch();
private static Menu mainMenu = new Menu(menuItems);
/// <summary> /// <summary>
/// Charge l'image /// Charge l'image
...@@ -107,37 +108,7 @@ namespace S04_Projet ...@@ -107,37 +108,7 @@ namespace S04_Projet
Console.WriteLine(fileInfos); Console.WriteLine(fileInfos);
Console.ForegroundColor = ConsoleColor.White; Console.ForegroundColor = ConsoleColor.White;
int choosenItem = 0; int choosenItem = mainMenu.ShowMenu(0, 9);
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);
return (Operation)choosenItem; return (Operation)choosenItem;
} }
......
...@@ -47,6 +47,7 @@ ...@@ -47,6 +47,7 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Compile Include="Filter.cs" /> <Compile Include="Filter.cs" />
<Compile Include="Menu.cs" />
<Compile Include="MultiThreadedTask.cs" /> <Compile Include="MultiThreadedTask.cs" />
<Compile Include="MyImage.cs" /> <Compile Include="MyImage.cs" />
<Compile Include="Display.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 ...@@ -15,6 +15,10 @@ namespace S04_Projet
public static bool MULTITHREADING = true; public static bool MULTITHREADING = true;
public static bool DEBUG = false; 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) static void Main(string[] args)
{ {
Stopwatch sw = new Stopwatch(); Stopwatch sw = new Stopwatch();
...@@ -28,7 +32,7 @@ namespace S04_Projet ...@@ -28,7 +32,7 @@ namespace S04_Projet
Console.WriteLine(sw.ElapsedMilliseconds); Console.WriteLine(sw.ElapsedMilliseconds);
Console.Read(); Console.Read();
*/ */
#region Arguments #region Arguments
/*if (args.Length > 0) /*if (args.Length > 0)
{ {
...@@ -72,7 +76,7 @@ namespace S04_Projet ...@@ -72,7 +76,7 @@ namespace S04_Projet
#endregion #endregion
#region Display #region Display
MyImage img;
{ {
Console.ForegroundColor = ConsoleColor.White; Console.ForegroundColor = ConsoleColor.White;
Console.WriteLine("#############################################################"); Console.WriteLine("#############################################################");
...@@ -80,7 +84,19 @@ namespace S04_Projet ...@@ -80,7 +84,19 @@ namespace S04_Projet
Console.WriteLine("#############################################################"); Console.WriteLine("#############################################################");
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(); Display.Operation ToDo = Display.AskForOperation();
MyImage newImg = Display.PerformOperation(ToDo, img); MyImage newImg = Display.PerformOperation(ToDo, img);
...@@ -92,7 +108,6 @@ namespace S04_Projet ...@@ -92,7 +108,6 @@ namespace S04_Projet
Console.ForegroundColor = ConsoleColor.Green; Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Image sauvegardée en {0}ms!", Display.elapsedTime); Console.WriteLine("Image sauvegardée en {0}ms!", Display.elapsedTime);
Console.Read(); Console.Read();
} }
#endregion #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