Skip to content
This repository has been archived by the owner on Jun 3, 2024. It is now read-only.

Commit

Permalink
dev - Started development of 1.1.2
Browse files Browse the repository at this point in the history
---

We've updated Terminaux to the latest version, and made necessary changes.

---

Type: dev
Breaking: False
Doc Required: False
Part: 1/1
  • Loading branch information
AptiviCEO committed Oct 23, 2023
1 parent c3eff55 commit 6a1f2a6
Show file tree
Hide file tree
Showing 9 changed files with 76 additions and 73 deletions.
48 changes: 24 additions & 24 deletions GRILO.Bootloader/BootStyle/Styles/BootMgrBootStyle.cs
Original file line number Diff line number Diff line change
Expand Up @@ -48,19 +48,19 @@ public override void Render()
int headerTextX = (Console.WindowWidth / 2) - (header.Length / 2);
ConsoleColor barColor = ConsoleColor.Gray;
ConsoleColor barForeground = ConsoleColor.Black;
TextWriterWhereColor.WriteWhere(new string(' ', barLength), marginX, headerY, new Color(barForeground), new Color(barColor));
TextWriterWhereColor.WriteWhere(new string(' ', barLength), marginX, footerY, new Color(barForeground), new Color(barColor));
TextWriterWhereColor.WriteWhere(header, headerTextX, headerY, new Color(barForeground), new Color(barColor));
TextWriterWhereColor.WriteWhere(footer, 3, footerY, new Color(barForeground), new Color(barColor));
TextWriterWhereColor.WriteWhereColorBack(new string(' ', barLength), marginX, headerY, new Color(barForeground), new Color(barColor));
TextWriterWhereColor.WriteWhereColorBack(new string(' ', barLength), marginX, footerY, new Color(barForeground), new Color(barColor));
TextWriterWhereColor.WriteWhereColorBack(header, headerTextX, headerY, new Color(barForeground), new Color(barColor));
TextWriterWhereColor.WriteWhereColorBack(footer, 3, footerY, new Color(barForeground), new Color(barColor));

// Render the hints first
ConsoleColor promptColor = ConsoleColor.White;
ConsoleColor hintColor = ConsoleColor.Gray;
int chooseHelpY = 2;
int optionHelpY = 12;
TextWriterWhereColor.WriteWhere("Choose an operating system to start, or press TAB to select a tool:", marginX, chooseHelpY, new Color(promptColor));
TextWriterWhereColor.WriteWhere("(Use the arrow keys to highlight your choice, then press ENTER.)", marginX, chooseHelpY + 1, new Color(hintColor));
TextWriterWhereColor.WriteWhere("To specify an advanced option for this choice, press F8.", marginX, optionHelpY, new Color(promptColor));
TextWriterWhereColor.WriteWhereColor("Choose an operating system to start, or press TAB to select a tool:", marginX, chooseHelpY, new Color(promptColor));
TextWriterWhereColor.WriteWhereColor("(Use the arrow keys to highlight your choice, then press ENTER.)", marginX, chooseHelpY + 1, new Color(hintColor));
TextWriterWhereColor.WriteWhereColor("To specify an advanced option for this choice, press F8.", marginX, optionHelpY, new Color(promptColor));
}

public override void RenderHighlight(int chosenBootEntry)
Expand All @@ -86,7 +86,7 @@ public override void RenderHighlight(int chosenBootEntry)
string rendered = $"{bootApp}";
var finalColorBg = i == chosenBootEntry ? selectedEntryBg : normalEntryBg;
var finalColorFg = i == chosenBootEntry ? selectedEntryFg : normalEntryFg;
TextWriterWhereColor.WriteWhere(rendered + new string(' ', Console.WindowWidth - 15 - rendered.Length) + (i == chosenBootEntry ? '>' : ' '), 6, 5 + renderedAnswers, false, new Color(finalColorFg), new Color(finalColorBg));
TextWriterWhereColor.WriteWhereColorBack(rendered + new string(' ', Console.WindowWidth - 15 - rendered.Length) + (i == chosenBootEntry ? '>' : ' '), 6, 5 + renderedAnswers, false, new Color(finalColorFg), new Color(finalColorBg));
renderedAnswers++;
}
}
Expand All @@ -103,24 +103,24 @@ public override void RenderBootFailedMessage(string content)
int headerTextX = (Console.WindowWidth / 2) - (header.Length / 2);
ConsoleColor barColor = ConsoleColor.Gray;
ConsoleColor barForeground = ConsoleColor.Black;
TextWriterWhereColor.WriteWhere(new string(' ', barLength), marginX, headerY, new Color(barForeground), new Color(barColor));
TextWriterWhereColor.WriteWhere(new string(' ', barLength), marginX, footerY, new Color(barForeground), new Color(barColor));
TextWriterWhereColor.WriteWhere(header, headerTextX, headerY, new Color(barForeground), new Color(barColor));
TextWriterWhereColor.WriteWhere(footer, 3, footerY, new Color(barForeground), new Color(barColor));
TextWriterWhereColor.WriteWhereColorBack(new string(' ', barLength), marginX, headerY, new Color(barForeground), new Color(barColor));
TextWriterWhereColor.WriteWhereColorBack(new string(' ', barLength), marginX, footerY, new Color(barForeground), new Color(barColor));
TextWriterWhereColor.WriteWhereColorBack(header, headerTextX, headerY, new Color(barForeground), new Color(barColor));
TextWriterWhereColor.WriteWhereColorBack(footer, 3, footerY, new Color(barForeground), new Color(barColor));

// Render the hints first
ConsoleColor promptColor = ConsoleColor.White;
ConsoleColor hintColor = ConsoleColor.Gray;
int failedHelpY = 2;
TextWriterWhereColor.WriteWhere("Windows failed to start. A recent hardware or software change might be the\ncause. To fix the problem:", marginX, failedHelpY, new Color(hintColor));
TextWriterWhereColor.WriteWhere("1. Insert your Windows installation disc and restart your computer.", marginX + 2, failedHelpY + 3, new Color(hintColor));
TextWriterWhereColor.WriteWhere("2. Choose your language settings, and then click \"Next.\"", marginX + 2, failedHelpY + 4, new Color(hintColor));
TextWriterWhereColor.WriteWhere("3. Click \"Repair your computer.\"", marginX + 2, failedHelpY + 5, new Color(hintColor));
TextWriterWhereColor.WriteWhere("If you do not have this disc, contact your system administrator or computer\nmanufacturer for assistance.", marginX, failedHelpY + 7, new Color(hintColor));
TextWriterWhereColor.WriteWhere($"File: {new Color(promptColor).VTSequenceForeground}\\Boot\\BCD", marginX + 4, failedHelpY + 10, new Color(hintColor));
TextWriterWhereColor.WriteWhere($"Status: {new Color(promptColor).VTSequenceForeground}0xc000000f", marginX + 4, failedHelpY + 12, new Color(hintColor));
TextWriterWhereColor.WriteWhere($"Info:", marginX + 4, failedHelpY + 14, new Color(hintColor));
TextWriterWhereColor.WriteWhere(content, marginX + 10, failedHelpY + 14, new Color(promptColor));
TextWriterWhereColor.WriteWhereColor("Windows failed to start. A recent hardware or software change might be the\ncause. To fix the problem:", marginX, failedHelpY, new Color(hintColor));
TextWriterWhereColor.WriteWhereColor("1. Insert your Windows installation disc and restart your computer.", marginX + 2, failedHelpY + 3, new Color(hintColor));
TextWriterWhereColor.WriteWhereColor("2. Choose your language settings, and then click \"Next.\"", marginX + 2, failedHelpY + 4, new Color(hintColor));
TextWriterWhereColor.WriteWhereColor("3. Click \"Repair your computer.\"", marginX + 2, failedHelpY + 5, new Color(hintColor));
TextWriterWhereColor.WriteWhereColor("If you do not have this disc, contact your system administrator or computer\nmanufacturer for assistance.", marginX, failedHelpY + 7, new Color(hintColor));
TextWriterWhereColor.WriteWhereColor($"File: {new Color(promptColor).VTSequenceForeground}\\Boot\\BCD", marginX + 4, failedHelpY + 10, new Color(hintColor));
TextWriterWhereColor.WriteWhereColor($"Status: {new Color(promptColor).VTSequenceForeground}0xc000000f", marginX + 4, failedHelpY + 12, new Color(hintColor));
TextWriterWhereColor.WriteWhereColor($"Info:", marginX + 4, failedHelpY + 14, new Color(hintColor));
TextWriterWhereColor.WriteWhereColor(content, marginX + 10, failedHelpY + 14, new Color(promptColor));
Input.DetectKeypress();
Console.Clear();
}
Expand All @@ -135,18 +135,18 @@ public override void RenderSelectTimeout(int timeout)
ConsoleColor hintColor = ConsoleColor.Gray;
int marginX = 2;
int optionHelpY = 12;
TextWriterWhereColor.WriteWhere("Seconds until the highlighted choice will be started automatically:", marginX, optionHelpY + 1, true, new Color(hintColor));
TextWriterWhereColor.WriteWhereColor("Seconds until the highlighted choice will be started automatically:", marginX, optionHelpY + 1, true, new Color(hintColor));
int timeoutX = marginX + "Seconds until the highlighted choice will be started automatically: ".Length;
int timeoutY = 13;
TextWriterWhereColor.WriteWhere($"{timeout} ", timeoutX, timeoutY, true, new Color(hintColor));
TextWriterWhereColor.WriteWhereColor($"{timeout} ", timeoutX, timeoutY, true, new Color(hintColor));
}

public override void ClearSelectTimeout()
{
int marginX = 2;
int timeoutY = 13;
ConsoleColor hintColor = ConsoleColor.Gray;
TextWriterWhereColor.WriteWhere(new string(' ', Console.WindowWidth - 2), marginX, timeoutY, true, new Color(hintColor));
TextWriterWhereColor.WriteWhereColor(new string(' ', Console.WindowWidth - 2), marginX, timeoutY, true, new Color(hintColor));
}
}
}
14 changes: 7 additions & 7 deletions GRILO.Bootloader/BootStyle/Styles/DefaultBootStyle.cs
Original file line number Diff line number Diff line change
Expand Up @@ -45,14 +45,14 @@ public override void Render()
// Write the section title
string finalRenderedSection = "-- Select boot entry --";
int halfX = (Console.WindowWidth / 2) - (finalRenderedSection.Length / 2);
TextWriterWhereColor.WriteWhere(finalRenderedSection, halfX, 2, new Color(sectionTitle));
TextWriterWhereColor.WriteWhereColor(finalRenderedSection, halfX, 2, new Color(sectionTitle));

// Now, render a box
BorderColor.WriteBorder(2, 4, Console.WindowWidth - 6, Console.WindowHeight - 9, new Color(boxBorderColor));

// Offer help for new users
string help = $"SHIFT + H for help. Version {GRILO.griloVersion}";
TextWriterWhereColor.WriteWhere(help, Console.WindowWidth - help.Length - 2, Console.WindowHeight - 2, new Color(ConsoleColor.White));
TextWriterWhereColor.WriteWhereColor(help, Console.WindowWidth - help.Length - 2, Console.WindowHeight - 2, new Color(ConsoleColor.White));
}

public override void RenderHighlight(int chosenBootEntry)
Expand All @@ -79,22 +79,22 @@ public override void RenderHighlight(int chosenBootEntry)
string bootApp = BootManager.GetBootAppNameByIndex(i);
string rendered = $" >> {bootApp}";
var finalColor = i == chosenBootEntry ? highlightedEntry : normalEntry;
TextWriterWhereColor.WriteWhere(rendered, upperLeftCornerInterior.Item1, upperLeftCornerInterior.Item2 + renderedAnswers, new Color(finalColor));
TextWriterWhereColor.WriteWhereColor(rendered, upperLeftCornerInterior.Item1, upperLeftCornerInterior.Item2 + renderedAnswers, new Color(finalColor));
renderedAnswers++;
}

// Populate page number
string renderedNumber = $"[{chosenBootEntry + 1}/{bootApps.Count}]═[{currentPage + 1}/{pages}]";
(int, int) lowerRightCornerToWrite = (Console.WindowWidth - renderedNumber.Length - 3, Console.WindowHeight - 4);
TextWriterWhereColor.WriteWhere(renderedNumber, lowerRightCornerToWrite.Item1, lowerRightCornerToWrite.Item2, new Color(pageNumberColor));
TextWriterWhereColor.WriteWhereColor(renderedNumber, lowerRightCornerToWrite.Item1, lowerRightCornerToWrite.Item2, new Color(pageNumberColor));
}

public override void RenderModalDialog(string content)
{
// Populate colors
ConsoleColor dialogBG = ConsoleColor.Black;
ConsoleColor dialogFG = ConsoleColor.Gray;
InfoBoxColor.WriteInfoBox(content, new Color(dialogFG), new Color(dialogBG));
InfoBoxColor.WriteInfoBoxColorBack(content, new Color(dialogFG), new Color(dialogBG));
Console.Clear();
}

Expand All @@ -105,12 +105,12 @@ public override void RenderBootFailedMessage(string content) =>
TextWriterColor.Write(content);

public override void RenderSelectTimeout(int timeout) =>
TextWriterWhereColor.WriteWhere($"{timeout} ", 2, Console.WindowHeight - 2, true, new Color(ConsoleColor.White));
TextWriterWhereColor.WriteWhereColor($"{timeout} ", 2, Console.WindowHeight - 2, true, new Color(ConsoleColor.White));

public override void ClearSelectTimeout()
{
string spaces = new(' ', GetDigits(GetDigits(Config.Instance.BootSelectTimeoutSeconds)));
TextWriterWhereColor.WriteWhere(spaces, 2, Console.WindowHeight - 2, true, new Color(ConsoleColor.White));
TextWriterWhereColor.WriteWhereColor(spaces, 2, Console.WindowHeight - 2, true, new Color(ConsoleColor.White));
}

internal static int GetDigits(int Number) =>
Expand Down
15 changes: 8 additions & 7 deletions GRILO.Bootloader/BootStyle/Styles/GrubBootStyle.cs
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ public override void Render()
// Write the section title
string finalRenderedSection = "GNU GRUB version 2.06";
int halfX = (Console.WindowWidth / 2) - (finalRenderedSection.Length / 2);
TextWriterWhereColor.WriteWhere(finalRenderedSection, halfX, 2, new Color(sectionTitle));
TextWriterWhereColor.WriteWhereColor(finalRenderedSection, halfX, 2, new Color(sectionTitle));

// Now, render a box
BorderColor.WriteBorder(2, 4, Console.WindowWidth - 6, Console.WindowHeight - 15, new Color(boxBorderColor));
Expand All @@ -57,7 +57,7 @@ public override void Render()
$"Press enter to boot the selected OS, `e' to edit the commands\n" +
$"before booting or `c' for a command line.";
int longest = help.Split(new[] { '\n' }).Max((text) => text.Length);
TextWriterWhereColor.WriteWhere(help, (Console.WindowWidth / 2) - (longest / 2) - 2, Console.WindowHeight - 8, new Color(sectionTitle));
TextWriterWhereColor.WriteWhereColor(help, (Console.WindowWidth / 2) - (longest / 2) - 2, Console.WindowHeight - 8, new Color(sectionTitle));
}

public override void RenderHighlight(int chosenBootEntry)
Expand All @@ -83,7 +83,7 @@ public override void RenderHighlight(int chosenBootEntry)
string rendered = i == chosenBootEntry ? $"*{bootApp}" : $" {bootApp}";
var finalColorBg = i == chosenBootEntry ? highlightedEntry : normalEntry;
var finalColorFg = i == chosenBootEntry ? normalEntry : highlightedEntry;
TextWriterWhereColor.WriteWhere(rendered + new string(' ', Console.WindowWidth - 6 - rendered.Length), upperLeftCornerInterior.Item1, upperLeftCornerInterior.Item2 + renderedAnswers, false, new Color(finalColorFg), new Color(finalColorBg));
TextWriterWhereColor.WriteWhereColorBack(rendered + new string(' ', Console.WindowWidth - 6 - rendered.Length), upperLeftCornerInterior.Item1, upperLeftCornerInterior.Item2 + renderedAnswers, false, new Color(finalColorFg), new Color(finalColorBg));
renderedAnswers++;
}
}
Expand All @@ -92,23 +92,24 @@ public override void RenderModalDialog(string content)
{
// Populate colors
ConsoleColor dialogFG = ConsoleColor.Gray;
TextWriterColor.Write(content, true, new Color(dialogFG));
TextWriterColor.WriteColor(content, true, new Color(dialogFG));
}

public override void RenderBootingMessage(string chosenBootName) { }

public override void RenderBootFailedMessage(string content) => RenderModalDialog(content);
public override void RenderBootFailedMessage(string content) =>
RenderModalDialog(content);

public override void RenderSelectTimeout(int timeout)
{
string help = $"The highlighted entry will be executed automatically in {timeout}s. ";
TextWriterWhereColor.WriteWhere(help, 4, Console.WindowHeight - 5, true, new Color(ConsoleColor.White));
TextWriterWhereColor.WriteWhereColor(help, 4, Console.WindowHeight - 5, true, new Color(ConsoleColor.White));
}

public override void ClearSelectTimeout()
{
string help = $"The highlighted entry will be executed automatically in {Config.Instance.BootSelectTimeoutSeconds}s. ";
TextWriterWhereColor.WriteWhere(new string(' ', help.Length), 4, Console.WindowHeight - 5, true, new Color(ConsoleColor.White));
TextWriterWhereColor.WriteWhereColor(new string(' ', help.Length), 4, Console.WindowHeight - 5, true, new Color(ConsoleColor.White));
}
}
}
Loading

0 comments on commit 6a1f2a6

Please sign in to comment.