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

Commit

Permalink
imp - Use ConsoleWrapper for adaptibility
Browse files Browse the repository at this point in the history
---

We need to better detect the dumb console, so we've converted all calls to System.Console to ConsoleWrapper as per guidance that Nitrocid analyzers provide.

---

Type: imp
Breaking: False
Doc Required: False
Part: 1/1
  • Loading branch information
AptiviCEO committed Mar 10, 2024
1 parent cdb2928 commit c4f20d2
Show file tree
Hide file tree
Showing 7 changed files with 28 additions and 24 deletions.
14 changes: 7 additions & 7 deletions GRILO.Bootloader/Boot/Style/BaseBootStyle.cs
Original file line number Diff line number Diff line change
Expand Up @@ -50,20 +50,20 @@ public virtual string Render()
// Write the section title
var builder = new StringBuilder();
string finalRenderedSection = "-- Select boot entry --";
int halfX = Console.WindowWidth / 2 - finalRenderedSection.Length / 2;
int halfX = ConsoleWrapper.WindowWidth / 2 - finalRenderedSection.Length / 2;
builder.Append(
TextWriterWhereColor.RenderWhereColor(finalRenderedSection, halfX, 2, new Color(sectionTitle))
);

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

// Offer help for new users
string help = $"SHIFT + H for help. Version {Entry.griloVersion}";
builder.Append(
TextWriterWhereColor.RenderWhereColor(help, Console.WindowWidth - help.Length - 2, Console.WindowHeight - 2, new Color(ConsoleColor.White))
TextWriterWhereColor.RenderWhereColor(help, ConsoleWrapper.WindowWidth - help.Length - 2, ConsoleWrapper.WindowHeight - 2, new Color(ConsoleColor.White))
);
return builder.ToString();
}
Expand All @@ -80,7 +80,7 @@ public virtual string RenderHighlight(int chosenBootEntry)
var builder = new StringBuilder();
var bootApps = BootManager.GetBootApps();
(int, int) upperLeftCornerInterior = (4, 6);
(int, int) lowerLeftCornerInterior = (4, Console.WindowHeight - 6);
(int, int) lowerLeftCornerInterior = (4, ConsoleWrapper.WindowHeight - 6);
int maxItemsPerPage = lowerLeftCornerInterior.Item2 - upperLeftCornerInterior.Item2;
int pages = (int)Math.Truncate(bootApps.Count / (double)maxItemsPerPage);
int currentPage = (int)Math.Truncate(chosenBootEntry / (double)maxItemsPerPage);
Expand All @@ -102,7 +102,7 @@ public virtual string RenderHighlight(int chosenBootEntry)

// Populate page number
string renderedNumber = $"[{chosenBootEntry + 1}/{bootApps.Count}]═[{currentPage + 1}/{pages}]";
(int, int) lowerRightCornerToWrite = (Console.WindowWidth - renderedNumber.Length - 3, Console.WindowHeight - 4);
(int, int) lowerRightCornerToWrite = (ConsoleWrapper.WindowWidth - renderedNumber.Length - 3, ConsoleWrapper.WindowHeight - 4);
builder.Append(
TextWriterWhereColor.RenderWhereColor(renderedNumber, lowerRightCornerToWrite.Item1, lowerRightCornerToWrite.Item2, new Color(pageNumberColor))
);
Expand Down Expand Up @@ -139,13 +139,13 @@ public virtual string RenderBootFailedMessage(string content) =>

/// <inheritdoc/>
public virtual string RenderSelectTimeout(int timeout) =>
TextWriterWhereColor.RenderWhereColor($"{timeout} ", 2, Console.WindowHeight - 2, true, new Color(ConsoleColor.White));
TextWriterWhereColor.RenderWhereColor($"{timeout} ", 2, ConsoleWrapper.WindowHeight - 2, true, new Color(ConsoleColor.White));

/// <inheritdoc/>
public virtual string ClearSelectTimeout()
{
string spaces = new(' ', GetDigits(Config.Instance.BootSelectTimeoutSeconds));
return TextWriterWhereColor.RenderWhereColor(spaces, 2, Console.WindowHeight - 2, true, new Color(ConsoleColor.White));
return TextWriterWhereColor.RenderWhereColor(spaces, 2, ConsoleWrapper.WindowHeight - 2, true, new Color(ConsoleColor.White));
}

internal static int GetDigits(int Number) =>
Expand Down
16 changes: 8 additions & 8 deletions GRILO.Bootloader/Boot/Style/Styles/BootMgrBootStyle.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,11 +41,11 @@ public override string Render()
// Render the header and footer
int marginX = 2;
int headerY = 0;
int footerY = Console.WindowHeight - 1;
int barLength = Console.WindowWidth - 4;
int footerY = ConsoleWrapper.WindowHeight - 1;
int barLength = ConsoleWrapper.WindowWidth - 4;
string header = "Windows Boot Manager";
string footer = "ENTER=Choose";
int headerTextX = Console.WindowWidth / 2 - header.Length / 2;
int headerTextX = ConsoleWrapper.WindowWidth / 2 - header.Length / 2;
var builder = new StringBuilder();
ConsoleColor barColor = ConsoleColor.Gray;
ConsoleColor barForeground = ConsoleColor.Black;
Expand Down Expand Up @@ -96,7 +96,7 @@ public override string RenderHighlight(int chosenBootEntry)
var finalColorBg = i == chosenBootEntry ? selectedEntryBg : normalEntryBg;
var finalColorFg = i == chosenBootEntry ? selectedEntryFg : normalEntryFg;
builder.Append(
TextWriterWhereColor.RenderWhereColorBack(rendered + new string(' ', Console.WindowWidth - 15 - rendered.Length) + (i == chosenBootEntry ? '>' : ' '), 6, 5 + renderedAnswers, false, new Color(finalColorFg), new Color(finalColorBg))
TextWriterWhereColor.RenderWhereColorBack(rendered + new string(' ', ConsoleWrapper.WindowWidth - 15 - rendered.Length) + (i == chosenBootEntry ? '>' : ' '), 6, 5 + renderedAnswers, false, new Color(finalColorFg), new Color(finalColorBg))
);
renderedAnswers++;
}
Expand All @@ -108,11 +108,11 @@ public override string RenderBootFailedMessage(string content)
// Render the header and footer
int marginX = 2;
int headerY = 0;
int footerY = Console.WindowHeight - 1;
int barLength = Console.WindowWidth - 4;
int footerY = ConsoleWrapper.WindowHeight - 1;
int barLength = ConsoleWrapper.WindowWidth - 4;
string header = "Windows Boot Manager";
string footer = "ENTER=Continue";
int headerTextX = Console.WindowWidth / 2 - header.Length / 2;
int headerTextX = ConsoleWrapper.WindowWidth / 2 - header.Length / 2;
var builder = new StringBuilder();
ConsoleColor barColor = ConsoleColor.Gray;
ConsoleColor barForeground = ConsoleColor.Black;
Expand Down Expand Up @@ -165,7 +165,7 @@ public override string ClearSelectTimeout()
int timeoutY = 13;
ConsoleColor hintColor = ConsoleColor.Gray;
builder.Append(
TextWriterWhereColor.RenderWhereColor(new string(' ', Console.WindowWidth - 2), marginX, timeoutY, true, new Color(hintColor))
TextWriterWhereColor.RenderWhereColor(new string(' ', ConsoleWrapper.WindowWidth - 2), marginX, timeoutY, true, new Color(hintColor))
);
return builder.ToString();
}
Expand Down
5 changes: 3 additions & 2 deletions GRILO.Bootloader/Boot/Style/Styles/GrubBootStyle.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
using Terminaux.Colors;
using Terminaux.Writer.ConsoleWriters;
using Terminaux.Writer.FancyWriters;
using Terminaux.Base;

namespace GRILO.Bootloader.Boot.Style.Styles
{
Expand All @@ -42,14 +43,14 @@ public override string Render()

// Write the section title
string finalRenderedSection = "GNU GRUB version 2.06";
int halfX = Console.WindowWidth / 2 - finalRenderedSection.Length / 2;
int halfX = ConsoleWrapper.WindowWidth / 2 - finalRenderedSection.Length / 2;
builder.Append(
TextWriterWhereColor.RenderWhereColor(finalRenderedSection, halfX, 2, new Color(sectionTitle))
);

// Now, render a box
builder.Append(
BorderColor.RenderBorder(2, 4, Console.WindowWidth - 6, Console.WindowHeight - 15, new Color(boxBorderColor))
BorderColor.RenderBorder(2, 4, ConsoleWrapper.WindowWidth - 6, Console.WindowHeight - 15, new Color(boxBorderColor))
);

// Offer help for new users
Expand Down
5 changes: 3 additions & 2 deletions GRILO.Bootloader/Boot/Style/Styles/GrubLegacyBootStyle.cs
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@
using Terminaux.Colors;
using Terminaux.Writer.ConsoleWriters;
using Terminaux.Writer.FancyWriters;
using Terminaux.Base;

namespace GRILO.Bootloader.Boot.Style.Styles
{
Expand All @@ -42,14 +43,14 @@ public override string Render()

// Write the section title
string finalRenderedSection = "GNU GRUB version 0.97 (638K lower / 1046784K upper memory)";
int halfX = Console.WindowWidth / 2 - finalRenderedSection.Length / 2;
int halfX = ConsoleWrapper.WindowWidth / 2 - finalRenderedSection.Length / 2;
builder.Append(
TextWriterWhereColor.RenderWhereColor(finalRenderedSection, halfX, 2, new Color(sectionTitle))
);

// Now, render a box
builder.Append(
BorderColor.RenderBorder(2, 4, Console.WindowWidth - 6, Console.WindowHeight - 15, new Color(boxBorderColor))
BorderColor.RenderBorder(2, 4, ConsoleWrapper.WindowWidth - 6, Console.WindowHeight - 15, new Color(boxBorderColor))
);

// Offer help for new users
Expand Down
5 changes: 3 additions & 2 deletions GRILO.Bootloader/Boot/Style/Styles/LiloBootStyle.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
using Terminaux.Colors;
using Terminaux.Writer.ConsoleWriters;
using Terminaux.Writer.FancyWriters;
using Terminaux.Base;

namespace GRILO.Bootloader.Boot.Style.Styles
{
Expand All @@ -45,8 +46,8 @@ public override string Render()
int interiorWidth = 41;
int interiorHeight = 12;
int bootPrompt = 16;
int halfX = Console.WindowWidth / 2 - (interiorWidth + 2) / 2;
int extraStartX = Console.WindowWidth / 2 - (interiorWidth + 4) / 2;
int halfX = ConsoleWrapper.WindowWidth / 2 - (interiorWidth + 2) / 2;
int extraStartX = ConsoleWrapper.WindowWidth / 2 - (interiorWidth + 4) / 2;
int extraEndX = Console.WindowWidth / 2 + (interiorWidth + 4) / 2;
int startY = 1;
int endY = bootPrompt + startY - 2;
Expand Down
3 changes: 2 additions & 1 deletion GRILO.Bootloader/Boot/Style/Styles/NtldrBootStyle.cs
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
using Terminaux.Colors;
using Terminaux.Inputs;
using Terminaux.Writer.ConsoleWriters;
using Terminaux.Base;

namespace GRILO.Bootloader.Boot.Style.Styles
{
Expand Down Expand Up @@ -115,7 +116,7 @@ public override string ClearSelectTimeout()
bootEntryPositions[bootEntryPositions.Count - 1].Item2 + 9 :
17;
ConsoleColor hintColor = ConsoleColor.Gray;
return TextWriterWhereColor.RenderWhereColor(new string(' ', Console.WindowWidth - 2), marginX, timeoutY, true, new Color(hintColor));
return TextWriterWhereColor.RenderWhereColor(new string(' ', ConsoleWrapper.WindowWidth - 2), marginX, timeoutY, true, new Color(hintColor));
}

private string ShowBootFailure(int choiceNum)
Expand Down
4 changes: 2 additions & 2 deletions GRILO.Bootloader/Boot/Style/Styles/StandardBootStyle.cs
Original file line number Diff line number Diff line change
Expand Up @@ -72,12 +72,12 @@ public override string RenderBootFailedMessage(string content) =>
RenderModalDialog(content);

public override string RenderSelectTimeout(int timeout) =>
TextWriterWhereColor.RenderWhereColor($" {timeout}", Console.WindowWidth - $" {timeout}".Length - 2, Console.WindowHeight - 2, true, new Color(ConsoleColor.White));
TextWriterWhereColor.RenderWhereColor($" {timeout}", ConsoleWrapper.WindowWidth - $" {timeout}".Length - 2, ConsoleWrapper.WindowHeight - 2, true, new Color(ConsoleColor.White));

public override string ClearSelectTimeout()
{
string spaces = new(' ', GetDigits(Config.Instance.BootSelectTimeoutSeconds));
return TextWriterWhereColor.RenderWhereColor(spaces, Console.WindowWidth - spaces.Length - 2, Console.WindowHeight - 2, true, new Color(ConsoleColor.White));
return TextWriterWhereColor.RenderWhereColor(spaces, ConsoleWrapper.WindowWidth - spaces.Length - 2, ConsoleWrapper.WindowHeight - 2, true, new Color(ConsoleColor.White));
}
}
}

0 comments on commit c4f20d2

Please sign in to comment.