Files
SabreTools/SabreTools.Library/Data/Build.cs

60 lines
1.7 KiB
C#
Raw Normal View History

using System;
2017-05-04 02:41:11 -07:00
namespace SabreTools.Library.Data
{
public static class Build
{
2016-04-12 16:23:17 -07:00
/// <summary>
/// Returns true if running in a Mono environment
/// </summary>
public static bool MonoEnvironment
{
2016-04-12 16:33:15 -07:00
get { return (Type.GetType("Mono.Runtime") != null); }
2016-04-12 16:24:38 -07:00
}
2016-04-18 20:04:38 -07:00
/// <summary>
/// Readies the console and outputs the header
/// </summary>
2017-02-01 00:32:01 -08:00
/// <param name="name">The name to be displayed as the program</param>B
public static void PrepareConsole(string name)
2016-04-18 20:04:38 -07:00
{
// Dynamically create the header string, adapted from http://stackoverflow.com/questions/8200661/how-to-align-string-in-fixed-length-string
2016-08-28 21:04:00 -07:00
int width = Console.WindowWidth - 3;
string border = "+" + new string('-', width) + "+";
2016-05-22 13:15:13 -07:00
string mid = name + " " + Constants.Version;
2016-08-28 21:04:00 -07:00
mid = "|" + mid.PadLeft(((width - mid.Length) / 2) + mid.Length).PadRight(width) + "|";
2016-04-18 20:04:38 -07:00
// If we're outputting to console, do fancy things
if (!Console.IsOutputRedirected)
2016-04-20 11:50:03 -07:00
{
// Set the console to ready state
ConsoleColor formertext = ConsoleColor.White;
ConsoleColor formerback = ConsoleColor.Black;
if (!MonoEnvironment)
{
Console.SetBufferSize(Console.BufferWidth, 999);
formertext = Console.ForegroundColor;
formerback = Console.BackgroundColor;
Console.ForegroundColor = ConsoleColor.Yellow;
Console.BackgroundColor = ConsoleColor.Blue;
}
2016-04-20 11:50:03 -07:00
2016-10-25 16:47:50 -07:00
Console.Title = name + " " + Constants.Version;
2016-04-18 20:04:38 -07:00
// Output the header
Console.WriteLine(border);
Console.WriteLine(mid);
Console.WriteLine(border);
Console.WriteLine();
2016-04-18 20:04:38 -07:00
// Return the console to the original text and background colors
if (!MonoEnvironment)
{
Console.ForegroundColor = formertext;
Console.BackgroundColor = formerback;
}
2016-04-20 11:50:03 -07:00
}
2016-04-18 20:04:38 -07:00
}
}
}